簡體   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