내 Raycast가 작동 중이며 적을 때리고 있습니다.자바 스크립트로 다른 클래스의 스크립트를 얻으려고 시도합니다
하지만 그를 때렸을 때 TakeDamage(damage)
함수를 호출하여 적중 개체 (적 컨트롤러)의 다른 스크립트에서 상태 변수를 변경하고 싶습니다.
불행하게도,이 오류가 발생합니다 :
if (hit.transform.tag == "warzombie_01") {
// Impact Particle for Enemy - warzombie_01
var impactHitBlood: GameObject = Instantiate(impactEffectBlood, hit.point, Quaternion.LookRotation(hit.normal));
Destroy(impactHitBlood, 0.5 f);
//var enemyController : EnemyController = hit.transform.gameObject.GetComponent.<EnemyController>();
var enemyController: EnemyController = hit.transform.GetComponent(EnemyController);
if (enemyController != null) {
enemyController.TakeDamage(damage);
}
}
감사 :
"Assets/Weapons/FPS Weapons/Scripts/Gun_Controller.js(692,35): BCE0018: The name 'EnemyController' does not denote a valid type ('not found'). Did you mean 'System.ComponentModel.EnumConverter'?"
여기 내 코드입니다!
이것이 자바 스크립트입니까? 아니면 Unity가 JS에서 유형을 시행합니까? - 아. 'UnityScript' 태그를 추가 할 수 있습니다. – evolutionxbox
그것은 여전히 Javascript의 일종이지만 UnityScript 태그가 더 잘 사용됩니다. – Programmer
@ 1zz0,이 문제는 UnityScript에서만 발생합니다. C#으로 전환하는 것을 고려하십시오. C#으로 전환해야하는 또 다른 이유는 UnityScript가 현재 단종 되었기 때문입니다 (https://stackoverflow.com/questions/45523239/is-unityscript-javascript-discontinued). 그 컴파일러는 앞으로 Unity에서 제거 될 것입니다. 지금 시간을 절약하십시오. – Programmer