1. Inspector 직접 연결

- 필드 맴버로 연결할 클래스를 선언해 필드를 생성한 후, Hierachy에 등록된 게임 오브젝트를 Inspector에 연결

= 게임 오브젝트에 컴포넌트를 추가해 기능을 구현한다.

 

- 오류 가능성이 낮고

- 이름이 바뀌어도 유지된다.

 

GameObject.GetComponent
public T GetComponent();

 

- 컴포넌트를 찾으려면 해당 컴포넌트를 갖고 있는 게임 오브젝트를 먼저 알아야 한다.


- 모든 게임 오브젝트는 씬 위에 위치하기 때문에 Transform(위치, 회전, 크기) 컴포넌트를 갖는다.
- c# 스크립트는 게임 오브젝트에 붙어 있는 컴포넌트다. MonoBehavior을 상속 받는다. (new로 불러올 수 없음)

 

Hierachy 의 Conroler를 필드에 등록한다.

 

인스팩터에 연결할 클래스를 연결하지 않으면 NullReference 오류난다.

 

  • App
using System.Collections;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using Unity.VisualScripting;
using UnityEngine;

public class App : MonoBehaviour
{
    public Controler controler; // 필드 맴버를 선언해 게임 오브젝트가 등록될 필드를 뚫어놓는다.

    void Start()
    {
        controler.Control();
    }
}

 

  • Controler
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Controler : MonoBehaviour
{
    public enum State
    {
        Go, Stop
    }

    public State state;

    void Start()
    {
        state = State.Go;
        Debug.Log($"start State: {state}");
    }

    public void Control( )
    {
        state = State.Stop;
        Debug.Log($"Con State: {state}");
    }
}

+ Recent posts