使用接口来利用基本的Unity方法?

时间:2018-12-28 16:04:53

标签: c# unity3d

我的想法是删除仅存在于此的Monobehavior脚本,因为我需要执行一次任务,例如在其“开始”方法中分配事件或初始化对象,..

可以用基本方法(Awake,Start,..)创建接口并从我唯一的Monobehavior中调用所有对象吗?

这是我的完整示例:

public interface IMain {

    void OnMyAwake();
    void OnMyStart();
    void OnMyUpdate();
}


private void Awake()
{
    Debug.Log("I'm awake");

    for (int x = 0; x < list.Length; x++) {

        list[x].OnMyAwake();

    }
}


// Use this for initialization
void Start () {

    Debug.Log("I'm Start");

    for (int x = 0; x < list.Length; x++)
    {

        list[x].OnMyStart();

    }

}

// Update is called once per frame
void Update () {

    for (int x = 0; x < list.Length; x++)
    {

        list[x].OnMyUpdate();

    }
}

对这种方法有想法吗?

1 个答案:

答案 0 :(得分:1)

您需要确保在Awake()被全部定义之前不能调用list[0..n-1],或者要包含一些内容来正确处理这种情况

一旦解决,它应该会按您期望的方式工作(定时)。

您可能还希望包含OnDestroyOnDisable方法。