Unity : C#과 Unity에서의 암묵적 Boolean 값 변환 => if (gameObject) 가능??
·
Unity
JS, Phyton 같은 타 언어에서는 암묵적 Bool 변환을 지원한다.if 조건문에 넣은 값에 따라 true나 false로 평가되는 방식으로 말이다. 하지만 C#은 엄격한 타입 안정성을 지향하기에 반드시 명시적으로 bool 타입을 사용하지 않으면 컴파일 에러가 발생한다. 하지만 Unity 환경에서는 특이하게도 if (gameObject) 나 if (transform) 과 같이 객체 자체를 조건문에 넣어도 정상 작동이 되는 것을 볼 수 있다.위에서 말한 C#의 기본적인 정책과 상충하는 것으로 보이는 이 현상에 대해 간략하게 정리해보자. Unity 에서의 내부 구현C# 언어 자체에서는 지원하지 않는 문법을 유니티가 쓸 수 있는 이유는, C#의 연산자 오버로딩(Operator Overloading)을 활용..