uniny 物体运动到一个点停止 | 您所在的位置:网站首页 › unity怎么让物体停止运动 › uniny 物体运动到一个点停止 |
逐点运动 1.移动到鼠标点击处停止 描述:物体cube运动到鼠标点击处并停止运动 在上节基础上我们增添了这些内容: 首先,定义3个私有变量,鼠标点击位置endPoint(Vector3类型)、物体cube距点击处的距离长度s(float类型)、每帧cube移动的距离长度dis(float类型); 然后,在Update()函数中,第一个if条件判断中添加:获取endPoint位置,计算s长度,令dis为0;第二个if条件判断中添加:每帧dis累加,判断dis是否不小于s,若dis大于等于s,说明cube移动到点击处,使moveFlag置为0不再移动,并将endPoint赋给cube的位置,使得cube最终停止在该位置。 using UnityEngine; using System.Collections; public class LineMove : MonoBehaviour { public GameObject cube; private Camera _camera; private Vector3 screenV; private float hudu; private float speed = 3; private float dx; private float dy; private int moveflag = 0; private Vector3 endPoint; private float s; private float dis; void Start() { _camera = Camera.main; screenV = _camera.WorldToScreenPoint(cube.transform.position); } void Update () { if(Input.GetMouseButtonDown(0)) { Vector3 dianV = Input.mousePosition; Vector3 cubePosition = cube.transform.position; dianV.z = screenV.z; Vector3 wv = _camera.ScreenToWorldPoint(dianV); endPoint = wv; float ddx = wv.x - cubePosition.x; float ddy = wv.y - cubePosition.y; s = Mathf.Sqrt(ddx * ddx + ddy * ddy); hudu = Mathf.Atan2(ddy, ddx); dx = speed * Math |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |