uniny 物体运动到一个点停止 您所在的位置:网站首页 unity怎么让物体停止运动 uniny 物体运动到一个点停止

uniny 物体运动到一个点停止

2024-02-25 15:24| 来源: 网络整理| 查看: 265

逐点运动

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 实验室设备网 版权所有