Intro till enhet (9 / 14 steg)
Steg 9: AI
http://www.mixamo.com/Editor/New/86
Tryck på Ja för att visa animeringen.
Klicka på Hämta
Klicka på logga in
Skapa konto
Klicka på Hämta igen
Klicka på kassan
Välj FBX för enhet för Hämta Format
Klicka på Hämta
Skapa modeller mapp i fönstret projekt > tillgångar
Dra och släpp mappen modeller Zombie
Om en varningsfönster dyker upp när du importerar den modell klicket fixa nu.
GameObject > Skapa tomma
Byt namn på GameObject till Zombie
Dra objektet Zombie Zombie modellen
Sätta en karaktär Controller på objektet Zombie
I granskaren inställd på Center Y 1
Lägga till en kapsel Collider komponent
Lägga till komponenten > fysik > kapsel Collider
** Se till att kopiera de exakta värdena över.
Skapa ett nytt skript som heter Zombie i mappen scripts.
varVisionDistance:float = 200.
varMovementSpeed:float = 2;
varHealth:int = 2;functionFixedUpdate() {
Få spelare objekt
varplayer:GameObject=GameObject.find("Player");
varcharacterController:CharacterController=GetComponent(CharacterController);Få ställning som zombies ögon
vareyePosition:Vector3=transform.position;
eyePosition.y += characterController.height;Få skillnaden mellan spelaren och Zombie positioner
Detta skapar en riktning vektorn pekar i riktning mot spelaren.
varlookDirection=player.transform.position-eyePosition;
lookDirection=lookDirection.normalized;Bara leta efter spelare eller objekt som är del av landskapet (terräng, byggnader, etc.)
varlayerMask:int = 1 << LayerMask.NameToLayer ("spelare") |1 << LayerMask.NameToLayer("Default");Riktningen Zombie kommer att flytta, står still som standard
varmovementDirection:Vector3 = Vector3.zero;hitInfo innehåller information om vad Zombie kan se.
varhitInfo:RaycastHit;
IF(physics.Raycast(eyePosition,lookDirection,hitInfo,VisionDistance,layerMask)) {
Om Zombie kan se spelare flytta mot dem.
IF(hitInfo.Collider.gameObject==Player) {
movementDirection = lookDirection;
movementDirection.y=0;
movementDirection=movementDirection.normalized;
}
}Ansikte och steg i vald riktning
IF(movementDirection!=Vector3.Zero) {
Transform.rotation=quaternion.LookRotation(movementDirection,Vector3.up);
}
characterController.SimpleMove(movementDirection*MovementSpeed);
}
Lägga skriptet på Zombie.
Skapa Zombie lager (lager > Redigera lager)
Användas, Zombie Zombie lagret så att Zombie kan se andra zombies.
Dra och släpp Zombie i tillgångarna > prefabricerade mapp och skapa ett prefab det.