假设我有一个初始化接口,它包含 Init 方法,我需要以某种方式在实现该接口的类的所有实例中立即调用它,但问题是我不知道如何执行此操作。在上下文中,此方法应该首先严格启动所有类,这意味着通过单例的委托或订阅将无济于事(将其放入列表中也不是一个选项),您无法确切知道该类是在哪里创建的。
我想尝试在创建实例时将类写在某个地方,但没有成功
ps 我想实现一个与 zenject 类似的系统(使用方法的属性注入一个类)
假设我有一个初始化接口,它包含 Init 方法,我需要以某种方式在实现该接口的类的所有实例中立即调用它,但问题是我不知道如何执行此操作。在上下文中,此方法应该首先严格启动所有类,这意味着通过单例的委托或订阅将无济于事(将其放入列表中也不是一个选项),您无法确切知道该类是在哪里创建的。
我想尝试在创建实例时将类写在某个地方,但没有成功
ps 我想实现一个与 zenject 类似的系统(使用方法的属性注入一个类)
嗯,在 Unity 中很容易
但一般来说,这样的事情都是在Unity中
Awake()
或者Start()
.引擎本身将导致您的对象被初始化,而无需额外的拐杖和接口。任何类中首先运行的是构造函数!从问题中尚不清楚问题是什么。
B在组件初始化时立即调用,或者在第一帧中(如果对象处于活动状态)或在每次激活时立即
MonoBehaviour
调用。Awake
Start
OnEnable
如果需要同时调用对象的方法,则有一个 this 模式
Obsever
。或者一个图案
Strategy
。对于观察者来说,您也可以使用该策略。任何条件都可以作为策略。例如,您可以创建类似选择的内容,这会导致两个选项之一,具体取决于条件,其中选项下也可以有对象、集群或后续选择等任何内容,无论结构有多复杂。
如果每个人都知道应该处理它的人在哪里,为什么还要知道目标对象在哪里,因为他是
static
,因为他是孤独的?