有几个基本观念
一个本体,可能是一个UI,一个图片,2D物件或3D物件
3D 会再有更多骨架控制的技术
2D 其实也可以做到骨架控制或更多效果
unity 有一个很强大的package : Anima2D 可以做的很多2D的骨骼和面的控制
往后的文章再介绍
有几个基本要素
sprite
Animator
Animation
4.监听事件(UIEventListener)
sprite
2D动画靠着就是许多张图片串连形成动画效果
unity 的 sprite 是佔很重要的一个东西,动画就是其一
如果想找现成可用的sprite
以下这个网址资源很丰富
https://opengameart.org/content/2d-complete-characters
下载自己喜欢的动画后
有些是一整张图片,要去裁切,有些则已经裁切好了
这里讲的是已裁好的,所以会有多张小图
如:
每张小张都要改变属性,texture type >2d and ui,
sprite mode > single 这都是sprite 基本观念
2. Animator
在要控制的物件上,选取,
界面上 windows > animation 开啓功能视窗
第一次还没现任何动画
所以要create 一个新的动画
新的动画里目前影格也是空的
在把刚才的小图片,照你想要的动画效果拉进影格内
如果要产生多组动画,供之后可以动态切换不同的动作,就再新增
刚才新增的多组动画,其实就是多个 animation
开啓 windows> Animator
里面就会看到多组动画

最后介绍如果在程式里动态切换不同的动画
也不难
建立一个脚本,挂在要执行动画的物件本体上
脚本:
private Animator animator;
……….
public void workaa1(){
animator = GetComponent();
animator.Play ("boy5");
//切换动画
}
4.监听事件(UIEventListener)
当製作好相关动画,无论是按钮触发或是按钮本身的动画,都是还是要有个触发的点
如果是NGUI,元件上大多是加上box collider(碰撞器),才能做触发动画的动作
如果是UIButton元件,只要添加脚本在UI本体上,可直接触发事件 ,如 onClick,onHover
如果要另外自己撰写 ,则要利用 UIEventListener 这个底层来做
接着前面介绍的 animator,animation, 如果一个button,想滑鼠移动到上面时,触发动画,移开时,动画停止的话
...
UIEventListener.Get(gameObject).onHover += OnHover2 ;
.....
void OnHover2(GameObject button,bool isOver)
{
Debug.Log(gameObject.name + " : Press : " + isOver);
animator = GetComponent();
if (isOver) {
animator.Play ("ac1_2"); //触发 ac1_2 animation
} else {
animator.Play ("ac1_0"); //触发 ac1_0 animation
}
}
特别注意,这个範例是脚本直脚挂在button上,所以 function 名称用 OnHover2 ,不能用OnHover ,否则就和会冲突了
以上