Game Engine/Unity
-
유니티에서 최단 거리를 탐색하여 추적할 수 있는 캐릭터를 생성하는데에 사용되는 Navigation에 대해 알아보자. 그 중, 이번 포스팅은 NavMeshAgent를 중점적으로 알아보고, NavMeshObstacle에 대해서도 간단하게 알아보고자 한다. 개념유니티의 Navigation 시스템을 사용하면 씬 내에서 지능적으로 탐색하여 이동할 수 있는 캐릭터를 만들 수 있다. 이때, 자동으로 씬에 생성되는 NavMesh는 게임 월드에서 걸을 수 있는 표면을 뜻하며, 이를 이용하여 목적지까지 경로를 찾고 이동하는 캐릭터에 부착되는 컴포넌트가 NavMeshAgent이다. 내부 작업 Navigation을 사용하여 캐릭터를 지능적으로 움직이려면 크게 두가지의 기능으로 나뉘는데, 첫째로 맵을 탐색하여 목적지까지의..
[Unity] Navigation - NavMeshAgent유니티에서 최단 거리를 탐색하여 추적할 수 있는 캐릭터를 생성하는데에 사용되는 Navigation에 대해 알아보자. 그 중, 이번 포스팅은 NavMeshAgent를 중점적으로 알아보고, NavMeshObstacle에 대해서도 간단하게 알아보고자 한다. 개념유니티의 Navigation 시스템을 사용하면 씬 내에서 지능적으로 탐색하여 이동할 수 있는 캐릭터를 만들 수 있다. 이때, 자동으로 씬에 생성되는 NavMesh는 게임 월드에서 걸을 수 있는 표면을 뜻하며, 이를 이용하여 목적지까지 경로를 찾고 이동하는 캐릭터에 부착되는 컴포넌트가 NavMeshAgent이다. 내부 작업 Navigation을 사용하여 캐릭터를 지능적으로 움직이려면 크게 두가지의 기능으로 나뉘는데, 첫째로 맵을 탐색하여 목적지까지의..
2022.07.23 -
유니티에서 최단 거리를 탐색하여 추적할 수 있는 캐릭터를 생성하는데에 사용되는 Navigation에 대해 알아보자. 그 중, 이번 포스팅은 NavMesh 와 OffMeshLink를 중점적으로 알아보고자 한다. 개념유니티의 Navigation 시스템을 사용하면 씬 내에서 지능적으로 탐색하여 이동할 수 있는 캐릭터를 만들 수 있다. 이때, 자동으로 씬에 생성되는 NavMesh는 Navigation Mesh의 줄임말로, 게임 월드에서 걸을 수 있는 표면을 뜻하며, NavMesh를 사용하여 게임 월드 안의 한 위치에서 다른 위치로 이동할 수 있는 경로를 찾을 수 있다. (출처 : https://docs.unity3d.com/kr/2020.3/Manual/nav-InnerWorkings.html) NavMesh..
[Unity] Navigation - NavMesh, OffMeshLink유니티에서 최단 거리를 탐색하여 추적할 수 있는 캐릭터를 생성하는데에 사용되는 Navigation에 대해 알아보자. 그 중, 이번 포스팅은 NavMesh 와 OffMeshLink를 중점적으로 알아보고자 한다. 개념유니티의 Navigation 시스템을 사용하면 씬 내에서 지능적으로 탐색하여 이동할 수 있는 캐릭터를 만들 수 있다. 이때, 자동으로 씬에 생성되는 NavMesh는 Navigation Mesh의 줄임말로, 게임 월드에서 걸을 수 있는 표면을 뜻하며, NavMesh를 사용하여 게임 월드 안의 한 위치에서 다른 위치로 이동할 수 있는 경로를 찾을 수 있다. (출처 : https://docs.unity3d.com/kr/2020.3/Manual/nav-InnerWorkings.html) NavMesh..
2022.07.20 -
Unity에서 광선을 쏘아 충돌체를 감지할 수 있는 Physics.Raycast알아보고, 이를 디버깅할 때 사용할 수 있는 Draw.Debug에 대해 간단히 알아보자. 개념시작 지점에서 특정 방향으로 씬의 모든 충돌체를 상대하는 광선을 투사한다. ※ 주의할 점: Raycast의 시작 지점과 충돌해있는 Collider은 감지되지 않는다. 매개변수Physics.Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo, float maxDistance, int layerMask); - origin에서 direction 방향으로 maxDistance 길이의 광선을 쏜다. 해당 layerMask의 Collider만 충돌하며, 충돌체에 대한 정보를 ..
[Unity] 레이캐스트 (Physics.Raycast)Unity에서 광선을 쏘아 충돌체를 감지할 수 있는 Physics.Raycast알아보고, 이를 디버깅할 때 사용할 수 있는 Draw.Debug에 대해 간단히 알아보자. 개념시작 지점에서 특정 방향으로 씬의 모든 충돌체를 상대하는 광선을 투사한다. ※ 주의할 점: Raycast의 시작 지점과 충돌해있는 Collider은 감지되지 않는다. 매개변수Physics.Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo, float maxDistance, int layerMask); - origin에서 direction 방향으로 maxDistance 길이의 광선을 쏜다. 해당 layerMask의 Collider만 충돌하며, 충돌체에 대한 정보를 ..
2022.07.09 -
Unity의 Coroutine에 대해 알아보자. 개념싱글스레드에서 동시성으로 진행되는 일시 중단, 재개가 가능한 프로그램 구성 요소 필요성1. 시간이 지남에 따라 점진적으로 결과를 보여주고자 할 때2. 어느 시점으로부터 일정 시간 이후 작업을 진행하고자 할 때3. 프레임마다 호출이 아닌, 일정 시간마다 호출하여 연산의 수를 줄이고자 할 때 4. 너무 무거운 작업을 Update에서 진행할 시의 오버헤드 방지 설명1. 동시성동시성 (Concurrency) : 일을 여러개로 나누어 번갈아 가면서 실행하여 동시에 처리하는 것처럼 보이는 것 병렬성 (Parallelism) : 멀티코어 환경에서 실제로 여러개의 일을 동시에 처리하는 것 기본적으로 싱글스레드로 진행되는 유니티는 Coroutine을 사용하여도 ..
[Unity] 코루틴 (Coroutine)Unity의 Coroutine에 대해 알아보자. 개념싱글스레드에서 동시성으로 진행되는 일시 중단, 재개가 가능한 프로그램 구성 요소 필요성1. 시간이 지남에 따라 점진적으로 결과를 보여주고자 할 때2. 어느 시점으로부터 일정 시간 이후 작업을 진행하고자 할 때3. 프레임마다 호출이 아닌, 일정 시간마다 호출하여 연산의 수를 줄이고자 할 때 4. 너무 무거운 작업을 Update에서 진행할 시의 오버헤드 방지 설명1. 동시성동시성 (Concurrency) : 일을 여러개로 나누어 번갈아 가면서 실행하여 동시에 처리하는 것처럼 보이는 것 병렬성 (Parallelism) : 멀티코어 환경에서 실제로 여러개의 일을 동시에 처리하는 것 기본적으로 싱글스레드로 진행되는 유니티는 Coroutine을 사용하여도 ..
2022.07.08 -
유니티에서 오브젝트를 회전할 때 자주 사용하는 transform.Rotate와 Quaternion.Euler에 대해 깊게 알아보고, 차이점을 알아보자. 요약transform.Rotate는 현재 상태에서 해당 오일러 각만큼 회전시키는 것이고,Quaternion.Euler는 현재 상태를 해당 오일러 각으로 회전시키는 것이다. 매개변수transform.Rotate와 Quaternion.Euler의 매개변수는 간단하게 보면 다음과 같다. transform.Rotate(Vector3 eulerAngles);Quaternion.Euler(Vector3 eulerAngles); Vector3를 대신해서 float x, float y, float z값도 인자로 넣을 수 있다. Rotate 함수의 인자에는 한 가지..
[Unity] transform.Rotate, Quaternion.Euler 차이유니티에서 오브젝트를 회전할 때 자주 사용하는 transform.Rotate와 Quaternion.Euler에 대해 깊게 알아보고, 차이점을 알아보자. 요약transform.Rotate는 현재 상태에서 해당 오일러 각만큼 회전시키는 것이고,Quaternion.Euler는 현재 상태를 해당 오일러 각으로 회전시키는 것이다. 매개변수transform.Rotate와 Quaternion.Euler의 매개변수는 간단하게 보면 다음과 같다. transform.Rotate(Vector3 eulerAngles);Quaternion.Euler(Vector3 eulerAngles); Vector3를 대신해서 float x, float y, float z값도 인자로 넣을 수 있다. Rotate 함수의 인자에는 한 가지..
2022.07.03