讓對象動起來有兩步:
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中,需要手動添加動畫,效果如下:
結合上面的移動腳本,最后試運行了下,球開始邊轉邊跑了 :)
還有幾個問題:
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單位等于現實世界中的一米……