private Vector3 targer;//目标位置
private bool isover = true;//移动是否结束
public float speed;//移动速度
void Update()
{
if (Input.GetMouseButtonDown(1))
{//1.创建射线,从摄像机发射出一条经过鼠标当前位置的射线
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//获取屏幕位置
//2.发射射线
RaycastHit hitInfo = new RaycastHit();
if (Physics.Raycast(ray, out hitInfo))
//获取碰撞点的位置
{
if (hitInfo.collider.name == "ground")//地形上的点
{
targer = hitInfo.point;
targer.y = 0.5f;//设置默认高度为0.5f
isover = true;
}
}
}
//3.让角色移动到目标位置
MoveTO(targer);
}
{
//让角色移动到目标位置
if (isover)
{
Vector3 v1 = tar - transform.position;
transform.position += v1.normalized * speed * Time.deltaTime;
if(Vector3.Distance(targer,transform.position)<=0.1f)
{
isover = true;
transform.position = tar;
}
}
}