繁体   English   中英

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

[英]Unity C# Calling script via string with varying name

我的目标是在战斗脚本中,从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脚本上调用death方法的部分。 Pcc.gameobject是我可以直接访问我要攻击的gameObject(Enemy)的地方。

这正是GetComponent()所做的。 官方文档并未明确指出,传入类也将找到属于指示的Type的子类的任何组件,但是它将:

在GetComponent中使用基类获取派生类?

是的,这将如您所愿地起作用。

Unity Answers QA中没有大量的文字可以真正引用。 它从那直接进入实现和结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM