2017-09-06 1 views
-1

내 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'?"

여기 내 코드입니다!

+0

이것이 자바 스크립트입니까? 아니면 Unity가 JS에서 유형을 시행합니까? - 아. 'UnityScript' 태그를 추가 할 수 있습니다. – evolutionxbox

+0

그것은 여전히 ​​Javascript의 일종이지만 UnityScript 태그가 더 잘 사용됩니다. – Programmer

+0

@ 1zz0,이 문제는 UnityScript에서만 발생합니다. C#으로 전환하는 것을 고려하십시오. C#으로 전환해야하는 또 다른 이유는 UnityScript가 현재 단종 되었기 때문입니다 (https://stackoverflow.com/questions/45523239/is-unityscript-javascript-discontinued). 그 컴파일러는 앞으로 Unity에서 제거 될 것입니다. 지금 시간을 절약하십시오. – Programmer

답변

0

좋아, 문제가 발견되었습니다. 내 "Enemy Controller"는 Assets> Standard Assets 폴더에 있어야합니다.

+0

질문을 닫거나 답변을 기다리고 싶습니까? (어느 쪽이든, 당신은 담당자를 얻지 못할 것입니다) – evolutionxbox

관련 문제