je regarder le tuto de krys une bonne dizaine de fois mais j'ai trouver aucune erreur aider moi svpNullReferenceException
ia.seekPlayer () (at Assets/script/script/ia.js:29)
ia.Update () (at Assets/script/script/ia.js:24)
voila le script
Code : Tout sélectionner
var point=100;
var hitPoints=20;i
var explosion:Transform;
var tir1:Transform;
var tir2:Transform;
var missile:GameObject;
var isShooting=false;
var characterLayer:LayerMask;//calque de enemy
var gravity=20;
private var player:GameObject;
player=GameObject.Find("player");
var visionAngle:float=45;
var visonRange:float=100;// nombre de metre de reperage
private var distanceToPlayer:float;
private var canSeePlayer:boolean=false;
var hit : RaycastHit;
function Update(){
seekPlayer();//on lance la fonction de recherche du joueur
}
function seekPlayer(){
var moveDirection=Vector3.zero;
directionToPlayer=player.transform.position-transform.position;
distanceToPlayer=Vector3.Distance(transform.position,player.transform.position);
var playerAngle=Vector3.Angle(directionToPlayer,transform.forward);
if((Mathf.Abs(playerAngle)<visionAngle && distanceToPlayer<visonRange) || canSeePlayer==true){
Physics.Linecast(transform.position,player.transform.position,hit,~characterLayer.value);
if(hit.collider.name==player.collider.name){
moveDirection=transform.forward;
var tempRot=Quaternion.Slerp(transform.rotation,Quaternion.LookRotation(directionToPlayer),2*Time.deltaTime);//calcule de la rotation de enemy vers player
tempRot.x=0;
tempRot.z=0;
transform.rotation=tempRot;
canSeePlayer=true;
shootMissile();
}
}
moveDirection.y-=gravity*Time.deltaTime;
var controller:CharacterController=GetComponent(CharacterController);
var flags=controller.Move(moveDirection*3*Time.deltaTime);
function makeDamage(damage:float){//.....fonction gestion dommages de l'ennemi
hitPoints-=damage;
if (hitPoints<=0){
Instantiate(explosion,transform.position,transform.rotation);
camera.main.SendMessageUpwards("Applypoints".points,SendMessageOptions.DontRequireReceiver);
Destroy(gameObject);
}
}
function shootMissile(){
if (isShooting==false){
isShooting=true;
Instantiate (missile,tir1.position,tir1.rotation);
Instantiate (missile,tir2.position,tir2.rotation);
yield WaitForSeconds(2);
isShooting=false;
}
}