博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NGUI Clip Animation (UI动画)
阅读量:5908 次
发布时间:2019-06-19

本文共 2300 字,大约阅读时间需要 7 分钟。

效果预览

视频:

运行环境

Unity 4.5, NGUI3.5, iTween

场景搭建

创建一个UIPanel,UIPanel下再创建一个UISprite,UIPanel选择SoftClip,然后给Panel绑定上PanelController.cs,拷贝4份。结构如下图

 

MaskManager

给UIRoot绑定PanelController.cs,Targets绑定上面创建的四个Panel,点击Play ,按数字键 0,1,2,3,4 切换效果

MaskManager代码

using UnityEngine;using System.Collections;using System.Collections.Generic;public class MaskManager : MonoBehaviour {    public GameObject[] Targets;    private List
clipList; private float sw = 1024f; private float sh = 576f; // Use this for initialization void Start () { clipList = new List
(); foreach(var target in Targets) { clipList.Add(target.AddComponent
()); } Init(); } // Update is called once per frame void Update () { if(Input.GetKeyDown(KeyCode.Alpha1)) { ShowFullImage(0); } else if(Input.GetKeyDown(KeyCode.Alpha2)) { ShowFullImage(1); } else if(Input.GetKeyDown(KeyCode.Alpha3)) { ShowFullImage(2); } else if(Input.GetKeyDown(KeyCode.Alpha4)) { ShowFullImage(3); } else if(Input.GetKeyDown(KeyCode.Alpha0)) { Init(); } } void Init() { for(int i=0; i
using UnityEngine;using System.Collections;public class PanelController : MonoBehaviour {    private UIPanel panel;    static private float animTime = 0.6f;    void Awake() {        panel = GetComponent
(); } // Use this for initialization void Start () { } // Update is called once per frame void Update () { } public void SetDepth(int depth) { panel.depth = depth; } public void UpdateSize(Vector2 size) { var current = new Vector2(panel.baseClipRegion.z, panel.baseClipRegion.w); iTween.ValueTo(gameObject, iTween.Hash("from", current, "to", size, "time", animTime, "onupdate", "OnUpdateSize")); } public void UpdateOffset(Vector2 offset) { iTween.ValueTo(gameObject, iTween.Hash("from", panel.clipOffset, "to", offset, "time", animTime, "onupdate", "OnUpdateOffset")); } private void OnUpdateSize(Vector2 size) { panel.baseClipRegion = new Vector4(0f, 0f, size.x, size.y); } private void OnUpdateOffset(Vector2 offset) { panel.clipOffset = offset; }}

转载地址:http://olppx.baihongyu.com/

你可能感兴趣的文章
20171011
查看>>
soap 的应用
查看>>
APP的广告模式
查看>>
STM32F4相关
查看>>
margin:0 auto 与 text-align:center 的区别(转载)
查看>>
判断一个字符是否为数字的两种方法(C/C++)
查看>>
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleExcept问题解决方案
查看>>
600. Non-negative Integers without Consecutive Ones
查看>>
关于正则表达式的入门心得
查看>>
axios 拦截 , 页面跳转, token 验证(自己摸索了一天搞出来的)
查看>>
链接自动化测试工具xenu
查看>>
三星i917官方wp7.8刷机、越狱、防锁全过程
查看>>
区块链初始化与实现POW工作量证明
查看>>
对《微营销》与《大数据营销》的读后思考
查看>>
Python从菜鸟到高手(13):分片(Slicing)
查看>>
tinymce entities 配置
查看>>
编码导致 html和aspx 样式差异,变形
查看>>
报表统计(八) 访问数据库 Position
查看>>
C++的Json解析库:jsoncpp和boost .
查看>>
vs里怎么看当前项目.net版本?
查看>>