文/圖:林昭自

本文轉載自聯成電腦技術論壇,歡迎點選此連結,前往駐站專欄與講師互動。

20140902pic00final  

前言
      在上一篇的介紹中,我們完成了場景的設置,同時也把角色身體的部位準備好(利用Sprite Editor來切割),在本篇技術文章中,我們將設置好角色物件,並且利用Animator來編輯。

20140902pic000  
組合出角色物件
      首先建立好Hero空物件來當成角色的根物件。接著依序加入下列的Sprite Renderer子物件:Bazooka(火箭炮),hat(小帽),leftEye(左眼),leftLeg(左腳),leftHand(左手),rightEye(右眼),rightFoot(右足),rightHand(右手),tache(鬍子),body(身體)。組合完身體之後,為了讓角色有基本的碰撞,我們在根物件上加上Rigidbody 2D以及Box Collider2D兩個組件,但考慮到地形有可能有起伏,為了讓角色移動能更加平順,我們可以在角色的底部加上Circle Collider2D,用一個圓形來跟地形碰撞,可以提高整體移動的流暢性。

       另外為了避免角色旋轉,我們可以把Rigidbody 2D上面的Fixed Angle勾選起來,讓此Rigidbody 2D固定住角度,不要隨意旋轉。接著我們在Hero物件上加上Animator組件,Animator組件是Unity4所提出的新的動畫組件,有了Animator組建搭配Animator Controller我們可以更有彈性地編輯動畫。我們在Project視窗中,

20140902pic001

20140902pic00220140902pic00320140902pic004

     建立一個Animator Controller名為Character,接著我們可以透過Animation工具替角色編輯動畫,在這個階段,我們先編輯Idle(待機),Run(跑步)以及Jump跳等動畫。接著在Animator編輯器中,我們可以編輯這三種動畫的關係,概念上角色播放動畫可以當成一種有限狀態機(Finite - State - Machine),Animator 編輯器就是採用了有限狀態幾的概念,每一種不同的動畫,可以被視為是角色不同狀態,當發生特定事件時,角色會去播放不同的狀態的動畫。所謂特定的事件,在Animator編輯器中,是透過設定參數來達到的。以這個簡單的小範例來說,我們可以新增一個參數叫做速度,接著我們檢查速度這個參數的值,如果速度大於零,代表角色在移動,此時就播放移動的動畫,如果速度等於零,代表角色應該是靜置,此時就播放跑步的動畫,再切換動畫(狀態)的過程中,Unity同時會利用動畫混合的技術,讓動畫在轉換的過程中,可以更加的平滑,讓玩家不會有很突兀的感覺。

結論
在這篇文章中,我們把英雄的Sprite組合出來,在下一篇文章中,我們將為各位深度分析整個範例專案與製作流程。

延伸閱讀 

聯成電腦昭自老師專欄:如何將Unity開發的遊戲上架到Google Play。  

聯成昭自老師專欄:如何在Android手機上測試由Unity開發的遊戲  

聯成電腦昭自老師專欄:超好用Unity外掛-NGUI介紹 (一)

聯成電腦昭自講師專欄:Unity 2D範例(二)-場景設置 

聯成電腦昭自老師專欄:Unity 2D範例(三)-基本概念

arrow
arrow

    聯成電腦 發表在 痞客邦 留言(0) 人氣()