이번에는 리플렉션과 관련해서 스크립트 코드를 리플렉션을 이용하여 툴의 UI에 반영시키는 예에 관한 이야기입니다.
http://unity3d.com/support/documentation/Manual/Scripting.html// 스크립트의 변수들은 자동으로 UI에 반영된다.
var speed = 5.0;
function Update () {
transform.Rotate(0, speed*Time.deltaTime, 0);
}
스크립트에서 변수를 발견하면 아래와 같이 툴의 UI에도 자동으로 반영이 됩니다.

위의 스크립트는 JavaScript이지만 단순히 자바스크립트를 엔진과 바인딩해서는 이러한 기능을 얻을 수는 없습니다. JavaScript의 인터프리터쪽을 손을 봤다는 이야기겠지요.
스크립트와 관련한 다른 이야기를 하자면 스크립트쪽은 간단하게 사용해 보니 컴파일 오류의 경우 해당 오류 라인 번호가 어느 객체인지를 매칭시켜서 보여 주므로 오류난 객체를 찾는 것은 어렵지 않습니다만 디버깅 기능이 없는 것은 좀 아쉽군요. (사실 이런 기능이 있는 엔진도 드물긴 합니다. 언리얼 스크립트가 외부 스크립트 IDE를 사용하면 Visual Studio와 유사한 디버깅 툴을 사용할 수 있다고 들었고, 또 Torque 엔진의 경우에도 브레이크 포인트 기능 등을 제공하는 몇 가지 스크립트 에디터가 유료, 무료 버전으로 있습니다. In-house 툴로는 N사의 팀장님-지금은 이사님-이 만든 엔진이 Lua를 엔진 툴에서 콜스택을 볼 수 있도록 만든 것이 기억납니다. 그게 몇년 전이었으니 대단하죠. 아, 선릉에 있는 N사가 아니라 분당에 있는 N사입니다. ㅋ)
아키텍처 관점에서 본 다면 Nebula2의 망갈로 게임 프레임워크가 C++이라면 Unity의 경우 스크립트 기반이라는 것이 차이점인데 기본적인 개념은 이란성 쌍둥이 처럼 서로 닮았습니다. 그래서 개인적으로는 이해가 쉬운 것도 마음에 듭니다.