Unity中将一个物体移动至另一个物体,(完全重合)停止的三种方法

更新时间:2023-07-08 23:53:22 阅读: 评论:0

Unity中将⼀个物体移动⾄另⼀个物体,(完全重合)停⽌的
三种⽅法
1.创建cube,cube(1);
2.在cube创建脚本"Move";
第⼀个:
using UnityEngine;
using System.Collections;
public class Move : MonoBehaviour {
public GameObject cube1;                          //创建⼀个物体cube1,这个在⾯板上出现,把上⾯的cube(1)拖⼊进去,                                                                                cube1就代表了cube(1);
// U this for initialization
void Start () {
}
sly// Update is called once per frame
void Update () {
Vector3 direction = ansform.position - transform.position;    //cube1的坐标减去默认物体的坐标=得出⼀个向量,带数值和⽅向,所以移动的距离和⽅向就出来了,赋给类型为Vector3的direction,direction就代表了
transform.Translate(direction.*Time.deltaTime*1);                  //然后移动就⾏了
}
}
第⼆种⽅法:
using UnityEngine;reality
using System.Collections;
public class Move : MonoBehaviour {
public GameObject cube1;                          //创建⼀个物体cube1,这个在⾯板上出现,把上⾯的cube(1)拖⼊进去,                                                                                cube1就代表了cube(1);
// U this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
transform.position = Vector3.Lerp(transform.ansform.position,Time.deltaTime*2);
}
}
/
/Vectory3.Lerp的意思是差值,把2点之间的距离设定为0-1,值等于0.5就代表中间,0.7就代表⼗分之七的距离;
//然后这个=transform.position ,就不⽤写移动了,默认物体的位置直接就“过去”了。
第三种:
using UnityEngine;
using System.Collections;
tlcpublic class Move : MonoBehaviour {上海话翻译
payroll
public GameObject cube1;                          //创建⼀个物体cube1,这个在⾯板上出现,把上⾯的cube(1)拖⼊进去,                                                                                cube1就代表了cube(1);
// U this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
transform.position = Vector3.MoveTowards(transform.ansform.position,Time.deltaTime*2);opportunites
电气工程专业排名
}                                          //MoveTowards:两点之间的距离设定为⼀个定数,只要要移动的点和⽬标点之间有距离,就⼀直移动下去,
}
只有第三种⽅法是匀速的,前两种都是先快后慢的。
第四种:
using UnityEngine;
punching
using System.Collections;
public class Move : MonoBehaviour {
public GameObject cube1;
public float smoothTime;
Vector3 sudu;
// U this for initialization
indemand
void Start () {
}
// Update is called once per frame
void Update () {
transform.position = Vector3.SmoothDamp(transform.position, ansform.position, ref sudu,smoothTime);
}                                          //平滑阻尼  返回值是Vectory3类型,需要先定义Vectory3的⼀个量sudu,
/
/smoothTime是在⾯板上可以赋值的,这个值⼤,后台的⾏进速度 sudu就⼩,这个sudu                                                          不可以定义设置赋值。
}
这种也不是匀速的。
总结:
void Update () {
//Vector3 direction = ansform.position - transform.position;夹克的英文
transform.Translate(direction.*Time.deltaTime*1);
//transform.position =Vector3.MoveTowards(transform.ansform.position,Time.deltaTime*2);
//transform.position = Vector3.Lerp(transform.ansform.position,Time.deltaTime*2);
//transform.position = Vector3.SmoothDamp(transform.position, ansform.position, ref sudu,s
moothTime); }

本文发布于:2023-07-08 23:53:22,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1086325.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:物体   类型   定义
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图