Unity 动画控制基本观念和脚本

有几个基本观念

一个本体,可能是一个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
下载自己喜欢的动画后
有些是一整张图片,要去裁切,有些则已经裁切好了
这里讲的是已裁好的,所以会有多张小图
如:
http://img2.58codes.com/2024/20123781dVynonl2KA.png

每张小张都要改变属性,texture type >2d and ui,
sprite mode > single   这都是sprite 基本观念
http://img2.58codes.com/2024/201237812apv7X3b7D.png
2. Animator

在要控制的物件上,选取,
界面上  windows > animation 开啓功能视窗
http://img2.58codes.com/2024/20123781Pl4YoXplG4.png
第一次还没现任何动画
所以要create 一个新的动画

新的动画里目前影格也是空的
在把刚才的小图片,照你想要的动画效果拉进影格内

如果要产生多组动画,供之后可以动态切换不同的动作,就再新增
http://img2.58codes.com/2024/20123781XF8BJZzEZB.png

Animation
刚才新增的多组动画,其实就是多个 animation
开啓 windows> Animator
里面就会看到多组动画
http://img2.58codes.com/2024/20123781n2EZHmlSgj.png
最后介绍如果在程式里动态切换不同的动画
也不难
建立一个脚本,挂在要执行动画的物件本体上
脚本:
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  ,否则就和会冲突了

以上


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章