Povstalez, ой ой точно, как же сразу не заметилДобавлено (17.10.2012, 19:16)
---------------------------------------------
Но вот теперь такая проблема, idle анимация воспроизводится еще и тогда, когда AI идет обратно, а должна run воспроизводиться, кто может помочь?
Code
using UnityEngine;
using System.Collections;
public class AINavMesh : MonoBehaviour {
public Transform _target; // Указываем переменную, к которой будет двигаться наш агент
public Transform _home;
public AnimationClip _animationAttack;
public AnimationClip _animationRun;
public AnimationClip _animationIdle;
NavMeshAgent _agent; // Указываем переменную агента
void Awake()
{
_home = transform.parent.transform;
}
void Start () {
_agent = (NavMeshAgent)this.GetComponent("NavMeshAgent"); // Указываем, что переменная _agent - это наш агент.
animation.AddClip(_animationAttack, "attack");
animation.AddClip(_animationRun, "run");
animation.AddClip(_animationIdle, "idle");
}
void Update () {
_agent.SetDestination(_target.position); // Заставляем агента двигаться в сторону _target'а
GameObject player = GameObject.FindGameObjectWithTag("Player");
if(Vector3.Distance(_agent.transform.position, player.transform.position) < 10){
animation.CrossFade("run");
_target = player.transform;
}
else {
_target = _home;
animation.CrossFade("run");
}
if(_target.transform.position == _home.transform.position)
{
animation.CrossFade("idle");
}
if(Vector3.Distance(_agent.transform.position, player.transform.position) < 4){
animation.CrossFade("attack");
_agent.speed = 0;
}
else{
_agent.speed = 3.5f;
}
}
}
Добавлено (17.10.2012, 21:54)
---------------------------------------------
никто ни чем не может помочь.. офигенное сообщество...