코딩 공부/Unity C#

테디가 물건을 모으는 프로젝트 다시 보기

recordmastd 2024. 7. 8. 18:29

차이점: 테디가 가까운순으로 물건 오브젝틀르 픽업한다. 도중에 가까운 물건 오브젝트가 있으면 방향을 변경함.

 

- 객체에서 메서드를 호출해야 하기 때문에 테디에 TeddyBear 객체에 대한 참조를 저장한다

 

Update 메서드

- 오른쪽 마우스 버튼을 눌렀을 때 마우스 위치에서 오브젝트 생성

- 가까운 순서부터 픽업하므로 UpdateTarget() 메서드 호출

teddyBear 스크립트 변경

- 새로운 타겟오브젝트(pickup)가 기존 타겟오브젝트(targetDistance)보다 가까우면 pickup으로 타겟변경

- GetDistance(targetPickup)으로 오브젝트와 타겟오브젝트의 거리를 구한다

- 테디가 콜렉팅 중이라면 타겟 오브젝트를 픽업하러 간다

- 타겟 오브젝트가 null이 아니면 픽업하러 가고 아니면 픽업 상태를 false로 설정한다

- 씬에 있는 모든 픽업 목록을 가져온다
- tedthecollector 클래스의 프로퍼티에 접근하여 픽업까지 얼마나 멀리 있는지 추적하는 변수 저장

- 리스트 인덱스 번호 0에 있는 오브젝트가 가장 가깝다고 가정한 후 계산한다
- foreach문으로 리스트의 모든 게임 오브젝트 를 순회(for문으로 첫번째 오브젝트의 중복을 피할 순 있지만 해당 코드에선 중요하지 않은 최적화라 판단하여 foreach문 사용)
- 거리를 비교하여 가장 거리가 짧은 오브젝트로 업데이트