복습: FindNearest
Coddy Unity 여정의 Unity 게임 아키텍처 섹션에 포함된 레슨. 50개 중 36번째.
챌린지
중급청소 로봇은 보석을 모은 다음 충전하러 갑니다. Gem과 ChargePad는 비어 있는 마커 스크립트(준비 완료)이며, 로봇에는 MoveTo(point)가 있습니다. 이 메서드는 로봇을 speed 속도로 지점까지 이동시키고, 도착하면 true를 반환합니다.
Helpers.cs에서 모든 컴포넌트 유형에 사용할 수 있는 제네릭 메서드FindNearest<T>(IEnumerable<T> items, Vector3 from)가 포함된 정적 클래스Helpers를 작성하세요. 이 메서드는 위치가from에 가장 가까운 항목을 반환하며, 항목이 없으면 null을 반환합니다.Robot.cs에서 로봇이 매 프레임 현재 위치를 기준으로 장면에서 가장 가까운 보석을 향해 이동하고, 도착하면 보석을 파괴하도록 하세요.- 보석이 남아 있지 않으면 로봇은 가장 가까운
ChargePad를 향해 이동합니다. 도착하면Charging을 한 번 기록하고 그곳에 머뭅니다.
보석과 충전 패드 모두에 FindNearest를 사용하세요. 재생을 누르고 로봇을 지켜본 다음, 확인을 누르세요.
직접 해보기
using System.Collections.Generic;
using UnityEngine;
// Helpers.FindNearest<T>: 한 점에서 가장 가까운 항목, 없으면 null