白云哥

身披半件长工衣,怀揣一颗地主心

 

让对象在Unity3D中动起来

    让对象动起来有两步:

    1。在场景中移动对象

    2。让对象播放动画

    我们一步步来实现这个目标。

 

    移动对象需要用到UnityScript,不过这里我们只是想要简单的移动,拿“Script Tutorial”中的例子稍改改就行:

function Update () {
    transform.position.x+= 0.02;
}

    在Unity3D中运行看看效果,我们将这个脚本绑定到一个球上,球开始向x轴方向移动了。

 

    接下来再看看如何播放动画。

    手册上说,如果想用max来做动画,必须将其导出为fbx文件。

    没经验就是没经验,我装的3ds max9,从Autodesk网站上下载了个FBX插件For max 2009,结果死活加载不了,最后想想弄个低版本的插件试试,结果进去一找,怎么还有个For max9的?敢情max9跟max2009不是一回事啊!而且,这max9都已经这么老了,中间还隔了个max2008,再加上最新的max2010……

 

    在max中做了个简单的球,和几帧简单的动画,导出到Unity3D中,需要手动添加动画,效果如下:

ball_animation

    结合上面的移动脚本,最后试运行了下,球开始边转边跑了 :)

 

    还有几个问题:

    1。当在max做多个动画时,在Unity3D中添加进来,第二个动画的播放位置有问题,不管摆到哪儿,播动画的时候这个GameObject都会跑到场景原点去。

    2。手册中说只支持Animation与Bone Based Animation。不会做动画,不知道max的骨骼动画导出来是怎样,另外,biped动画是否能导出?需要试验一下。

 

-------------------

 

    费了半天劲找比例尺,原来是max中单位设置不正确。

    方法:Customize – Unit Setup – System Unit Setup

    用cm做单位,这样做一个 100 * 100 * 100 单位的box放到Unity3D中正好占据一个Unity3D单位。

    在手册的某处也说到了,只是不太明显:Unity’s physics system expects 1 meter in the game world to be 1 unit in the imported file.

    所以,也根本用不着我来假设一个Unity3D单位等于现实世界中的一米……

posted on 2009-07-29 22:12 白云哥 阅读(4141) 评论(2)  编辑 收藏 引用 所属分类: Unity3D

评论

# re: 让对象在Unity3D中动起来 2009-09-18 19:24 甲虫上校

看一哈子
很不错滴样子  回复  更多评论   

# re: 让对象在Unity3D中动起来 2009-09-19 09:07 甲虫上校

但是问题1怎么解决呢?
有不寻常解决方案么?
UNIEY3D支持MAX骨骼动画 但是要另加脚本控制 不然就打一套动作就不动了 我到现在还没认真研究过  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

常用链接

留言簿(4)

随笔分类

随笔档案

相册

我的链接

搜索

最新评论

阅读排行榜

评论排行榜