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
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();
|
|
}
|
|
}
|