군집처리 중 대체구현

Unity 5.2로 '유니티 게임 AI 프로그래밍' 5장 군집처리 따라하기

18/9/22 토

2018/9/22 토
Unity 5.2로 '유니티 게임 AI 프로그래밍' 5장 군집처리 따라하기.
Cube 생성, 'UnityFlock'이라 명명, 'UnityFlock.cs' 생성, 추가. 프리팹으로 만들기.
빈 게임오브젝트 생성, 'UnityFlockController'라 명명, 'UnityFlockController.cs' 생성, 추가. 자식으로 UnityFlock 프리팹들 추가.
플레이를 해보니 꽤 그럴싸한 군집 움직임이 실행된다.
UnityFlockController의 speed 변수값을 줄이면 군집이 느슨해지고 높이면 보다 엄밀히 군집을 형성한다. 기본값 100인데 30 정도로 줄이면 각 개체가 자유롭게 나는 듯 보이고 500 정도로 늘리면 개체간 거리를 지키며 빠르게 원을 도는 움직임을 보인다.

2018/9/27 목
Unity 5.2로 '유니티 게임 AI 프로그래밍' 5장 군집처리 중 대체구현 따라하기.
이전의 것은 거의 코드로 처리했지만 이건 유니티의 물리엔진을 활용하여 좀 더 간단히 만든 것이라고.
Cube 생성, 'Flock'이라 명명, Rigidbody, Sphere Collider 컴포넌트 추가.
'Flock.cs' 생성, 추가. 프리팹으로 만들기.
빈 게임오브젝트 생성, 'FlockController'라 명명, 'FlockController.cs' 생성, 추가.
Sphere 생성, 'Target'이라 명명. 'TargetMovement.cs' 생성, 추가.

따라하기는 끝냈는데 군집이 이동을 않고 그냥 그대로 정지해 있다. 코드들을 보니 타겟 변수를 설정해두곤 그에대한 인터랙션 코드가 없다.
FlockPref의 Rigidbody 중 Use Gravity, Is Kinematic의 체크를 해제하니 움직인다.
FlockController의 인스펙터창에서 수치들을 조절하니 그럭저럭 그럴싸한 군집 움직임을 보인다. 수동으로 움직일 수 있는 Sphere 만들어 이동시키며 테스트하고 FlockController.cs의 수치 조정하며 테스트.