Может кто-нибудь, возможно, скачать и посмотреть мой проект? Это очень просто, но не работает, как в учебнике.Почему в моем проекте единство не работает?
В моем проекте я установил IsTrigger
в true в ThirdPersonController
или AIThirdPersonController
для одного из символов. Это заставляет персонажа падать с самолета.
Я также сменил один из символов, который будет помечен как Player
и изменил состояние с PATROL
на CHASE
, но это ничего не изменило. Другой игрок никогда не преследует/следит за игроком, которого я контролирую и передвигаюсь.
Почему игроки падают, когда я установил IsTrigger
в true в моем проекте?
Я вижу в видео, что инструктор использует лабиринт самолета. Является ли это пакетом, который я должен импортировать в Активы или это уже где-то в активах? Я только что добавил регулярный самолет, потому что я не мог найти Лабиринт.
Вот ссылка для моего проекта с моего OneDrive. Имя файла Demo AI.rar
:
Вот ссылка на видео-учебник я пытающийся следовать. Это предполагает, чтобы быть простым, я полагаю:
Вот BasicAi
класс я использую в моем проекте, тот же сценарий с видео-учебник:
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;
}
}
}
Я не могу опубликовать более одной ссылки, но я добавляю здесь еще одну ссылку на мой проект в megafileupload http://www.megafileupload.com/nYky/Demo_AI.rar –
Я не загружал архивы, но если вы используете IsTrigger() для обработки столкновения, вы будете проходить через объекты. – Cabrra