You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.3 KiB

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class MoveAction : ActionNode
{
public AI_Worker _Worker;
private Vector3 Dir;
private Vector3 lookDir;
private float speed = 5;
//向前和向后走的距离
public override IEnumerator Execute()
{
if (_Worker.animator.GetCurrentAnimatorStateInfo(0).IsName("Walk") == false)
{
_Worker.animator.CrossFade("Walk", 0f);
}
Dir = _Worker.targerPos - _Worker.transform.position;
lookDir.x = _Worker.movePoints[_Worker.PointIdenx].position.x;
lookDir.y = _Worker.transform.position.y;
lookDir.z = _Worker.movePoints[_Worker.PointIdenx].position.z;
//_Worker.transform.position += Dir.normalized * speed * Time.deltaTime;
_Worker.transform.LookAt(lookDir);
_Worker.GetComponent<NavMeshAgent>().SetDestination(_Worker.targerPos);
// _Worker.GetComponent<NavMeshAgent>().velocity= Dir.normalized * speed * Time.deltaTime;
if (Vector3.Distance(_Worker.transform.position, _Worker.targerPos) <= 0.4f)
{
_Worker.isWorkOver = false;
yield break;
}
yield return base.Execute();
}
}