使用我的方法将预制件实例化为对象
Prefab instantiated as an object with my methods
我有一个想法,必须有一种方法可以将 class 附加到预制件 - 基本上是将我自己的方法添加到代码中。然后,当我在运行时实例化我的预制件时,我希望它成为这个 class.
的一个实例
现在,我可以将脚本附加到预制件,它的启动和更新工作正常,但我的想法是这样的:
public class PowerupWidget : MonoBehaviour {
void Start() {
Debug.Log("PowerupWidget created!!!");
}
void SetTitle(string title) {
// ... set the prefab's title widget text ...
}
}
当我实例化预制件时,会调用 Start 方法。但是实例当然是GameObject类型了。
// in my scene script:
// prefab is my PowerupWidget
GameObject p = Instantiate(prefab, transform.position, Quaternion.identity, this.transform);
// here p is GameObject of course
有没有办法获取 PowerupWidget 的实例 class,还是我的假设完全错误?
统一结构:
- 事物分为实体和组件,当实体是游戏对象而组件是附加到该游戏对象的类(脚本)。
你只需要这样做
PowerupWidget yourWidget = p.GetComponent<PowerupWidget>();
我有一个想法,必须有一种方法可以将 class 附加到预制件 - 基本上是将我自己的方法添加到代码中。然后,当我在运行时实例化我的预制件时,我希望它成为这个 class.
的一个实例现在,我可以将脚本附加到预制件,它的启动和更新工作正常,但我的想法是这样的:
public class PowerupWidget : MonoBehaviour {
void Start() {
Debug.Log("PowerupWidget created!!!");
}
void SetTitle(string title) {
// ... set the prefab's title widget text ...
}
}
当我实例化预制件时,会调用 Start 方法。但是实例当然是GameObject类型了。
// in my scene script:
// prefab is my PowerupWidget
GameObject p = Instantiate(prefab, transform.position, Quaternion.identity, this.transform);
// here p is GameObject of course
有没有办法获取 PowerupWidget 的实例 class,还是我的假设完全错误?
统一结构:
- 事物分为实体和组件,当实体是游戏对象而组件是附加到该游戏对象的类(脚本)。
你只需要这样做
PowerupWidget yourWidget = p.GetComponent<PowerupWidget>();