所以我会尽可能的干净。
1.我有不同类型的敌人,他们有不同类型的脚本来控制他们的行为。
1.我想用另一个脚本禁用这些脚本。
但问题是我不想使用某种类型的组件。例如:
我们有一个轰炸机控制器的轰炸机敌人和充电器控制器的充电器敌人。
如果我从另一个脚本将这些组件中的一个存储在公共组件中,我无法使用enabled属性打开或关闭它们。因为Component类没有enabled属性。
我可以使用指定的组件,但我不想。我可以存储脚本在他们的组件类型一样,轰炸机控制器的轰炸机控制器,但这将改变取决于敌人的类型。
正如我所说的,对于每一个敌人,我有不同的脚本来控制他们的行为。
总结一下我想这样:
public Component ControllerScript (will be set from the editor)
insomemethod(){
ControllerScript.enabled = false;
}
有什么想法吗?我可以用什么来代替上面的组件?
1条答案
按热度按时间r1zhe5dt1#
您是否考虑过为不同的敌人控制器脚本使用一个公共基类?Unity的默认组件(如不同种类的碰撞器)可以禁用的原因是它们继承自一个公共基类,该公共基类具有
enabled
属性,然后继承自Component
。例如,您可能有这样一个类:
那么子类可能类似于:
最后,您可以在公共变量中引用基类:
这需要你手动定义
enabled
的功能,并且你的类可能不会出现在编辑器中。如果你想避免所有这些麻烦,考虑从MonoBehaviour
继承-这通常是推荐的用户编写组件的基类。