Étape 9: AI
http://www.mixamo.com/Editor/New/86
Appuyez sur Oui à l’affichage de l’animation.
Cliquez sur Télécharger
Cliquez sur s’inscrire
Créer compte
Cliquez sur Télécharger à nouveau
Cliquez sur commander
Sélectionnez FBX pour l’unité de Format de téléchargement
Cliquez sur Télécharger
Créez des modèles de dossier dans la fenêtre projets > actifs
Glissez et déposez le Zombie dans le dossier de modèles
Si une fenêtre d’avertissement apparaît lorsque vous importez le clic modèle Difficulté maintenant.
GameObject > créer vide
Renommez le GameObject à Zombie
Le modèle de Zombie faites glisser l’objet Zombie
Mettre un contrôleur de caractère sur l’objet de Zombie
Dans l’inspecteur de la valeur du centre Y 1
Ajoutez un composant Capsule Collider
Ajouter le composant > physique > Capsule Collider
** Veillez à copier les valeurs exactes.
Créer un nouveau script nommé Zombie dans votre dossier scripts.
varVisionDistance:float = 200 ;
varMovementSpeed:float = 2 ;
varHealth:int = 2 ;{functionFixedUpdate()}
Récupérez l’objet Player
varplayer:gameobject=GameObject.Find("Player") ;
varcharacterController:CharacterController=GetComponent(CharacterController) ;
Obtenir la position des yeux de la Zombie
vareyePosition:Vector3=transform.position ;
eyePosition.y += characterController.height ;
Obtenir la différence entre le joueur et les positions de Zombie
Cela crée un vecteur pointant dans la direction du joueur.
varlookDirection=player.transform.position-eyePosition ;
lookDirection=lookDirection.normalized ;
Seul coup d’oeil pour le joueur ou les objets qui font partie du paysage (terrains, bâtiments, etc..)
varlayerMask:int = 1 << LayerMask.NameToLayer ("Player") |1 << LayerMask.NameToLayer("Default") ;
La direction que le Zombie se déplace, par défaut, immobile
varmovementDirection:Vector3 = Vector3.zero ;
hitInfo contiendra des informations sur ce que peut voir le Zombie.
varhitInfo:RaycastHit ;
{if(Physics.Raycast(eyePosition,lookDirection,hitInfo,VisionDistance,layerMask))}
Si le Zombie peut voir le déplacement du joueur vers eux.
{if(hitInfo.Collider.gameObject==Player)}
movementDirection = lookDirection ;
movementDirection.y=0 ;
movementDirection=movementDirection.normalized ;
}
}
Visage et va dans la direction choisie
{if(movementDirection!=Vector3.Zero)}
Transform.rotation=Quaternion.LookRotation(movementDirection,Vector3.up) ;
}
characterController.SimpleMove(movementDirection*MovementSpeed) ;
}
Mettre le script sur le Zombie.
Créez Zombie calque (calques > modifier les couches)
Mis Zombie en Zombie couche pour que le Zombie peut « voir à travers » d’autres zombies.
Glissez et déposez le Zombie dans l’actif > dossier de préfabriqués pour créer un préfabriqué de celui-ci.