Study/Unity Engine 썸네일형 리스트형 [Unity] 떨려요 처음 캐릭터와 카메라 움직임을 구현할 때, 제대로 공부하지 않고 관습대로 카메라는 LateUpdate, 캐릭터 움직임은 rigidbody 사용으로 Fixed update를 사용했다. 그렇게 했더니... 첫 영상처럼 캐릭터가 떨리기 시작했다.하나하나 짚어보자.물리 캐릭터는 Fixed Update에서 움직인다.카메라는 LateUpdate에서 대상을 따라간다.왜 이래야 할까?처음에 CameraController는 LateUpdate에, 캐릭터 이동 로직은 FixedUpdate에 배치했다. 코드를 실행하니 캐릭터는 움직이지만, 카메라가 따라가는 화면이 미세하게 떨리거나(Stuttering), 뚝뚝 끊어지는 느낌(Jittering)이 발생했다.이 문제의 원인을 알려면 유니티의 실행 순서, 특히 Update, Fi.. 더보기 Photon PUN 사용 및 분석 우선 코드와 영상을 보자.using System.Collections.Generic;using System.Linq;using UnityEngine;using Photon.Pun;using Photon.Realtime;using UnityEngine.PlayerLoop;using UnityEngine.UI;public class TurnManager : MonoBehaviourPunCallbacks{ [SerializeField] private Button endTurnButton; private PhotonView pv; private const byte MaxPlayers = 3; private List turnOrder = new List(); private int.. 더보기 [Unity] Data Serialization https://www.youtube.com/watch?v=kEu_AQ_Es-8직렬화는 객체를 저장하거나 메모리, DB 혹은 파일로 전송하기 위해 객체를 바이트 스트림으로 변환하는 프로세스다. 즉, 객체를 해제하고(Serialization) 다시 복구(Deserialization)할 수 있도록 개체의 상태를 저장한다.즉, 메모리 상에 산발적으로 분포되어 있는 데이터들을, 연속적인 메모리 형태로 바꾼다.이렇게 연속적인 데이터 형태로 바꿀 때, 컴퓨터가 읽을 수 있는 2진수로 표현하기도 하지만, XML/YAML/JSON과 같이 사람이 읽을 수 있는 형태로 제공하는게 일반적이다. 예를들어, 다음과 같이 게임 제작을 위해 캐릭터 설정을 하고, 이를 각각의 XML/YAML/JSON으로 표현하면 다음과 같이 표현한다.. 더보기 [Unity] 유니티 이해하기 04 - 유니티 Object와 그 하위 클래스들 Objet는 유니티의 베이스 클래스다. 이 Object를 상속받는 대표적인 클래스들은 다음과 같다. GameObject - 씬 내의 모든 엔티티.Component - GameObject에 기능 추가.MonoBehaviour - 사용자 정의 스크립트.ScriptableObject - 데이터 저장 및 관리.Texture, Material - 그래픽 렌더링 관련 클래스.AudioClip - 오디오 관리.AnimationClip - 애니메이션 데이터 관리.AssetBundle - 리소스 묶음 관리.ObjectObject 클래스는 모든 Unity 엔진 객체의 기본 클래스로 다음과 같은 기능들을 제공한다.기본 기능 : 모든 엔진 객체를 참고하거나 관리하는 데 사용객체 생성 및 복제: Instantiate 메서드를 .. 더보기 [Unity] 유니티 이해하기 03 - Input System 유니티의 Input System은 플레이어 입력을 관리하고 처리하기 위해 제공되는 시스템으로, Unity의 기본적인 "Legacy Input Manager"를 대체하기 위해 개발되었다. 이 시스템은 더 모듈화되고 직관적인 입력 관리 기능을 제공하며, 다양한 플랫폼과 장치를 쉽게 지원할 수 있도록 설계되었다.주요 특징다양한 입력 장치 지원:키보드, 마우스, 게임패드, 터치스크린, VR/AR 컨트롤러 등 다양한 입력 장치를 지원한다.여러 입력 장치를 동시에 처리할 수 있다.액션 기반 구조:Unity Input System은 Action이라는 개념을 중심으로 동작한다.액션은 특정 입력(버튼 누르기, 축 움직임 등)을 의미하며, 플레이어의 입력과 게임의 반응 간의 연결을 간소화한다.플랫폼 독립적:특정 플랫폼에 .. 더보기 [Unity] 유니티 이해하기 02 - 이벤트 함수의 실행순서 그리고 스크립트 게임 엔진이라는 것은 결국, 다음과 같은 로직으로 작동된다.https://waterglass0105.tistory.com/91 [UE5 C++ Multiplayer Shooter] #01 언리얼 엔진의 프레임 워크와 기초 그리고 네트워크일반적인 게임 엔진은 다음 코드의 흐름대로 진행된다.언리얼에서는 이러한 루프를 직접 다루지 않고, 기본함수가 아닌 인터페이스나 함수를 상속받아 확장하는 방법으로 구현한다. 이때, 언리waterglass0105.tistory.com이를 유니티 엔진에서 조금 심플하게 표현해보면 다음과 같이 표현할 수 있다. 그리고 이를 더욱 자세히 살펴보면, 다음과 같은 사이클을 가지게 된다.이제 이 단계를 자세히 살펴보자1. Initialization[Awake -> OnEnable -> .. 더보기 [Unity] 유니티 이해하기 01 - 게임오브젝트와 컴포넌트 게임 오브젝트유니티의 게임 오브젝트는 '컨테이너'다. 기본적으로, GameObject는 그 자체로 아무것도 하지 않는다. 만일 이러한 게임 오브젝트를 캐릭터나 환경 아니면 다른 특수 효과가 되기 위해서는 '속성'이 필요하다. 당연하게도, 캐릭터라는 게임 오브젝트와 상자라는 게임 오브젝트는 차이가 있어야 한다. 가령, 캐릭터는 플레이어가 조종이 가능하고 여러 동작을 할 수 있어야 할 것이며, 상자는 그저 힘을 받으면 움직인다거나 할 것이다. 즉, 캐릭터가 가지는 속성과 상자가 가지는 속성은 '차별점'이 있어야 한다. 그리고 이러한 '차별점'을 만들어 주는 것이 바로 컴포넌트다. 다시금 정리해보면, 게임 오브젝트는 여러 다양한 컴포넌트의 컨테이너다. 컴포넌트기본적으로 모든 게임 오브젝트는 자동으로 Trans.. 더보기 [Unity] 유니티 프레임 워크, .NET과 GC 우선 .NET에 대해 알아야한다..NET은 소프트웨어 개발을 위한 도구, 라이브러리 및 언어를 포함하는 플랫폼으로, 이를 통해 다양한 디바이스와 운영체제에서 실행 가능한 애플리케이션 제작이 가능하다. 기존 .NET Framework의 주요 한계는 플랫폼 간 코드 공유가 제한적이었다는 점이다. 특히 .NET Framework는 Windows 운영체제를 중점적으로 지원했기 때문에, 리눅스 및 macOS와 같은 다른 운영체제로 애플리케이션을 포팅하려면 코드 수정과 테스트 과정이 필수적이었다.이러한 제약을 극복하기 위해, 마이크로소프트는 .NET Core를 출시하였다. .NET Core는 오픈소스이며 크로스 플랫폼을 지원해 개발자들이 Windows, Linux, macOS 등 다양한 환경에서 동일한 코드를 실행.. 더보기 이전 1 2 다음