과거의 유산들/좌충우돌 유니티

좌충우돌 유니티#1 GetComponent함수 그리고 NullReferenceException 오류

빈나 2021. 4. 7. 02:44
반응형

 

 

내가 겪은 오류에서는, 찾으라는 값을 못 찾겠어서 Null로 반환시키고 오류 난 것이다. 코드를 보면,

 

public class GameManager : MonoBehaviour
{
    public Player rp;
     private void Awake()
    {
        rp = GetComponent<Player>();
    }

void Update()

{

 int health = rp.health;

}

}

오류

여기서 나는 외부에 있는 게임오브젝트에 들어있는 스크립트 Player에 있는 health를 끌어다 쓸려했다.

그러나 int health = rp.health에서 NullReferenceException이 나타났다.

즉 rp의 health를 못찾겠다고 ㅈㅈ친거다

해결

learnandcreate.tistory.com/120 이분의 블로그에서 해답을 찾았는데, 요약하자면

 

한 오브젝트에 a1,a2인두개의 스크립트를 넣고

a1에서 a2를 이용할려면

 

private a2 aa;

 void Awake()

{

 aa = GetComponent<a2>();

}

이렇게 해야하고

 

나처럼 게임오브젝트 안에 있는 스크립트를 사용할려면 

 

public GameObject gameobject;

Player rp;

 void Awake()

{

 rp = gameobject.GetComponent<a2>();

}

이렇게 했어야 한다.

 

 

 

 

 

 

 

반응형