南投北浪 2017-08-22 06:45 采纳率: 0%
浏览 3590

unity3d游戏开发人物移动问题

移动我采用的的鼠标点击地面,是人物移动到点击的那个位置,问题在于当我很快左右的点击地面,人物出现重影,我想请教一下大神这个问题是什么引起的以及解决的方法是什么?
图片说明
图片说明
下面是我人物移动的代码:
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);
}  
}  
}  
}

  • 写回答

1条回答

  • threenewbee 2017-08-22 16:29
    关注
    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?