Unity C#通过不同名称的字符串调用脚本

时间:2017-12-30 04:42:41

标签: c# string unity3d

我的目标是在我的战斗脚本中,从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)的地方。

1 个答案:

答案 0 :(得分:1)

这正是GetComponent()所做的。官方文档没有说明传入一个类也会发现任何组件是指定类型的子类,但它会:

  

Getting derived class using base class in GetComponent?

     

是的,这将有效,因为我相信你期望它。

Unity Answers QA中没有相当多的文字真正引用。它从直接变为实现和结果。