✳ Target 을 찾아 이동 구현
→ Nav Mesh Agent 추가
→ NavMeshAgent 컴포넌트는 목표를 향해 움직일 때 서로를 피해가는 캐릭터 생성에 유용합니다.
→ Mover 스크립트 추가하기 → Target 에 만들어둔 Target 집어 넣기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI; // 사용하려면 추가 해야함
public class Mover : MonoBehaviour
{
[SerializeField] Transform target;
void Update()
{
GetComponent<UnityEngine.AI.NavMeshAgent>().destination = target.position;
}
}
012
◾ [SerializeField]
→ private 필드를 직렬화하기 위해 사용합니다.
→ 유니티에서는 스크립트의 public 필드(예; public 변수)만 직렬화할 수 있습니다.
→ [SerializeField] 를 사용하면 private 필드도 직렬화할 수도 있습니다. 위처럼 바로 수정이 가능하다는점!
◾ 직렬화
→ 개체의 상태를 나중에 저장, 전송 또는 재구성할 수 있는 형식으로 변환하는 프로세스입니다. 유니티에서 직렬화 는 게임 상태를 저장 및 로드하거나 에디터와 런타임 간에 데이터를 전송하는 데 사용됩니다.
📖 코드 분석 및 공부
[SerializeField] Transform target;
→ 앞에 아무것도 적지 않으면 기본적으로 private 다.
→ 안에서 수정할 수 있도록 [SerializeField] 사용 Transfrom target 변수 만들기
void Update()
{
GetComponent<UnityEngine.AI.NavMeshAgent>().destination = target.position;
}
◾ GetComponent :
→ 게임 오브젝트의 컴포넌트를 가져오는 함수이다. &&& 무엇을 가져 오겠다.
◾ <UnityEngine.AI.NavMeshAgent>()
→ 유니티엔진 AI 함수중 NavMeshAgent 를 불러온다.
◾ target.position
→ 만들어둔 타겟 변수에 .position 붙인다.
'Unity > 3d MMORPG' 카테고리의 다른 글
[Unity] Position (0) | 2024.03.31 |
---|---|
[Unity] Managers (0) | 2024.03.30 |
[유니티] 3. (Ray 시각화하기) 공부 (0) | 2024.03.27 |
[유니티] 2. (Nav Mesh, static, Advanced) 공부 (0) | 2024.03.26 |