Stap 9: AI
http://www.mixamo.com/editor/New/86
Druk op Ja om de animatie te bekijken.
Klik op downloaden
Klik op aanmelden
Account aanmaken
Klik Download opnieuw
Klik op de Checkout
Selecteer FBX voor eenheid voor Download formaat
Klik op downloaden
Modellen-map maken in het venster projecten > activa
Slepen en neerzetten van de Zombie in de map modellen
Als een waarschuwingsvenster opduikt bij het importeren van het model Klik nu vast.
GameObject > leeg maken
De GameObject hernoemen naar Zombie
Sleep de Zombie-model naar het Zombie-Object
Een teken-Controller zetten de Zombie-Object
Stel in de inspecteur de Center-Y op 1
Een Capsule Collider-component toevoegen
Een onderdeel toevoegen > Natuurkunde > Capsule Collider
** Zorg ervoor dat u de exacte waarden worden overschreven.
Maak een nieuw script genaamd Zombie in uw map ' scripts '.
varVisionDistance:float = 200;
varMovementSpeed:float = 2;
varHealth:int = 2;functionFixedUpdate() {}
De speler-object ophalen
varplayer:GameObject=GameObject.Find("Player");
varcharacterController:CharacterController=GetComponent(CharacterController);
De positie van de Zombie's ogen krijgen
vareyePosition:Vector3=transform.position;
eyePosition.y += characterController.height;
Het verschil tussen de speler en de Zombie-posities
Hiermee maakt u een vector van de richting wijzen in de richting van de speler.
varlookDirection=player.transform.position-eyePosition;
lookDirection=lookDirection.normalized;
Alleen zoeken naar de speler of objecten die deel uitmaken van het landschap (terrein, gebouwen, enz.)
varlayerMask:int = 1 << LayerMask.NameToLayer ("speler") |1 << LayerMask.NameToLayer("Default");
De richting van die de Zombie verplaatsen zal, wordt standaard ingesteld op stil
varmovementDirection:Vector3 = Vector3.zero;
hitInfo bevat informatie over wat de Zombie kan zien.
varhitInfo:RaycastHit;
if(Physics.Raycast(eyePosition,lookDirection,hitInfo,VisionDistance,layerMask)) {}
Als de Zombie de speler beweging naar hen ziet.
if(hitInfo.Collider.gameObject==Player) {}
movementDirection = lookDirection;
movementDirection.y=0;
movementDirection=movementDirection.normalized;
}
}
Gezicht en stap in de gekozen richting
if(movementDirection!=Vector3.Zero) {}
Transform.Rotation=quaternion.LookRotation(movementDirection,Vector3.up);
}
characterController.SimpleMove(movementDirection*MovementSpeed);
}
Script zetten de Zombie.
Maak Zombie laag (lagen > lagen bewerken)
Gestoken Zombie Zombie laag zodat de Zombie 'doorzichtig' andere zombies.
Slepen en neerzetten van de Zombie in de activa > Prefabs map maken een prefab hiervan.