查看: 1637|回复: 1
打印 上一主题 下一主题

[经验分享] Unity3D入门 第肆章 :简单的物体运动

[复制链接]

1557

主题

1

听众

1万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
454
精华
31

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2013-10-25 15:15:44 |只看该作者 |倒序浏览
unity3d入门 第肆章 :简单的物体运动

这章我们来了解一下Translate的使用

首先我们来看看场景的搭建:建一个立方体,加一个点光源。

我们要实现的就是让场景中的立方体延X轴嗖嗖的移动

那么我们在Project新建一个js脚本Creat->Javascript

键入代码
  • function Update ()
  • {
  •         transform.Translate(Vector3(1,0,0));
  • }

[color=rgb(51, 102, 153) !important]复制代码

然后将js文件拖到Hierarchy面板的立方体上实现绑定。

运行一下,我们可以看到,立方体嗖的一声不见了。它一定是肚子饿了赶去吃饭了。


好了,我们来修改代码让它慢一点。
  • function Update ()
  • {
  •         transform.Translate(Vector3(1,0,0)*Time.deltaTime);
  • }

[color=rgb(51, 102, 153) !important]复制代码

运行一下,这会它老实了,慢慢的移动了。

这是怎么回事呢。接下来我们一步一步的分解代码。

首先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,那肯定慢了。也就是说,它的作用其实就是减慢移动的速度。

搞完,上工程文件

工程文件.zip

162.24 KB, 下载次数: 0

工程文件

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

2

主题

1

听众

1143

积分

助理设计师

Rank: 4

纳金币
350
精华
0
沙发
发表于 2013-10-28 10:35:33 |只看该作者
感谢楼主分享~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-9-22 04:10 , Processed in 0.091993 second(s), 33 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部