차이점: 테디가 가까운순으로 물건 오브젝틀르 픽업한다. 도중에 가까운 물건 오브젝트가 있으면 방향을 변경함.
- 객체에서 메서드를 호출해야 하기 때문에 테디에 TeddyBear 객체에 대한 참조를 저장한다
- 오른쪽 마우스 버튼을 눌렀을 때 마우스 위치에서 오브젝트 생성
- 가까운 순서부터 픽업하므로 UpdateTarget() 메서드 호출
- 새로운 타겟오브젝트(pickup)가 기존 타겟오브젝트(targetDistance)보다 가까우면 pickup으로 타겟변경
- GetDistance(targetPickup)으로 오브젝트와 타겟오브젝트의 거리를 구한다
- 테디가 콜렉팅 중이라면 타겟 오브젝트를 픽업하러 간다
- 타겟 오브젝트가 null이 아니면 픽업하러 가고 아니면 픽업 상태를 false로 설정한다
- 씬에 있는 모든 픽업 목록을 가져온다
- tedthecollector 클래스의 프로퍼티에 접근하여 픽업까지 얼마나 멀리 있는지 추적하는 변수 저장
- 리스트 인덱스 번호 0에 있는 오브젝트가 가장 가깝다고 가정한 후 계산한다
- foreach문으로 리스트의 모든 게임 오브젝트 를 순회(for문으로 첫번째 오브젝트의 중복을 피할 순 있지만 해당 코드에선 중요하지 않은 최적화라 판단하여 foreach문 사용)
- 거리를 비교하여 가장 거리가 짧은 오브젝트로 업데이트
'코딩 공부 > Unity C#' 카테고리의 다른 글
클래스 작성 및 Random (0) | 2024.07.13 |
---|---|
추상화 연습 (0) | 2024.07.13 |
태그를 사용하여 코드 단순화하기 (0) | 2024.07.07 |
마우스 입력으로 테디(오브젝트) 파괴하기 (0) | 2024.07.07 |
TriggerOn 메서드의 종류 (0) | 2024.07.07 |