移动我采用的的鼠标点击地面,是人物移动到点击的那个位置,问题在于当我很快左右的点击地面,人物出现重影,我想请教一下大神这个问题是什么引起的以及解决的方法是什么?
下面是我人物移动的代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class playerMove : MonoBehaviour
{
public Transform myTransform;
private Ray ray;
private RaycastHit mHit;
//是否动作切换
private bool isCanAutoMove;
private Vector3 mTargetPos;
public Animator myAnimator;
private Camera _myCamera = null;
public float movespeed=5f;
void Start()
{
myTransform = gameObject.GetComponent ();
_myCamera = Camera.main;
myAnimator = GetComponent ();
}
void Update()
{
// 鼠标点击某个点,人物走向该地点
if (Input.GetMouseButton(0))
{
//返回一条射线 Ray从摄像机到屏幕指定的点
Ray ray = _myCamera.ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast(ray, out mHit))
{
if (mHit.collider.gameObject.tag == "plane")
{
mTargetPos = mHit.point;
transform.LookAt(new Vector3(mTargetPos.x,mTargetPos.y,mTargetPos.z));
isCanAutoMove = true;
}
}
}
if (isCanAutoMove)
{
myAnimator.SetBool ("IdelOrRun",true);
transform.Translate(Vector3.forward * movespeed * Time.deltaTime);
myTransform.transform.Translate(Vector3.forward * movespeed * Time.deltaTime);
float distance = Vector3.Distance(mTargetPos, transform.position);
if (distance <= 0.5f)
{
isCanAutoMove = false;
myAnimator.SetBool ("IdelOrRun",false);
}
}
}
}