내 목표는 전투 스크립트에서 CombatHandler의 죽음 기능을 적과 연결된 스크립트로 호출하는 것입니다. 문제는 적군이 똑같이 머무르지 않는다는 것입니다. 따라서 스크립트 이름이 바뀌어야합니다! 예를 들어, 한 적이 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에서 니펫 EnemyGoblin라는 스크립트 (이 적 통계를 제어, 요법) 여기
이있을 것이다 gameObject의 스크립트에서 death 메서드를 호출해야하는 부분을 주석 처리했습니다. Pcc.gameobject는 내가 공격하고있는 gameObject (Enemy)에 직접 액세스 할 수있는 곳입니다.
이것은 OOP 원칙을 요구합니다! 모든 스크립트가 공통 기본 클래스 (예 : '적')를 확장합니까? 그렇다면'GetComponent()'이 작동합니다! –
Draco18s
예! "EnemyBase"라는 클래스를 상속하므로 클래스를 대신 호출 할 수 있습니까? –
공용 클래스 EnemySalamander : EnemyBase { \t void Start() { \t} } –