본문 바로가기
Unity/3d MMORPG

[유니티] 1. (Target, SerializeField) 공부

by 후야- 2024. 3. 26.

 

✳  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