본문 바로가기

개발/Unity, C#

Unity 오브젝트 Null 체크할 때 주의할 점(거지 같은 점)

 

 

유니티는 C#을 사용하고 C#은 강타입 언어임

 

그게 무엇이냐면

 

C++ 같은 경우

MyClass *myClass = new MyClass();

if (myClass)
{
	// Do myClass
}

이렇게 사용할 수 있음

 

 

하지만 C#의 경우

MyClass myClass = new MyClass();

if (myClass) // Error
{
	// Do myClass
}

 

에러가 나는데.....

 

 

근데 이놈의 유니티 오브젝트(를 상속받은 모노비헤이비어, 컴포넌트 등)는..

 

참고 -

https://github.com/Unity-Technologies/UnityCsReference/blob/master/Runtime/Export/Scripting/UnityEngineObject.bindings.cs#L93

 

 

이렇게 사용 가능함

 

이게 문제가 무엇이냐면

 

 

이렇게 해도 에러가 안 뜬다는 거... o가 null도 됨..

 

 

C# 쓰면서 이래도 되나 싶은 생각이 드는데 잘 모르겠다.