본문 바로가기

유니티/유니티 엔진

[유니티] Find, 다른 오브젝트의 스크립트 접근

728x90
반응형

 Find

 

특정 스크립트에서 둘 이상의 오브젝트를 구분하여 접근하기 위해서는 Find 메서드가 필요하다.

 

Find 메서드로 찾은 오브젝트를 담을 변수를 하나 선언한 후 그 변수에 오브젝트를 할당해주면 된다.

 

Find 메서드로 오브젝트를 할당해주었다면 우리는 오브젝트는 물론이고 오브젝트에 적용된 스크립트의 변수나 메서드, 컴포넌트까지도 접근할 수 있다.

 

ground 오브젝트에 GroundSc 라는 스크립트가 적용되어 있고 GroundSc 스크립트에는 public int 형의 num 변수가 선언되었다고 해보자.

 

public class PlayerMove : MonoBehaviour
{
    GameObject ground;
    
    // Start is called before the first frame update
    void Start()
    {
        ground = GameObject.Find("Ground");
    }

    // Update is called once per frame
    void Update()
    {
    	Debug.Log(ground.transform.position);
        Debug.Log(ground.GetComponent<GroundSc>().num);
    }
}

 

위 코드를 적용시켜보면 ground 라는 오브젝트 뿐만 아니라 적용되어있는 스크립트까지 접근 가능한 것을 확인할 수 있을 것이다.

 

그러나 오브젝트에 적용된 스크립트에 접근할 때 private 접근제한자가 적용되어 있는 변수는 접근할 수 없다.

 

private 접근제한자가 붙은 변수, 혹은 메서드는 해당 클래스 내부에서만 접근이 가능하다.

 

 

 

 

 

728x90
반응형