Könnte jemand bitte vielleicht mein Projekt herunterladen und sehen? Es ist sehr einfach, funktioniert aber nicht wie im Tutorial.Warum in meinem Einheitsprojekt funktioniert der Verfolgungs-Teil nicht?
In meinem Projekt habe ich IsTrigger
auf True in ThirdPersonController
oder AIThirdPersonController
für eines der Zeichen festgelegt. Dies lässt das Zeichen von der Ebene herunterfallen.
Ich änderte auch eines der Zeichen als Player
markiert und änderte den Zustand von PATROL
zu CHASE
, aber das änderte nichts. Der andere Spieler jagt den Spieler, den ich kontrolliere und laufe, niemals.
Warum fallen die Spieler, wenn ich in meinem Projekt IsTrigger
auf true setze?
Ich sehe in dem Video, dass der Lehrer eine Maze-Ebene verwendet. Ist das ein Paket, das ich in die Assets importieren soll oder ist es schon irgendwo in den Assets? Ich habe gerade normales Flugzeug hinzugefügt, weil ich kein Labyrinth finden konnte.
Hier ist ein Link für mein Projekt von meinem OneDrive. Der Dateiname ist Demo AI.rar
:
Hier ist ein Link für die Video-Tutorial ich zu folgen versucht bin. Es wird vermutet, einfach zu sein, nehme ich an:
Hier ist die BasicAi
Klasse ich in meinem Projekt verwenden, das gleiche Skript aus dem Tutorial-Video:
using System.Collections;
using UnityStandardAssets.Characters.ThirdPerson;
public class BasicAi : MonoBehaviour {
public NavMeshAgent agent;
public ThirdPersonCharacter character;
public enum State {
PATROL,
CHASE
}
public State state;
private bool alive;
// Variables for patrolling
public GameObject[] waypoints;
private int waypointInd = 0;
public float patrolSpeed = 0.5f;
// Variable for chasing
public float chaseSpeed = 1f;
public GameObject target;
// Use this for initialization
void Start() {
agent = GetComponent<NavMeshAgent>();
character = GetComponent<ThirdPersonCharacter>();
agent.updatePosition = true;
agent.updateRotation = false;
state = BasicAi.State.PATROL;
alive = true;
StartCoroutine ("FSM");
}
IEnumerator FSM()
{
while (alive)
{
switch (state)
{
case State.PATROL:
Patrol();
break;
case State.CHASE:
Chase();
break;
}
yield return null;
}
}
void Patrol()
{
agent.speed = patrolSpeed;
if (Vector3.Distance (this.transform.position, waypoints [waypointInd].transform.position) >= 2) {
agent.SetDestination (waypoints [waypointInd].transform.position);
character.Move (agent.desiredVelocity, false, false);
} else if (Vector3.Distance (this.transform.position, waypoints [waypointInd].transform.position) <= 2) {
waypointInd += 1;
if (waypointInd > waypoints.Length) {
waypointInd = 0;
}
}
else
{
character.Move (Vector3.zero, false, false);
}
}
void Chase()
{
agent.speed = chaseSpeed;
agent.SetDestination (target.transform.position);
character.Move (agent.desiredVelocity, false, false);
}
void OnTriggerEnter(Collider coll)
{
if (coll.tag == "Player")
{
state = BasicAi.State.CHASE;
target = coll.gameObject;
}
}
}
Ich kann nicht mehr als einen Link noch posten, also füge ich hier einen weiteren Link zu meinem Projekt in megafileuload hinzu http://www.megafileupload.com/nYky/Demo_AI.rar –
Ich habe die Archive aber nicht heruntergeladen Wenn Sie die IsTrigger() verwenden, um Kollision zu behandeln, werden Sie Objekte durchlaufen. – Cabrra