私の目標は戦闘スクリプトで、CombatHandlerの死機能を敵に付随するスクリプトに呼び出すことです。問題は、敵が同じままでいないということです。つまり、スクリプト名を変更する必要があります。 例えば、ここに1体の敵の次はEnemyGoblinと呼ばれるスクリプトを持つことになり、EnemySalamanderという名前のスクリプトを持っています(これらは敵の統計情報を制御、電気ショック療法)Unity C#さまざまな名前の文字列を使用した呼び出しスクリプト
は、コードスニペットは、戦闘ハンドラからである
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);
}
I gameObjectのスクリプトでdeathメソッドを呼び出す必要がある部分をコメントアウトしました。 Pcc.gameobjectは攻撃対象のgameObject(Enemy)に直接アクセスできる場所です。
これは、OOP原則を求めています!すべてのスクリプトが共通の基本クラス(例えば 'Enemy')を拡張していますか?もしそうなら、 'GetComponent()'が動作します! –
Draco18s
はい!彼らは "EnemyBase"というクラスを継承しているので、代わりにそのクラスを呼び出すことができますか? –
public class EnemySalamander:EnemyBase { \t void Start(){ \t} } –