Unity3d人物移动问题

南投北浪 2017-08-22 12:36:57
移动我采用的的鼠标点击地面,是人物移动到点击的那个位置,问题在于当我很快左右的点击地面,人物出现重影,我想请教一下大神这个问题是什么引起的以及解决的方法是什么?



下面是我人物移动的代码:
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<Transform> ();
_myCamera = Camera.main;
myAnimator = GetComponent<Animator> ();

}
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);
}
}
}
}
...全文
964 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
茶话 2017-09-20
  • 打赏
  • 举报
回复
摄像机的Clear Flags不要设置为Dont Clear
qq_36554400 2017-09-19
  • 打赏
  • 举报
回复
出现重影 是摄像机的问题把,你仔细看看摄像机这块
南投北浪 2017-08-23
  • 打赏
  • 举报
回复
额,能说清楚一点吗,意思是我没有用NavMesh,但是unity会自动调用吗?
zq1564171310 2017-08-22
  • 打赏
  • 举报
回复
unity 有自动寻路功能NavMesh

2,537

社区成员

发帖
与我相关
我的任务
社区描述
Unity3D相关内容讨论专区
游戏unity 技术论坛(原bbs)
社区管理员
  • Unity3D
  • 芝麻粒儿
  • 「已注销」
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Unity3D社区公告:

  1. 社区致力于解决各种Unity3D相关的“疑难杂症”。
  2. 社区不允许发布与Unity3D或相关技术无关内容。
  3. 社区版主邀请各位一道为打造优秀社区不懈努力。

试试用AI创作助手写篇文章吧