본문 바로가기

Unity 기초16

Unity 3D 엔진 기초 (9) MainCamera의 플레이어 따라가기 안녕하세요 연꿈술사입니다. 오늘은 우리가 게임을 플레이 했을 때 자주 겪어본 플레이어를 따라다니는 MainCamera를 코드로 구현해 보는 것을 해보려고 합니다. 단순히 MainCamera를 PlayerObject에 집어넣을 수도 있겠지만 그건 우리가 원하는 동작이 아닐 것입니다. 플레이어가 이동함에 따라 카메라가 이동하려면 일단 플레이어의 위치를 카메라가 받아와야겠죠? 하지만 Update문에서 이동하게 될 플레이어를 동시에 카메라가 받아버리면 움직임 사이에 약간의 불일치나 지연이 생기는 경우가 있습니다. 그로 인해 우리는 LateUpdate문에서 플레이어의 위치를 받으면 좋겠습니다. 아래는 예시문입니다. [SerializeField] Transform playerTransform; // 플레이어의 Tr.. 2023. 8. 14.
Unity C# 문법 (9) RaycastHit, Raycast 안녕하세요 연꿈술사입니다. 오늘은 Unity에서 Raycast 함수를 통해 광선을 발사하여 물체와 충돌 시 반환하는 정보를 담고있는 구조체인 RaycastHit에 대해 알아보겠습니다. 광선이 어떤 물체와 충돌 시에 그 충돌에 대해 정보를 얻고싶을 때, RaycastHit 변수를 사용해 해당 정보를 얻을 수 있습니다. RaycastHit에 포함된 주요 속성들에 대해 알아보겠습니다. 1. collider : 충돌한 오브젝트의 Collider 컴포넌트 값을 반환합니다. 2. point : 광선이 Collider와 처음으로 충돌한 지점의 좌표를 반환합니다. 3. normal : 충돌 지점에서의 표면의 외부를 향하는 법선 벡터를 반환합니다. 이는 충돌 표현의 방향을 나타냅니다. 4. distance : 광선의 시.. 2023. 8. 13.
Unity C# 문법 (8) 코루틴(Coroutine) 함수 안녕하세요 연꿈술사 입니다. 오늘은 기초적인 함수는 아니지만 Unity 에서 게임을 제작하기에 있어 자주 사용하고 중요한 코루틴에 대해 알아보려고 합니다. 코루틴은 일반 함수처럼 시작점부터 끝점까지 연속적으로 실행되는 것과 달리 비동기적으로 실행되는 함수입니다. 특정 시점에서 일시 중시되었다가 나중에 다시 재개될 수 있도록 합니다. 일정시간 이후에 함수를 시작할 수도 있고, 어느 하나를 실행 하고 일정시간을 기다렸다가 이후에 써진 내용을 다시 재개할 수 있습니다. 함수를 예로 들어 설명해보겠습니다. void Start() { StartCoroutine(MyCoroutine()); } IEnumerator MyCoroutine() { Debug.Log("코루틴 시작!"); yield return new W.. 2023. 8. 12.
Unity 3D 엔진 기초 (8) Rigidbody 안녕하세요 연꿈술사입니다. 오늘은 Rigidbody에 대해 알아보겠습니다. Rigidbody도 Collider와 마찬가지로 물리연산을 하는 컴포넌트입니다. Collider가 충돌에 대한 연산을 했다면, Rigidbody는 중력과 관련이 있습니다. 우리가 빈 화면에 Cube를 하나 생성하고 Rigidbody 컴포넌트를 추가한 후 게임을 실행해보면, Cube가 하염없이 바닥으로 떨어지는 것을 볼 수 있습니다. Collider와 마찬가지로 2D 에서는 Rigidbody 2D를 사용해야합니다. 이 떨어지는 속도는 중력가속도를 기반으로 만들어져 있습니다. 이에 대해 궁금하시면 Edit-Project Settings-Physics-Cloth Gravity를 확인해보시면 알 수 있습니다. Rigidbody 컴포넌트에.. 2023. 8. 11.