南投北浪 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
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题