출처 : 게임개발포에버 http://www.gamedevforever.com/203
요즘들어 Unity가 인기를 많이 끌고 있고, 저도 어쩌다 유니티를 주무르는 동안에 발견한 내용들을 짧게짧게 블로그에 올려볼 생각입니다. 유니티를 체계적으로 배우시고 싶다면 아마 게임개발포에버에서 도플광어님이 연재하시는 글을 보시는게 젤 좋을겁니다.
자, 그렇다면 오늘의 짧은 정보는... 과연 Unity는 어떤 언어로 작성되었나? 입니다. Unity가 Mono를 이용해서 .NET 프레임워크를 자체적으로 지원하고, 저희가 유니티에서 사용할 수 있는 스크립트 언어도 C# 이다보니
'유니티가 C#으로 작성 되었구나. 그럼 이 엔진이 속도가 너무 느리지 않을까?'
라는 걱정을 하는 분들이 계실겁니다. (저도 그랬다는..)
그래서 그에 대한 답을 좀 찾아보니 영문 질답란에 이미 유니티 개발자가 답을 해놨더군요.
이걸 대충 번역하면...
"유니티는 C++로 작성되었으나 다음과 같은 예외가 있습니다.
.NET API를 노출시켜서 여러분들이 C++로 게임을 짤 필요를 없게 만든 것 뿐이지요. 자바스크립트나 C# 또는 Boo를 이용해서 코딩을 할 수 있는 이유가 바로 .NET API 덕분입니다.
에디터 프로그램의 UI는 C#으로 작성했습니다. 유니티를 사용하시는 게임 개발자들에게 공개된 API와 거의 동일한 API를 쓰지요. (아직 공개되지 않는 API를 조금 쓰기도 합니다만 그리 많진 않습니다.)
이것이 바로 "UnityEngine.dll 파일을 다른 C# 프로젝트에서 사용할 수 있나요?"라는 질문에 대한 답이 언제나 "아니요"인 이유입니다. UnityEngine.dll에는 거의 아무 기능도 들어있지 않습니다. 이건 그저 C#/자바스크립트 호출들을 C++ 엔진에 연결해줄 뿐입니다. C++ 엔진이 없이는 그냥 속빈강정이랄까요?"
한마디로 대충 정리하면:
- 유니티 내부는 C++이여서 C#보단 성능이 빠릅니다. 단, C#/C++ 컨텍스트 스위치 되는 부분에서 약간의 성능저하는 있을수 있습니다만 언리얼엔진에 비해 크게 문제는 안될거 같습니다.
- 유니티 에디터는 C#으로 작성되어 있습니다. (에디터에서 리플렉션을 자동으로 지원해주는것도 이때문일듯...)
- 유니티를 사랑합니다.. (응?)
참조:
'게임 > Unity3D' 카테고리의 다른 글
[Unity3D] 팁. 되도록이면 싱글턴을 쓰지 말고.. Dontdestroy뭐시기 함수로 남겨두는 걸 추천한다. (0) | 2013.05.02 |
---|---|
[Unity3D] LineRenderer (선그리기) (0) | 2013.04.29 |
[Unity3D] Input.Touch 사용법 (0) | 2013.04.29 |
[Unity3D] 전처리. 아이폰 안드로이드 등 플랫폼 구분해서 코드 짜는 방법 (0) | 2013.04.29 |
[Unity3D] RequireComponent (0) | 2013.04.29 |
[Unity3D] 매터리얼 프로퍼티 존재여부 체크하는 방법 (0) | 2013.04.09 |
[ Unity3D] RigidBody 관련 설명 (0) | 2013.04.05 |
[Unity3D] 소수점 오차 관련 팁 (0) | 2013.04.05 |
[Unity3d] Animation 관련 팁 (0) | 2013.04.05 |
[Unity3D] Debug.Log에 대해 (0) | 2013.04.04 |