(来自知乎)Unity反射机制的理解

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

Unity3d开发,需要继承MonoBehaviour,实现Start方法:

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    private GameObject target;
    void Start() {
        target = GameObject.FindWithTag("Player");
    }
}

但是这个Start方法是私有的,而不是override MonoBehaviour中已有的方法。

按我的理解,应该在MonoBehaviour中设计一个abstract或virtual的Start方法,然后让子类去实现它才对啊!

难道Unity3d 引擎部分在调用ExampleClass时用的是反射?他们这样设计是出于什么目的的?有什么好处?
添加评论 
分享

查看全部 8 个回答

更多回答
20 赞同 反对,不会显示你的姓名
知乎用户  ,飘逸的程序员/初级制作人
20 人赞同

你可能感兴趣的:(c#)