Unity15 UNITY DOTS - JobHandle.CombineDependencies 1. 코드 설명 두 개의 종속성을 하나로 합칠 때 사용하는 코드이다. // 반환 타입은 JobHandle JobHandle.CombineDependencies(JobHandle, JobHandle); 2. 필요 이유 Job은 필요에 따라 비동기로 진행되어야 하고 어느 시점에서 앞의 Job들이 완료되면 실행되게끔 처리해야 할 때가 있다. 이때, JobHandle.CombineDependencies 로 앞의 Job들의 종속성을 합쳐서 동기 시점을 맞출 수 있다. 3. 예제 코드 아래의 코드는 Job을 Schedule할 때 앞의 Job의 종속성을 매개변수로 전달하여 동기 방식으로 코드가 실행된다. A가 끝나면 B가 실행되고 // B가 끝나면 C가 실행된다. var jobHandleA = new JobA(){ .. Unity DOTS/TIP 2022. 11. 29. UNITY DOTS - Unity.Mathematics.Random 랜덤 사용하기 1. 개요 DOTS에서는 Random 값을 얻을려면 Unity.Mathematics 패키지에 있는 Random을 사용해야 한다. 하지만, 기존의 UnityEngine.Random 처럼 사용하면 모든 Entity가 같은 랜덤 값을 생성하는 문제가 발생한다. 해결 방법으로는 Entity가 개별 Seed를 가지고 있으면 된다. 2. 예제 2-1 ComponentData public struct RandomScoreData : IComponentData { // Entity는 고유한 Ramdom Component를 가져야 한다. public Random Randomizer; } 2-2 Authoring public class RandomScoreAuthoring : MonoBehaviour { public fl.. Unity DOTS/TIP 2022. 11. 28. UNITY DOTS - 거리 계산하기 Unity DOTS 에서 수학 패키지로 using Unity.Mathematics를 사용해야 한다. using Unity.Mathematics에서 제공하는 오브젝트 간의 거리를 계산하는 함수에는 math.distance와 math.distancesq 2개가 존재한다. 1. math.distance 정확한 거리를 계산할 때 사용한다. 두 점간의 제곱 거리에 루트를 한 값이라 컴퓨터 성능에 악영향을 끼친다. 컴퓨터는 나누셈 연산에 잼병이다. math.distance(AEntity의 위치, BEntity의 위치); 2. math.distancesq 정확한 거리를 측정할 때는 좋지 않지만 루트 연산을 하지 않으므로 성능에 좋다. 위 Distance의 거리 계산에서 루트 계산을 하지 않은 두 점 사이의 제곱 거리.. Unity DOTS/TIP 2022. 11. 25. 유니티 Navigation Basics #4 - NavMesh Obstacles 오늘 공부할 내용 Nav Mesh Obstacles 컴포넌트를 이용해서 움직이는 장애물을 만들겠습니다. 움직이는 장애물이란 주로 열거나 닫을 수 있는 문, 차단막 등이 있습니다. Nav Mesh Obstacles 설명 움직이는 장애물을 만들려면 오브젝트에 NavMeshObstacles 컴포넌트를 추가해야합니다. Shape : 지오메트리 모양을 설정합니다. 박스와 캡슐 2개의 형태가 있습니다. Center, Radius, Height 는 지오메트리의 위치, 넓이, 높이 값을 설정합니다. Carve : 위 장애물의 모양만큼 의해 네비메시에 영향을 줄 지를 설정합니다. 활성화 되어 있으면 해당 오브젝트의 모양만큼 네비메시에 구멍이 뚫립니다. 비활성화 되어 있으면 콜라이더 박스처럼 됩니다. 이동하는 개체(에이전.. Unity 자습서/Navigation 2019. 2. 13. 유니티 Navigation Basics #3 - Off-mesh Links (점프, 낙하) 오늘 공부할 내용 유니티 네비게이션의 Off-mesh Links(오프 메쉬 링크)를 자동으로 생성하거나, 수동으로 사용하는 방법에 대해서 다룹니다. Off-mesh Links 생성 방법 오프 메시 링크를 만드는 방법에는 수동 생성 방법과 자동 생성 방법 2개의 방법이 있습니다. ■ 수동 생성 방법 게임 오브젝트에 Off-mesh Links 컴포넌트를 추가해서 점프 또는 낙하 지점을 만드는 방법입니다. 특정 동선으로만 점프 또는 낙하로 이동할 수 있게 만들 때 사용됩니다. 1. 오프 메쉬 링크 컴포넌트 설명 이름 설명 Start 시작 지점을 나타내는 오브젝트 End 종료 지점을 나타내는 오브젝트 Cost Override 경로 계산에 필요한 비용 (값이 양수 일 때만 적용) Bi Directional 할성화.. Unity 자습서/Navigation 2019. 2. 8. 유니티 Navigation Basics #2 - Agent(이동 개체) 설정 오늘 공부할 내용 NavMesh Agent 를 활용해서 길을 찾아서 이동하는 플레이어를 만들겠습니다. Player 설정 LowPolyNature\Prefabs\Characters 폴더에 있는 lp_guy 프리팹을 Hierarchy 뷰로 드래그 앤 드롭합니다. 이름을 Player로 변경하세요. 불필요한 컴포넌트를 모두 삭제해주세요. Player 에게 Nav Mesh Agent 를 컴포넌트로 추가합니다. Nav Mesh Agent 소개 Agent Type Navigation 뷰의 Agents 탭에서 설정한 Agents 타입 중 1개를 선택할 수 있습니다. 멍멍이는 지나갈 수 있지만, 사람은 지나갈 수 없게 만들고 싶을 때처럼 똑같은 필드에서도 개체의 특징에 따라 다르게 동작하길 원할 때가 있습니다. 이럴 때.. Unity 자습서/Navigation 2019. 1. 31. 유니티 Navigation Basics #1 - 이동 구역 설정하기 개요 유니티의 Navigation 으로 간단하게 길찾기 AI 를 만들 수 있습니다. 시스템은 아래와 같이 구성되어 있습니다. ● 내비메시(NavMesh) 내비메비게이션 메시의 줄임말로, 게임 월드에서 걸을 수 있는 표면을뜻하며, 내시를 사용하여 이동할 수 있는 경로를 찾을 수 있습니다. 데이터 구조는 레벨 지오메트리에서 자동으로 빌드 또는 베이크됩니다. ● 내비메시 에이전트(NavMesh Agent) 내비메시 에이전트를 사용하여 각자의 목적지로 이동하는 동안 서로를 피할 수 있는 캐릭터를 생성할 수 있습니다. 에이전트는 내비메시를 사용하여 게임 월드를 추론하며, 움직이는 장애물뿐만 아니라 서로를 피하는 방법을 알게 됩니다. ● 오프 메시 링크(Off-Mesh Link) 오프 메시 링크를 사용하여 걸을 수.. Unity 자습서/Navigation 2019. 1. 29. 이전 1 2 3 다음 💲 추천 글