作者gyd (阿龍哥)
看板GameDesign
標題Re: [請益] UNITY裡無法使用animation.Play?
時間Mon Jan 2 02:35:41 2017
※ 引述《evolution907 (Davis)》之銘言:
: 如題 小弟新手嘗試做遊戲 不知道發生什麼事情
: 想要播放動畫時寫script 參考網路上的animation.Play寫法
: 卻出現下面畫面:
: http://i.imgur.com/l9osgXX.jpg
: 我查了好久 都沒找到解決方法...
: 就算連引用也一起抄 仍然是一樣的結果
: 用類似的function也是一樣的結果
: 請問我到底是哪裡出錯了 我已經卡了好幾天了...
: 因為是自學的也沒老師問Orz
: 拜託各位大大能幫我解惑......
: 對了 我是用C#寫的 希望能從這方面著手幫我 謝謝了...
忘了是那一版開始(好像是4.X)
MonoBehavour已經不再預設提供這一個property
所以現在的使用方法是
1. 在inspector拉
2. 在code動態取得: Animation anim = gameObject.GetComponent<Animation>();
補充:
目前有提供的property剩下gameObject跟transform兩個
另外就是, 據稱這兩個property在後來的變動已經不像舊版本會有效能上的問題
不需要另外再說cache(據稱)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.133.252
※ 文章網址: https://webptt.com/m.aspx?n=bbs/GameDesign/M.1483295743.A.D75.html
1F:推 evolution907: 感謝 01/02 09:30
2F:→ evolution907: 所以我現在用c#的話 01/02 09:30
3F:→ evolution907: 就是在start那邊打上 01/02 09:30
4F:→ evolution907: Animation anim = gameObject.GetComponent<Animati 01/02 09:30
5F:→ evolution907: on>(); 01/02 09:30
6F:→ evolution907: 這一行之後就可以直接使用animation.Play()了嗎? 01/02 09:30
7F:推 evolution907: 試了之後變成這樣 01/02 12:16
9F:→ evolution907: 查了一下 好像是要先new物件才能用 01/02 12:18
10F:→ evolution907: 可是我不知道怎寫 是要打在update裡嗎? 01/02 12:18
11F:→ evolution907: 但是要如何寫呢?我不太了解物件概念... 01/02 12:20
12F:→ evolution907: 抱歉問題有點多 沒什麼基礎... 01/02 12:20
1. 你在Start這個scope裡做assign, 只能在這個scope使用animation
2. 你圖片中的狀況是 Animation.Play(), 你應該要使用anim.Play
3. 承上兩點, Animation anim應宣告於Class之下
public class CONTROL : Monobehavour
{
public Animation anim = null;
/*
* 其他code
*/
}
13F:推 wix3000: 超可愛的 XDD 01/02 12:56
14F:推 wix3000: 你的問題可以很簡單解決,但基本概念沒有搞懂的話之後一 01/02 12:59
15F:→ wix3000: 定還是會碰到問題,看龍哥有沒有興趣講點基本概念 01/02 12:59
16F:推 evolution907: 可以的話希望能講解答和觀念 01/02 13:19
17F:→ evolution907: 不過網路上好像有類似的觀念 雖然不是unity的 01/02 13:19
18F:→ evolution907: 所以如果不能就先解答就好我再自己摸索也可以 01/02 13:19
19F:→ evolution907: 因為我打算今天要把這事結束 拖太久了QQ 01/02 13:19
20F:→ evolution907: 到底是還缺什麼呀Orz… 01/02 13:19
21F:推 wix3000: 召喚龍哥 ~~~/-_-)/ ~:+: 01/02 13:42
22F:→ delta90: 先幫原原PO解現況 01/02 13:55
23F:→ delta90: anim.Play(); 01/02 13:55
24F:→ delta90: 不是Animation.Play(); 01/02 13:55
25F:推 wix3000: Animation anim = ... 這行也要搬到class下面 01/02 14:06
26F:推 evolution907: 可以了 感謝大大 之前看宣告是打在START 01/02 14:16
27F:→ evolution907: 以為都是這樣比較好 結果讀不到@@ 01/02 14:17
28F:→ evolution907: 那我就自己研究物件導向好了 沒觀念做起來好累囧 01/02 14:18
29F:→ evolution907: 阿不過 如果是照我打的CODE 他的動作會播放不完全囧 01/02 14:27
30F:→ evolution907: 解決了 但是按著W不放無法重複撥放動畫 01/02 14:37
31F:→ evolution907: 動畫那邊有設定成LOOP 請問是正常的嗎? 01/02 14:38
32F:→ evolution907: 阿這我也解決了XDDDDD目前應該是沒什麼問題了 01/02 14:39
33F:→ evolution907: 真的非常謝謝各位大大 我本來想說不會有人回我的XD 01/02 14:40
34F:推 evolution907: 阿不好意思可以再問一個問題嗎? 01/02 20:29
35F:→ evolution907: 請問有辦法連續播放兩個指定動畫嗎? 01/02 20:29
36F:→ evolution907: 不是同時也不是接上一個 而是單純連續播放兩個 01/02 20:30
37F:→ evolution907: 因為我發現連續打兩次anim.Play動畫會卡住... 01/02 20:31
可以
※ 編輯: gyd (59.127.133.252), 01/03/2017 00:35:01