http://www.tairan.com/archives/6939#16瀏覽器
原文地址:http://www.raywenderlich.com/66523/unity-2d-tutorial-animation-controllers
泰然翻譯組:Verky。校對:gloryming, lareina。
歡迎回到咱們的Unity 4.3 2D 教程系列!
在這一系列的第一部分,你已經在經過熟悉Unit4.3的內建2D支持過程當中,實現了一個叫作 Zombile Conga 的遊戲。
在這個Untiy 4.3 2D教程中,你將學會如何使用動畫控制器來在一組動畫狀態中進行切換。
在這系列的第二部分,你能夠學會經過使用Unity強大的內建動畫系統,讓殭屍和貓動起來。
在第三部分中,你會有更多建立動畫片斷的機會。同時,你能夠學到如何在這些動畫的片斷控制他們的播放和過渡。
這個教程將會接着上一部分結束的地方。若是你尚未相關的項目文件,那麼能夠從這裏下載。
就像你在第二部分所作的,解壓這個文件,而後經過雙擊ZombieConga/Assets/Scenes/CongaScene.unity打開你的場景。
如今開始讓貓跳起舞來吧!
到目前爲止,你只是用了動畫剪輯,就像 ZombieWalk
和CatSpawn。你在[第一部分]學習到,Unity使用一個動畫組件依附在你的GameObjects,爲了播放這些動畫片斷。可是Animator如何知道應該播放哪一個片斷呢?
爲了發現這一點,在Hierarchy中選擇cat,而後在Inspector中查看Animator組件。Controller字段被命名爲cat,就像下圖所展現的那樣:
這個對象是一個Animation Controller,Unity爲你建立了這個對象,當你建立了cat的第一個動畫剪輯,這個就是Animator用來肯定哪一個動畫該播放。
注意:這個Animator包含一些其餘的屬性,你能夠在Inspector進行編輯,可是在這部分教程中,你不須要處理任何這些其餘屬性。你能夠經過查看Unity的Animator文檔來了解更多。
就像你在圖片中看到,這個在項目瀏覽器中的Animators文件夾包含了名爲cat的控制器,同時還有名爲zombie的控制器,這些都是Unity爲了這個zombile GameObject對象所建立的:
注意:儘管Unity自動建立了這些動畫控制器,你也能夠經過在Unity的菜單中選擇Assets\Create\AnimatorController來手動建立他們。
經過選擇Window\Animator打開Animator面板,不要被相似的名字愚弄到你:這個面板和Animation面板是不一樣的。
在Hierarchy面板中選擇cat以便在Animator面板中查看它的Animator Controller,以下圖所示:
到目前爲止,忽略掉左上角以及左下角的叫作Layers和Parameters的那些區域,好好看一下充滿整個視圖的那些矩形。
注意:你能夠經過拖動這些矩形,讓他們分佈成你想要的的樣子。因此若是你的屏幕上和這些截圖有一些不一致,你不須要擔憂。
你看到的是狀態機的幾個狀態,這個狀態機決定了在某一時刻,哪一個動畫片斷應該在cat上播放。
若是你歷來沒有聽過狀態機,你能夠把它看成一個可能狀態的集合。在任何給定的時間,這個機器都處在於這些已知狀態中的一個,而且它包含了何時,它會如何在狀態之間切換。
注意:大部分狀態機爲有限狀態機,這意味着同一時刻,它們只能處於一種狀態。理論上說,被Animator Controller定義的狀態機不是有限狀態機,由於當控制器在不一樣狀態之間進行切換時,不僅一個狀態是激活的。接下來立刻就會接觸到更多有關狀態過渡的內容。
這些矩形每個都表明了一個動畫片斷,除了那個藍綠色的叫作Any State的,這個咱們晚一點再展開。
這個橙色的矩形表明了默認狀態,也就是當Animation Controller啓動的時候,默認的狀態,如圖:
Unity會把第一個關聯的動畫片斷做爲這個Animation Controller的默認狀態。因爲你是按次序建立這個貓的動畫片斷,Unity正確的將這個CatSpawn做爲了默認動畫。不過,若是你想設定一個不一樣的默認狀態,只要在Animator是視圖中,右鍵單擊這個新狀態,而後選擇在彈出菜單中選擇Set As Default。
下面的這個圖片顯示瞭如何手動設置CatSpawn爲默認狀態:
在Animator視圖可見的狀態下,播放你的場景。注意到一個藍色的進度條將會出如今CatSpwan的矩形狀態下。這個進度條告訴你在任一幀下,你的貓在狀態機下所處的狀態。
就像你看到的那樣,你的貓將持續的處於CatSpawn動畫狀態,中間沒有跳到任何下一狀態。
注意:若是你看不到這個藍色的進度條,確保你在Hierarchy面板中,cat依然處於選中狀態。
你須要提供給Animation Controller有關如何在狀態之間進行切換的規則,因此如今開始進入有關動畫之間過渡的內容吧!
若是狀態機不能改變狀態,那將會變得毫無疑義。這裏你能夠設置你的Animator Controller來平滑的將你的貓從spawn動畫過渡到定義爲CatWiggle的動畫。
在Animator窗口,右鍵CatSpawn而後選擇建立一個過渡。如今你能夠在Animator視圖移動你的鼠標指針,
它將經過一箇中間有箭頭的線與CatSpawn保持鏈接。單擊CatWiggle,將這兩個狀態經過一個過渡鏈接起來,如這個示意圖:
播放你的場景,你會看到這個貓彈出,而後開始搖擺。很是簡單是否是?
這固然很簡單,你可能已經對結果很滿意。可是,你有時候可能還想對這個過渡進行一些調整。例如,你可能發現這個過渡有一些奇怪,有一些意料以外的東西發生,因此如今開始瞭解如何對過渡進行編輯。
在建立了一個過渡的狀況下,最簡單的編輯方法就是在Animator視圖中直接單擊這個過渡的鏈接,如圖所示:
下面顯示在Inspector中這個過渡的屬性,如圖:
注意:你能夠在不一樣的狀態或者一樣的兩個狀態之間定義任意多的過渡。這是由於每個過渡均可以被綁定在不一樣的條件狀態上,這一點,一會咱們會詳細展開。
當你有多個過渡時,在Animator視圖下選中它們並不容易。所以,你能夠查看一個特定過渡的屬性,經過選擇與這個特定過渡的開始狀態,在Animator視圖中,在這裏是CatSpawn。在Inspector中,點擊合適的行,在Transitions列表中,來查看這個過渡有關的信息,如圖所示:
在這個Inspector,Unity提供了一個視覺呈現,它如何在兩個動畫片斷之間進行過渡。下面這幅圖片標出了在這個過渡編輯器中最重要的部分:
開始和結束標識:這些圖標代表了過渡的開始和結束點。它們看起來和>|和|<很像。
一段高亮的藍色區域清楚的代表了動畫片斷中和過渡的相關的部分。
一個指示器,標明瞭當前位置,當你在預覽面板預覽過渡效果時,在Inspector的底部(圖中沒有顯示)。
矩形塊展現了與過渡相關的動畫片斷。若是其中一個片斷循環了,它可能會出現不少次,若是須要覆蓋過渡期間。藍色高亮的區域示意了片斷的那一部分和到哪一種程度,這2個動畫在任意時間點會如何影響。
我不肯定這個是什麼意思。它看上去好像是是個圖形,顯示了動畫片斷是如何影響最終的彎曲值,可是我不肯定。無論如何,我通常忽略它,也沒有任何問題。
就像你在上一幅圖片所看到的,Unity保證它會開始兩個動畫片斷之間的過渡,一旦CatSpawn開始播放。在CatSpawn的動畫片斷期間,Unity逐漸調整各動畫片斷影響最終動畫的比率,從100%的CatSpawn和0%的CatWiggle,到100%的CatWiggle和0%的CatSpawn。
不幸的是,看上去Unity實際上在CatSpawn已經完整播放過一次後,才觸發了這個過渡,而後開始在第二次播放CatSpawn的時候啓動過渡過程。因此你能夠經過這個逐幀播放的動畫看得更加清楚:
看上去,在第一個動畫片斷的0%處開始過渡效果致使了這一問題。我不清楚這是一個設定得行爲,仍是一個Unity得Bug,可是這是一個開始仔細瞭解Transition Editor的好機會。
當選中Transition後,看看Inspector中的Conditions,顯示以下(你可能須要往下滑一點才能看到):
這個列表包含了觸發這個過渡的條件。默認狀況下,惟一可見的條件是Exit Time,也就是當特定比例的第一個動畫播放完後觸發。
注意:你不須要這樣作,可是你可使用Conditons底部的+按鈕來加入更多的條件。當多個條件出現時,Unity評估每個條件使用布爾And運算。也就是說只有多個條件同時符合時,過渡纔會觸發。
Exit Time的值當前被設置爲0.00,也就是在動畫片斷開始的時候。你能夠經過直接在這個字段編輯來調整這個值,或者你能夠在前面提到的開始標記處(>|),固然直接使用這個字段能夠可精準。
改變這個Exit Time到0.0.1,以下圖所示。Exit Time的值域是0到1,因此0.0.1指在播放1%的CatSpawn後開始進行過渡。
注意:你可使用一個大於1.0的Exit Time,而後Unity同樣能夠正確的進行處理。有時候你可能想這樣作,例如,若是你但願慢慢的過渡到一個屢次重複的循環動畫新的動畫片斷。
再次播放你的場景,能夠看到貓由出現,慢慢過渡到搖擺的動畫。
看一下這個過渡的慢速版原本看到更明顯。
當貓在附近跳來跳去的時候,這個殭屍必定很容易注意到。固然,在現實生活中,吸引到殭屍的注意一般致使變成殭屍,在這個遊戲中,也一樣如此。當殭屍碰到他們,這個貓會變成恐怖的殭屍貓。爲了表現這種變化,他們會變成綠色。
在Animation視圖下切換到CatZombify,而後加入一個曲線來編輯Sprite的渲染顏色。
解決方案提示:不知道如何添加Color曲線?顯示。
當你增長一個新曲線, Unity爲自動在0幀和60幀處增長關鍵幀。你能夠在其間進行移動,就像你如今所作的那樣,或者,你可使用處在Animation視圖中,控制條中的Frame字段,經過選擇在時間線中選擇關鍵幀,又或者經過拖拉這個定位器到特定的幀。固然,Animation視圖中的控制條一樣包括了兩個按鈕來前移或者厚誼關鍵幀,如圖所示:
單擊下一幀按鈕(>|)來移動到第60幀。將cat:Sprite Renderer.Color 曲線展開,將Color.r與Color.b的值改成0,如圖所示:
就像你能夠在場景或者遊戲視圖中看到的,或者在Inspecor的預覽面板中(若是你在Hierarchy中將cat選中),你的貓將會變成亮綠色。你能夠改變這個色值來讓貓變得更像一個殭屍的顏色,固然這對於一個殭屍來講,已經沒有什麼大的關係。
經過在Animation窗口按下Play按鈕來預覽這個動畫,啊噢,我猜這個小貓應該是生病了!
如今你須要這個貓從CatWiggle過渡到CatZombify狀態。在Hierarchy中選擇cat,而後切換到Animator視圖。
在CatWiggle上右擊,而後選擇建立過渡,而後選擇CatZombify。
播放你的場景,而後貓出現,搖擺了一會,變成綠色,而後中止移動。不過,當它徹底變綠後,它又忽然變回白色,而後又變成綠色,一直這樣子。
你之前應該看到過過相似的問題。嘗試本身解決這個問題,不過,若是你卡住了,能夠看看下面這個小提示來尋找答案。
解決方案:不肯定如何讓貓繼續保持綠色?顯示
如今當它變綠後,它停在綠色。完美(Purrfect)。懂了嗎?由於它很完美(Perfect),可是它是一隻貓,貓會打呼嚕,因此我這裏用了」Purr「而不是「per」。我不想吹噓,可是我很肯定,我剛纔發現了這個新詞,哈哈。
你已經把由CatWiggle到CatZombify得過渡設置好了,可是它在貓搖擺後就馬上開始了。在實際的遊戲中,你應該是但願這個貓在殭屍碰到它以前持續搖擺,而後你纔會讓它變綠。爲了實現這一點,你須要將CatWiggle保持循環直到某個特定的條件觸發了這一過渡。
Unity容許你在Animator控制器上添加多種用戶自定義的變量,被叫作參數。而後你能夠在那些觸發過渡發生的條件裏引用這些參數。
在Hierarchy中繼續保持Cat處於被選狀態,打開Animator視圖,在窗口的左邊點擊+按鈕,旁邊顯示Parameters,而後在彈出窗口選擇Bool,如圖所示:
這個參數或做爲一個標誌,是否這隻貓已經變爲殭屍,因此命名爲InConga。
你的Animator視圖的參數應該以下所示:
在Animator視圖,選擇你早前建立的在CatWiggle與CatZombify之間的過渡。
在Inspector中,點擊Conditions下面的下拉列表,而後你會看到有兩個選項,Exit Time和InConga。選擇InConga,以下所示:
確保InConga條件右邊的下拉列表處於true狀態,以下所示:
如今播放你的場景,而後你注意到這個貓出現,而後後開始搖擺,可是並無變成綠色。在Animator視圖中,你能夠看到這隻貓持續處於CatWiggle狀態:
當場景繼續播放,而且Animator和Game視圖依然可見的狀況下,單擊在Animator視圖左下角中InConga旁邊的單選框。一旦你完成這一點,你會發現動畫狀態會過渡到CatZombify,而後遊戲視圖中得貓會變綠,而後搖擺逐漸中止。
中止播放。在接下來的教程中,你會經過腳本實現,當殭屍碰到貓後,將InConga標記變爲True,但就目前爲止,你會繼續完成貓的動畫設置。
注意:在這個教程中,你使用bool值來觸發一個狀態改變,可是你一樣能夠增長其餘類型的參數,如float,int以及trigger類型。例如,你可能有一個float類型,名爲Speed的參數,而後設置Animator控制器,在Speed超過某個特定值後,切換動畫從走路切換到跑動動畫。
Trigger參數和Bool類型很像,除了當你設置一個Trigger時,當它觸發一個過渡後,這個Trigger會在過渡結束後自動重設它的值。
當前貓會出現、搖擺,而後變成一個殭屍貓。這些都是貓能夠作的東西,可是你依然須要它在像之前同樣搖擺而後離開。
讓貓移動起來的邏輯須要等到下一段的內容,聚焦在讓這個遊戲變爲一個可玩的遊戲。就目前爲止,你只是須要建立動畫剪輯,而後配置這些過渡。
首先,添加CatConga動畫片斷一個曲線用來調整這隻貓的Scale。這個縮放動畫會在開始和結束,都使用Scale值1,而後在在中點會是1.1.這個動畫持續0.5秒,而且重複。
如今開始,動畫。
解決方案:是否配置自動動畫讓你很緊張?顯示。
經過在Animation視圖中點擊Play預覽你的動畫。當你正確的播放這個縮放動畫,你會看到一個跳動的貓,如圖所示:
你必須經過你的想象來描繪它邊走邊如圖同樣變大變小。看上去就像它在處處亂晃,不是嗎?若是沒有,再想象一下。
如今建立一個CatZombify到CatConga的過渡動畫,嘗試本身作,可是若是你須要幫助的話,能夠看看下面的提示。
解決方案:忘了如何建立一個過渡?顯示。
如今播放場景。同時,單擊在Animator視圖中的InConga的狀態。當心,變成殭屍的貓,幾乎,當貓變綠後,這隻貓立刻回變白,就像某種不死人世界的惡魔貓!
這隻貓再次變白,由於CatConga動畫並無經過Sprite Renderer設置一個顏色,因此Unity會將顏色重設爲默認顏色。我不肯定這是一個Bug仍是一個正常現象,可是無論怎樣,這很容易修正。
在CatConga中添加一個Sprite Renderer的顏色曲線。你確定知道如何去作?
解決方案:真的不知道怎麼作?顯示
在Animation視圖中,在CatConga中,將幀定位器移動到第0幀,而後將Color.r和Color.b設置爲值0.而後點擊下一關鍵幀按鈕2次,移動到第30幀。記住,是那個在Animator視圖中控制條中像>|的按鈕。
你須要刪除這個關鍵幀。你能夠經過點擊cat旁邊的菱形按鈕:Sprite Rendere.Color在曲線列表中,而後選擇Delete Key,如圖所示:
注意:你剛點的這個按鈕會刪除全部四個顏色屬性變化的關鍵幀。若是你只是須要刪除某個特定變化的關鍵幀,例如Color.r,那麼你能夠經過點擊Color.r旁邊的菱形。
此外,你能夠直接在這個變化列表中單獨的變化項上直接右擊,或者,直接在時間線上某個關鍵幀上菱形的標記。
如今你應該在第一幀上只有一個關鍵幀。這會讓貓的顏色一開始就變成綠色。你的Animation視圖會變成以下:
再次播放你的場景,單擊Animator中的InConga單選項,而後看這隻貓變得不死,而後保持不死,就像什麼都沒有發生同樣。
這個殭屍遊戲的目標就是將必定數量的貓變成殭屍。當殭屍撞到一個老婦人(殭屍殺手),你會消除一些貓,而後將他們旋轉,而後逐漸變小消失,如圖所示:
這裏將是你爲這個遊戲配置的最後一個動畫,因此如今開始吧!
首先嚐試以下配置這個CatDisappear動畫片斷:
持續2秒
旋轉4次,也就是1440度!
X和Y縮放值會從1變爲0。
貓應該繼續保持綠色。
不循環。
建立一個從CatConga到CatDisappear的過渡,而且在InConga值爲false時觸發。
若是你在任何地方卡住了,能夠參考以下。
解決方案:須要任何幫助?顯示。
如今,測試這個貓的全部動畫。播放場景,而後看着貓出現,而後開始搖擺,而後點擊位於Animator視圖中的InConga單選項,讓貓變綠,而後開始跳動。最終,再次點擊InConga單選項去除勾選,讓貓開始旋轉,縮小而後消失。以下,小貓的悲壯而美麗的一輩子:
等等,不是說沒有了嗎?在遊戲視圖中雖然,貓消失了,可是在Hierarchy中,你依然看到cat的身影。
你應該不但願殭屍貓在依然在場景中,即便他們已經消失。那會讓他們變成殭屍殭屍貓。固然,你也不但願移除一個尚未完成徹底播放完的貓。因此Unity支持Animation事件的好處要體現了。
將遊戲邏輯和動畫串起來可能很麻煩。幸運的是,Unity提供了咱們一些內建的事件系統,綁定在動畫片斷上。
動畫片斷能夠經過調用於動畫相關聯的GameObject上的腳原本觸發一些事件。例如,你能夠經過添加一個腳本在cat上,而後在動畫片斷中調用相應的方法。
在Hierarchy中選擇cat,而後增長一個C#腳本,命名爲CatController。這個應該和第一部分的內容很像,你能夠參考如下提示來回顧如下。
解決方案:不記得如何添加腳本,顯示.
打開CatController.cs在MonoDevelop。若是你不肯定如何作,只要雙擊CatController在Project瀏覽器中。
在MonoDevelop,中移除兩個空方法,在CatControler.cs,Start和Update。
而後增長如下代碼到CatController.cs:
void GrantCatTheSweetReleaseOfDeath(){DestroyObject( gameObject );}
你即將配置CatDisappear來調用這個方法,當動畫片斷結束的時候。如同它的名字所暗示的,這個方法會銷燬這個腳本的GameObject來釋放這個殭屍貓,當殭屍貓消失而且死去的時候。Florida?
注意:當心,Florida。
保存這個文件(File\Save),而後回到Unity。
在Hierarchy中選擇Cat,而後在Animation視圖中,從下拉列表中的動畫片斷選擇CatDisappear,
移動定位器到第120幀,而後在動畫視圖的控制面板中,單擊Add Event按鈕,如圖所示:
這個會彈出一個對話框,而後讓你從下拉列表中選擇一個函數。如你所看到的,默認值是沒有函數被選擇,若是你就這樣退出,那麼這個事件將不會產生任何效果。
這個列表會列出你在GameObject中附加的任何腳本中全部的方法。也就是說,他不會列出繼承自MonoBehaviour,例如Start和Update。
在這種狀況下,你剛增長了GrantCatTheSweetReleaseofDeath(),因此在下拉列表中選擇它,而後關閉這個對話框。
這個時間線將會包含一個你所建立的事件的標記,如圖所示:
浮動光標到這個事件上,將會顯示一個提示顯示相關的調用方法,如圖所示:
右擊這個事件,會彈出一個對話框,然你編輯或者刪除這個事件,就像增長一個新事件同樣。
注意:你能夠爲動畫事件定義方法,接受0個或者1個參數。若是這個方法有一個參數,那麼這個對話框會顯示一個字段讓你指定特定的值到這個函數。
例如,下面這張圖片顯示了一個能夠接受**型參數的函數:
你的事件能夠有如下幾種類型:float,String,int或者一個對象引用或者一個AnimationEvent對象。
一個AnimationEvent能夠用來包含其餘類型的內容。下面這個圖片顯示了當編輯一個包含方法有參數爲AnmationEvent事件的對話框:
播放你的場景,而後,單擊InConga勾選框,在Animator視圖中來讓貓變成殭屍,而後再次單擊InConga單選框去除勾選,而後殭屍消失。
更重要的是,注意到cat在Hierarchy中也消失了,如圖所示:
在一個真實的遊戲中,你會但願回收你的貓對象而不是持續的建立和銷燬。可是對於咱們的殭屍遊戲以機構足夠了。除此以外,是否你真的但願生活在一個回收貓的世界。
這個教程並不會涉及到任何在Unity有關動畫的內容。Unity的都規劃系統,叫作Mecanim,是很是精細,是用來做爲複雜的3的動畫。此外,就像你看到的,它也能夠用來做爲2D動畫的實現。
這個部分,包含了一些小的筆記,不會在其餘地方提到,可是也許會對於你建立本身的動畫有些幫助。
除了你在Animator視圖中用到的狀態,你可能注意到有一個叫作Any State的矩形,如圖所示:
這個其實並不是一個狀態,他是一個特殊用來建立個能夠隨時隨地發生的過渡。
例如,假定你在寫一個遊戲,在這個遊戲中,玩家老是能夠有一個能力,可使用一個武器,無論當前玩家處於什麼動畫狀態,均可以嘗試開火,而後調用他的開火動畫FireWeapon。
不用建立一個從全部狀態過渡到FireWeapon的狀態,你能夠只須要建立一個從Any State到FireWeapon的過渡。
而後,當這個過渡的條件知足後-在這種假設的狀況下。可能當FirePressed Bool類型參數爲True-而後當這個過渡被觸發,無論當前Animator控制器在所在何種狀態,這個過渡都會被執行。
除了動畫片斷以外,Animator控制器中的狀態能夠是一個子狀態機。子狀態機可讓複雜的狀態機更加結構簡化。也就是經過將某一分支的狀態包含在一個單一的狀態節點內。
例如,想像一組動畫片斷,組成一次***,例如瞄準和開火。不用將他們所有呈如今Animator控制器中,你能夠將他們包含在一個子狀態機中。接下來的圖片顯示了一個假定的殭屍的Animator控制器,,它能夠從走動變爲***狀態:
而後接下來這幅圖片顯示了一個能夠定義爲一個***的狀態機:
你像使用普通狀態那樣鏈接或者鏈接到子狀態機,除了每次會彈出一個須要你指定特定狀態的對話框。
須要瞭解更多有關子狀態機的內容,能夠閱讀這篇Unity的官方文檔。
Blend Trees是一種特殊的狀態,你能夠添加到Animator控制器。他們一般將多個動畫融合在一塊來創造一種新的動畫。例如,你可能須要一個走路和跑動的動畫,你能夠經過使用Blend Tree來建立一個新的動畫,基於速度。
Blend Trees是很是複雜,須要專門的教程來學習。爲了讓你有一個理解,Unity的2D Character 控制器課程包含了不少使用Blend Tree來選擇合適的Sprite用來做爲2D任務,基於這我的物特性的速度。
你能夠了解有關Blend Tree的更多內容在這裏。
在Animator視圖的左上角,有一個部分命名爲Layers,如圖所示:
你可使用Layers來實現3D人物中的複雜動畫。例如,你能夠有一個層用來控制一個3D人物的腳來實現走動動畫,經過另一個層來實現這我的物的設計動畫,而後經過某種規則來混合這種動畫。
我不知道,你是否能夠經過使用Layers來實現2D角色,可是你可能但願瞭解更多,能夠查看更多相關的文檔。若是你知道如何將他們用在2D遊戲中,能夠留言,謝謝!
接下來是涉及到腳本最多的內容,你會學到的如何經過腳本獲取到你在Animator視圖中設置的參數。
而後,我不肯定有些讀者是否願意等待數星期來等待這個教程出現。我不會在這裏解釋更多,可是若是你不能等,這裏是一些相關的腳本,讓你能夠訪問InConga屬性,經過腳本:
// Get the Animator component from your gameObjectAnimator anim = GetComponent<Animator>();// Sets the valueanim.SetBool("InConga", true);// Gets the valuebool isInConga = anim.GetBool("InConga");
最好的方式是緩存Animator的組件在一個類成員變量中,而不是每次都去讀取它。此外,若是速度很關鍵,可使用Animator.StringToHash來生成一個int,從string類型的」InConga「,而後使用這個方法系列中接受int的版本。
這個教程覆蓋了大部分你如何建立2D動畫在Unity中的內容,你能夠在這裏找到完整的項目文件。
你會在下一部分的教程總涉及到更多的與Script有關的內容,還有兩期內容,Unity 4.3 2D教程:Physics和Screen Sizes。就像他的名字所示,他會介紹Unity的新2D引擎和與屏幕尺寸無關的定位技巧。
瞭解更多有關如何建立動畫的內容,能夠看一下下面的內容:
檢查Unity的Animation Tutorial視頻。
Unity的2D角色控制器學習課程,除了Blend Tree範例,以前提到的,這個課程還會複習animation Sprites當它示範如何建立一個2D角色控制器。
Unity有關Animation部分文檔
Unity多種動畫組件的參考內容。
若是你以爲這份教程不錯,請讓咱們知道,歡迎留言或者在評論區提問。
泰然網指定官方QQ羣:222952691 (加羣前請關注微信公衆號,不然不予經過) 《Unity 4.3 2D 教程:動畫控制器》若爲泰然網原創(翻譯),禁止用於一切商業行爲,轉載請註明出處並通知泰然網!