Unity3d是如何调用MonoBehaviour子类中的Start等方法的?

元数据

作者: zhihu.com
标题: Unity3d是如何调用MonoBehaviour子类中的Start等方法的?
分类: #Unity
地址: https://www.zhihu.com/question/27752591/answer/38125268

笔记

Unity之所以统一地使用这一套固定的函数命名方案,便于明确地划出了每个函数需要做些什么 跳转

unity用的是mono,mono的api就支持基于字符串查找的方法, 然后存下来指针,以后调用:
最后给你贴一段unity源代码吧:
inline void MonoBehaviour::Start ()
{
....
method = m_Methods[MonoScriptCache::kCoroutineStart];
if (method)
InvokeMethodOrCoroutineChecked (method, SCRIPTING_NULL);
}