unity3d 扩展NGUI Tweener —— TweenFillAmount
2015-09-10 19:32
531 查看
好久没写博客了,上一篇是在今年上班之前写的
从年初到现在一篇没写过,每天都在加班,实在太忙了
上班半年多了,学到不少东西
今天分享一下刚写的小功能 TweenFillAmount
用过NGUI Twnner的人看到这个名字就应该知道干啥的了
tweenPosition、tweenRotation、TweenScale、tweenColor.....
就是没有 tweenFillAmount
因为正好要做一个类似血条过渡动画的东西,所以就扩展了一下
时间不多,写得不到位的地方脑补一下
首先我们新建一个UISprite
type:filled
然后我们拖动fill amount,就会看见图片被裁剪了
我们想实现一个功能,让他从某个值,逐渐变成另外一个值
这个其实自己实现起来也很简单,不过为了统一,做一个通用的东西,总比每次都写一次好
我们找一个tweenColor来看看他怎么实现的,代码挺少的,还有注释,我就不解释了,七点半又要上班了- -
代码看完了,在看看UISprite和UITexture的代码
哦了,直接看代码吧,直奔主题
ok,挂到UISprite上测试一下
怎么样,是不是很方便?还支持调节曲线的
以后妈妈再也不用担心我做过渡动画了
东西不是很难,实用就好,哈哈
以后会多抽点时间写写博客,欢迎大家交流
本文链接:http://www.cnblogs.com/shenggege/p/4798923.html
从年初到现在一篇没写过,每天都在加班,实在太忙了
上班半年多了,学到不少东西
今天分享一下刚写的小功能 TweenFillAmount
用过NGUI Twnner的人看到这个名字就应该知道干啥的了
tweenPosition、tweenRotation、TweenScale、tweenColor.....
就是没有 tweenFillAmount
因为正好要做一个类似血条过渡动画的东西,所以就扩展了一下
时间不多,写得不到位的地方脑补一下
首先我们新建一个UISprite
type:filled
然后我们拖动fill amount,就会看见图片被裁剪了
我们想实现一个功能,让他从某个值,逐渐变成另外一个值
这个其实自己实现起来也很简单,不过为了统一,做一个通用的东西,总比每次都写一次好
我们找一个tweenColor来看看他怎么实现的,代码挺少的,还有注释,我就不解释了,七点半又要上班了- -
代码看完了,在看看UISprite和UITexture的代码
哦了,直接看代码吧,直奔主题
#region HeadComments /* ======================================================================== * Copyright (C) 2015 Arthun * * 作 者:Arthun * 文件名称:TweenFillAmount * 功 能:移动填充量 * 创建时间:2015/09/10 10:58:12 * 版 本:v1.0.0 * * [修改日志] * 修改者: 时间: 修改内容: * * ========================================================================= */ #endregion using UnityEngine; [RequireComponent(typeof(UIBasicSprite))] [AddComponentMenu("NGUI/Tween/Tween Fill Amount")] public class TweenFillAmount : UITweener { [Range(0f, 1f)] public float from = 1f; [Range(0f, 1f)] public float to = 1f; private bool mCached = false; private UIBasicSprite mBasic; private void Cache() { mCached = true; mBasic = GetComponent<UIBasicSprite>(); } public float value { get { if (!mCached) Cache(); return mBasic != null ? mBasic.fillAmount : 1f; } set { if (!mCached) Cache(); if (mBasic != null) mBasic.fillAmount = value; } } protected override void OnUpdate(float factor, bool isFinished) { value = Mathf.Lerp(from, to, factor); } public override void SetStartToCurrentValue() { from = value; } public override void SetEndToCurrentValue() { to = value; } }
ok,挂到UISprite上测试一下
怎么样,是不是很方便?还支持调节曲线的
以后妈妈再也不用担心我做过渡动画了
东西不是很难,实用就好,哈哈
以后会多抽点时间写写博客,欢迎大家交流
本文链接:http://www.cnblogs.com/shenggege/p/4798923.html
相关文章推荐
- Unity——MVC(很不错的解释应用)
- unity3d+sharesdk【ios篇】
- Unity3D占用内存太大的解决方法
- Unity3D开发之IOS的内扣费IAP开发
- unity 引用 移动mm 支付sdk
- Unity 游戏开发技巧集锦之创建自发光材质
- [Unity3D]Unity3D游戏开发Android内嵌视图Unity查看
- Microsoft实现的IOC DI之 Unity 、Service Locator、MEF
- 在Unity3D中动态创建对象和创建Prefab原型对象的三种方式
- unity3D中使用协程来做“多次调用一次更新”特性的一个大坑
- Unity3D显示中文的各种方案的比较
- 【Unity游戏开发之八】Unity利用语法糖添加自定义拓展方法(下)
- 【Unity游戏开发之七】Unity利用语法糖添加自定义拓展方法(上)
- Unity平滑相机跟随
- unity实例化预设
- Unity延迟执行一段代码的较为优雅的方式
- Unity-Shader Sublime 自制shader提示插件
- 【unity插件】Tiled2Unity-非常方便的将Tiled导入到unity3d
- 孙陪你,了解它的力量——unity3d流程暂停
- unity3d热更新插件uLua学习整理