Mon Raycast fonctionne et frappe mon ennemi.Essayer d'obtenir le script d'une autre classe dans l'unité avec javascript
Mais si je le frappe, je veux changer la variable de santé dans l'autre script de l'objet Object (Enemy Controller) en appelant la fonction TakeDamage(damage)
.
Malheureusement, je reçois cette erreur:
"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'?"
Voici mon code:
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);
}
}
Merci!
Etes-vous sûr que c'est JavaScript? Ou est-ce que Unity applique des types dans JS? - Ah. Vous pouvez ajouter la balise 'UnityScript'. – evolutionxbox
C'est toujours une sorte de Javascript mais la balise UnityScript est mieux utilisée pour cela. – Programmer
@ 1zz0, Ce problème se produit uniquement avec UnityScript. Pensez à passer en C#. Une autre raison de passer en C# est que UnityScript est maintenant [interrompu] (https://stackoverflow.com/questions/45523239/is-unityscript-javascript-discontinued). Son compilateur sera retiré de Unity à l'avenir. Épargnez-vous le temps maintenant. – Programmer