Schritt 9: AI
http://www.mixamo.com/Editor/New/86
Klicken Sie auf Ja, um die Animation anzeigen.
Klicken Sie auf Download
Klicken Sie auf anmelden
Konto erstellen
Klicken Sie erneut auf Download
Klicken Sie auf Kasse
Wählen Sie FBX Einheit für Download-Format
Klicken Sie auf Download
Erstellen Sie Modelle Ordner in das Fenster "Projekte" > Vermögen
Drag & Drop die Zombie in Ordner Modelle
Wenn eine Warnmeldung erscheint, wenn das Modell klicken Sie auf jetzt beheben zu importieren.
GameObject > erstellen leer
Benennen Sie die GameObject in Zombie
Ziehen Sie das Zombie-Modell auf der Zombie-Objekt
Setzen Sie einen Zeichen Controller auf dem Zombie-Objekt
Im Inspektor die Center-Y auf 1 gesetzt
Eine Kapsel Collider-Komponente hinzufügen
Komponente hinzufügen > Physik > Kapsel Collider
** Stellen Sie sicher, die exakten Werte übernehmen.
Erstellen Sie ein neues Skript namens Zombie in Ihrem Ordner "Scripts".
VarVisionDistance:float = 200;
VarMovementSpeed:float = 2;
VarHealth:int = 2;{functionFixedUpdate()}
Das Player-Objekt zu erhalten
varplayer:GameObject=GameObject.find("Player");
varcharacterController:CharacterController=GetComponent(CharacterController);
Die Position der Zombie-Augen
vareyePosition:Vector3=transform.position;
eyePosition.y += characterController.height;
Den Unterschied zwischen dem Spieler und den Zombie-Positionen zu bekommen
Dadurch entsteht ein Richtungsvektor in Richtung des Spielers.
varlookDirection=player.transform.position-EyePosition;
lookDirection=lookDirection.normalized;
Nur Look für den Player oder Objekte, die Teil der Szenerie (Gelände, Gebäude, etc.) sind
VarlayerMask:int = 1 << LayerMask.NameToLayer ("Spieler") |1 << LayerMask.NameToLayer("Default");
Die Richtung der Zombie bewegt, der Standardwert ist Stillstand
VarmovementDirection:Vector3 = Vector3.zero;
HitInfo enthalten Informationen darüber, was die Zombie sehen kann.
VarhitInfo:RaycastHit;
{If(Physics.Raycast(eyePosition,lookDirection,hitInfo,VisionDistance,layerMask))}
Wenn die Zombie Spieler Bewegung in Richtung zu ihnen sehen kann.
{If(hitInfo.Collider.gameObject==Player)}
MovementDirection = LookDirection;
movementDirection.y=0;
movementDirection=movementDirection.normalized;
}
}
Gesicht und in die gewünschte Richtung bewegen
{If(movementDirection!=Vector3.Zero)}
Transform.Rotation=Quaternion.LookRotation(movementDirection,Vector3.up);
}
characterController.SimpleMove(movementDirection*MovementSpeed);
}
Setzen Sie Skript auf den Zombie.
Erstellen Sie Zombie-Layer (Layer > Schichten bearbeiten)
Genommen Sie Zombie in Zombie Schicht, so dass die Zombie "andere Zombies durch sehen kann".
Drag & drop die Zombie in die Vermögenswerte > Prefabs Ordner erstelle ich ein Fertighaus davon.