unity里怎么让一个物体在在5秒内从某点移动到另外一点?

 我来答
爱军1978
高粉答主

2018-04-11 · 关注我不会让你失望
知道大有可为答主
回答量:193
采纳率:100%
帮助的人:3.2万
展开全部

解决方法:

已知两点距离与所用时间,可以得出速度值,然后以这个速度值往目标方向移动。this.transform.Translate(Vector3.normalize(目标位置-自身位置) * (Vector3.Distance(自身位置, 目标位置)/(所用时间 * Time.deltime)));

Unity里 入门简单的物体移动介绍:

首先我们来看看场景的搭建:建一个立方体,加一个点光源。我们要实现的就是让场景中的立方体延X 轴嗖嗖的移动那么我们在Project 新建一个js 脚本Creat->Javascript。

function Update () 2.{ 3.transform.Translate(Vector3(1,0,0)); 4. },复制代码然后将js 文件拖到Hierarchy 面板的立方体上实现绑定。运行一下,我们可以看到,立方体嗖的一声不见了。它一定是肚子饿了赶去吃饭了。好了,我们来修改代码让它慢一点。

function Update (){transform.Translate(Vector3(1,0,0)*Time.deltaTime); 4. }复制代码,运行一下,这会它老实了,慢慢的移动了。这是怎么回事呢。接下来我们一步一步的分解代码。首先Update ()没什么好讲的了,一直在用,相信大家都明白怎么回事。

接下来是transform :场景中的每一个对象都有一个transform ,用来储存和控制物体的位置,旋转和缩放。Translate :是transform 的函数,用来移动物体。它接受一个三维向量(Vector3)参数来移动。其实它还有第二个参数,就是按照自身坐标轴移动还是按照世界坐标轴移动。这里暂且不表。

Vector3:表示3D 的向量和点。3个参数分别代表了向量x ,y ,z 。transform.Translate(Vector3(1,0,0));这句代码的意思就是,让被绑定的物体,也就是场景中的立方体,向x 轴的方向移动1个单位。

Time.deltaTime :是一个时间增量,我想应该是这一帧的时间。像flash 中的一秒30帧,每帧多少秒之类的。在这个程序中它的值是0.016左右。原本移动一个单位,现在乘以0.016,那肯定慢了。也就是说,它的作用其实就是减慢移动的速度。

魔钥MK
2015-02-11 · 超过11用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:25.5万
展开全部
已知两点距离与所用时间,可以得出速度值,然后以这个速度值往目标方向移动。this.transform.Translate(Vector3.normalize(目标位置-自身位置) * (Vector3.Distance(自身位置, 目标位置)/(所用时间 * Time.deltime)));
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
时间_QH
2018-01-05
知道答主
回答量:7
采纳率:0%
帮助的人:6896
展开全部
瞬间移动的话,用协程吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
在海印寺写明信片的太史慈
2018-12-04
知道答主
回答量:4
采纳率:0%
帮助的人:2515
展开全部
DOTween插件 轻松实现。。可以去DoTween官网上下 插件,网上有很多教程。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式