midas+son의 크리에이티브(creative) 이야기

오랜만에 유니티 글이네요.


오브젝트 비교하는 구문을 예로 들자면

if (player.gameobject == other.gameobject)
{

//코드...

}

위와 같이 == 로 비교 하는게 편했고 잘 사용해 왔다.


근데 이 간편한 구문보다 약 2배 빠른 비교 방법이 있다는걸 이제 알았다.

원래는 C#의 문법인데 아래 MSDN 참조해보자.

https://msdn.microsoft.com/ko-kr/library/system.object.referenceequals(v=vs.110).aspx


//이건 C# - if(Object.ReferenceEquals(player.gameobject, other.gameobject))

//유니티에선 아래

if(System.Object.ReferenceEquals(player.gameobject, other.gameobject))

{

//코드...

}

주의 할 점은 Reference에 대한 비교이다 보니 

값이 같아도 Reference위치가 다르거나 Value Type이면 False가 떨어진다는 점이다.

null 비교에도 좋다.//System.Object.ReferenceEquals(gameobject, null)