作者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/cn.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