uniny 物体运动到一个点停止_Unity3D中的逐点运动

逐点运动

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值