我有一个脚本,它接受一个预制件,稍后从中实例化对象。
该预制件在其组件之一中有一些静态数据,我希望在实例化任何内容之前读取这些数据,为此我需要获取该组件,自然是使用GetComponent(). 后来该数据被实例多次读取,所以我不想GetComponent()一直使用,因为我知道这是一个相当繁重的操作。因此,很自然地,像往常一样,我保留一个保存该组件的变量并在函数中初始化该变量Awake()。
问题是,该Awake()函数不是为预制件本身调用的,而是仅为我后来使用Instantiate().
换句话说,理想情况下我想这样做:
void Awake()
{
imageSelector = GetComponent<ImageSelector>();
}
public int MaxValue => imageSelector.Count;
但为了让它在实例化之前适用于预制件本身,我需要这样做:
public int MaxValue => GetComponent<ImageSelector>().Count;
当然,我可以进行类似单例的读取访问,检查我是否已经保存了组件,如果没有,则获取并保存它,但这不太好,对我来说,会有一些初始化过程似乎是合理的我可以做这件事。
那么如何初始化未实例化的预制件呢?
我还想到了其他一些解决方法,其中没有一个是我特别喜欢的,但如果有必要,我会使用其中一个 - 尽管如此,我想知道是否有一种干净的方法可以做到这一点。
提前致谢。
智慧大石
叮当猫咪
鸿蒙传说
相关分类