【发布时间】:2014-09-05 02:11:19
【问题描述】:
我正在尝试创建定位系统。
当我点击一个骷髅敌人时,我希望能够从骷髅脚本中获取生命值和伤害,同样,当我点击另一个敌人时,我希望获得他们的特定生命值和损坏。
我能想到的唯一方法是使用GetComponent 方法,但是有没有一种方法可以使用通用的GetComponent,它根据我所针对的敌人使用一个变量,这样我就可以获得根据该变量选定的敌人?
【问题讨论】:
-
你试过
EnemyScript enemyScript = gameObject.GetComponent<EnemyScript>();吗? -
我做过这样的事情:
opponent.GetComponent<Skeleton>().getHit(damage);这是我在<ScriptName>中硬编码的地方,但我是说,我怎样才能将<ScriptName>设置为等于@987654327 @的脚本? -
我认为你做不到。我的建议是让所有敌人都有相同的脚本,所以你不需要更改
。相反,在敌人脚本中,您需要有一个变量 type,例如标记那个敌人是什么(例如,type = 1用于机器人,type = 2用于外星人等)。这样你也可以从GetComponent<ScriptName>获取type,并为每种类型的敌人设置条件。 -
GetComponent 方法是否具有接受
System.Type对象的覆盖?
标签: c# unity3d gameobject