目前我了解到使用Mono做脚本的只有Unity和SecondLife, SpringEngine也有个扩展实现.
当然, 最成熟的还是Unity
于是下载了一个看看它的脚本是怎么应用的
它的编辑器界面很简洁, 实际操作了一下才发现所有的功能其本上都是由inspector面板完成
所有的GameObject都是由Component所组成, 如Mesh/Physics/Audio/Script等等
脚本都是从MonoBehaviour派生的一个实现, 在其中实现上层定义的各种接口, 如Start/Update等
脚本中定义的变量会直接反映到Inspector面板上, 如
这得益于.Net语言反射机制的强大, 也是我为什么使用.net开发编辑器的原因之一
之前还一直在想Unity是怎么动态载入脚本的, 因为mono里我只找到一个mono_domain_assembly_open的函数
在看了下测试工程的文件夹结构, 发一个文件: New Unity Project/Library/ScriptAssemblies/Assembly-CSharp.dl