我的目标是在我的战斗脚本中,从CombatHandler调用死亡函数到附加到敌人的脚本。问题是敌人不会保持不变,因此意味着脚本名称必须改变! 例如,一个敌人将有一个名为EnemySalamander的脚本,下一个将有一个名为EnemyGoblin的脚本(这些控制敌人的统计数据等)
以下是来自战斗处理程序的代码段
if (healthEnemy < 0) {
healthEnemy = 0;
Debug.Log ("You killed a "+nameEnemy+". You have "+ps.health+" health left!");
//pcc.gameObject.scriptname.death ();
clearEnemy ();
} else if (ps.health < 0) {
clearEnemy ();
ps.health = 0;
Debug.Log ("You died with the enemys health left at " + healthEnemy);
}
我已经注释掉了我需要在gameObject脚本上调用死亡方法的部分。 Pcc.gameobject是我可以直接访问我正在攻击的gameObject(Enemy)的地方。
答案 0 :(得分:1)
这正是GetComponent()
所做的。官方文档没有说明传入一个类也会发现任何组件是指定类型的子类,但它会:
Getting derived class using base class in GetComponent?
是的,这将有效,因为我相信你期望它。
Unity Answers QA中没有相当多的文字真正引用。它从直接变为实现和结果。