【小松教你手游开发】【unity实用技能】给每个GameObject的打开关闭加上一个渐变...

在游戏开发中,经常会因为直接将GameObject,setActive的方式打开关闭,这种方式效果太过生硬而给它加上一个Tween

可能是AlphaTween或者ScaleTween。

再加上一个PlayTween来做控制。

这样子需要在每个GameObject上加上这几个Component不说,还很不好用

所以结合之前用的一个拓展函数的方法,想到一个非常非常方便的方法

(之前的拓展函数文章:http://blog.csdn.net/chrisfxs/article/details/51221892)


using UnityEngine;  
using System.Collections;  namespace ExtensionMethods  
{  public static class MyExtensions  {  public static void SetActiveWithAlphaTween(this GameObject gameObject,bool active){UITweenControl<TweenAlpha> tween = new UITweenControl<TweenAlpha>();UIWidget widget = gameObject.GetCompoent<UIWidget>();if(widget == null)widget = gameObject.AddCompoent<UIWidget>();if(active){gameObject.SetActive(true);widget.alpha =0;tween.Begin(gameObject,widget.alpha,1,0.3f,0);}else{widget.alpha =1;tween.Begin(gameObject,widget.alpha,0,0.3f,0);tween.SetFinishCallBack(delegate(){tween.RemoveEventDelegate();gameObjec.SetActive(false);},true);}}}  
}  

其中上面UITweenControl是自己封装的控制UITween的类,这个你们也可以自己封装一个,也可以就用NGUI自带的,具体需要自己去修改,不过思路就是上面那样了,不会有什么太难的地方。

就是在打开或关闭GameObject的时候判断是否有Tween和Widget,没有就加上,并使用Tween控制器来控制渐变开关

这样子只用在类前面加上命名空间
using ExtensionMethods;
然后你的GameObject就可以直接使用了!

GameObject go;  
go.SetActiveWithAlphaTween(true);  

机智如我

转载于:https://blog.51cto.com/13638120/2084963

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452429.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

静态网页和动态网页

静态网页是指不应用程序而直接或间接制作成html的网页&#xff0c;这种网页的内容是固定的&#xff0c;修改和更新都必须要通过专用的网页制作工具&#xff0c;比如Dreamweaver。动态网页是指使用网页脚本语言&#xff0c;比如php、asp、asp.net等&#xff0c;通过脚本将网站内…

在微型计算机中 如果电源突然中断,微型计算机在工作中电源突然中断,则其中的信息全部丢失,再次通电后也不能恢复的..._考试资料网...

请根据下面的文字材料&#xff0c;完成一节课的教学设计。 丝绸之路 一座古朴典雅的“丝绸之路”巨型石雕&#xff0c;矗立在西安市玉祥门外。那驮着彩绸的一峰峰骆驼&#xff0c;高鼻凹眼的西域商人&#xff0c;精神饱满&#xff0c;栩栩如生。商人们在这个东方大都市开了眼界…

Vmware上安装RedHat Linux 7.3操作系统手册

文章目录1&#xff0e;点击“创建新的虚拟机”&#xff0c;勾选“自定义”选项&#xff0c;点击一步&#xff1b;2&#xff0e;默认选择最高版本的workstations&#xff0c;点击下一步&#xff1b;3&#xff0e;选择“稍后安装操作系统”&#xff0c;点击下一步&#xff1b;4&a…

软件开发的“三重门”

自从上次写了“程序员技术练级攻略” 以来&#xff0c;就觉得似乎还有很多东西没有谈到&#xff0c;但当时没有继续思考了。而春节前有人问我&#xff0c;是做底层技术&#xff0c;还是做业务。这问题让我思考了很多&#xff0c;不由自主地回顾了一 下我这十多年的软件开发经历…

软件工程15 个人阅读作业1

Task1&#xff1a;注册个人博客账号 个人博客地址 https://www.cnblogs.com/bmr666/ Task2&#xff1a;注册码云账号 码云账号 https://gitee.com/bmr666 Task3&#xff1a;完成博客-阅读与思考 阅读参考材料&#xff0c;并回答下面几个问题&#xff1a; &#xff08;1&#xf…

Windows Server 2008操作系统安装手册

文章目录1&#xff0e;输入语言和其他首选项&#xff0c;然后单击“下一步”继续&#xff1b;2&#xff0e;点击“现在安装”&#xff0c;启动安装程序&#xff1b;3&#xff0e;选择要安装的操作系统&#xff0c;这里选择Windows Server 2008 R2 Enterprise&#xff08;完全安…

云计算机有哪些特征,你知道云计算有哪些核心特征吗?

你知道云计算有哪些核心特征吗?下面跟小编一起来了解下吧!!!1、敏捷&#xff1a;使用户得以快速的&#xff0c;且以低价格的获得技术架构资源。2、应用程序界面API的可达性是指允许软件与云以类似“人机交互这种用户界面设施交互相所相一致的方式”来交互。云计算系统典型的运…

从玩扑克到软件开发

我以前不是做软件开发的。在加入ThoughtWorks两年之前&#xff0c;我主要靠玩扑克为生。当然&#xff0c;如果你曾跟我打听过我前臂上的纹身&#xff0c;那你肯定已然听过我的故事了。要是还没有&#xff0c;等下次我们一起喝一杯时&#xff0c;我可以讲给你听。 我从未因为花…

什么是IPsec协议

IPSec 协议不是一个单独的协议&#xff0c;它给出了应用于IP层上网络数据安全的一整套体系结构&#xff0c;包括网络认证协议 Authentication Header&#xff08;AH&#xff09;、封装安全载荷协议Encapsulating Security Payload&#xff08;ESP&#xff09;、密钥管理协议Int…

python 字符串、列表和元祖之间的切换

>>> s[http,://,www,baidu,.com] >>> url.join(s) >>> url http://wwwbaidu.com >>> 上面的代码片段是将列表转换成字符串>>> s(hello,world,!) >>> d .join(s) >>> d hello world ! >>> 以上代码片段…

你真的懂函数吗?

函数声明方式 匿名函数 function后面直接跟括号&#xff0c;中间没有函数名的就是匿名函数。 let fn function() {console.log(我是fn) } let fn2 fn console.log(fn.name) //fn console.log(fn2.name)//fn&#xff0c;fn和fn2指向的是同一个function。 复制代码具名函数 fun…

静态html的ajax如何发请求,静态页面ajax - 冥焱的个人空间 - OSCHINA - 中文开源技术交流社区...

1.静态页面$.ajax({type:"get",url:"http://localhost:8080/app/register/sendSMS",//请求地址必须带http协议data:{"phone":phone},async:false,//是否异步dataType: "jsonp",//固定格式jsonp: "callback",//固定格式jsonp…

Diango博客--12.开发 Django 博客文章阅读量统计功能

文章目录0.models中增加新字段1.models中增加方法2.迁移数据库3.修改视图函数4.在模板中显示阅读量0.models中增加新字段 为了记录文章的浏览量&#xff0c;需要在文章的数据库表中新增一个用于存储阅读量的字段。 文件位置&#xff1a;blog/models.py class Post(models.Mo…

c++ try_catch throw

使用throw抛出异常 本人节选自《21天学通C》一书 抛出异常&#xff08;也称为抛弃异常&#xff09;即检测是否产生异常&#xff0c;在C中&#xff0c;其采用throw语句来实现&#xff0c;如果检测到产生异常&#xff0c;则抛出异常。该语句的格式为&#xff1a; throw 表达式…

数字证书和数字签名

什么是数字证书&#xff1f;由于Internet网电子商务系统技术使在网上购物的顾客能够极其方便轻松地获得商家和企业的信息,但同时也增加了对某些敏感或有价值的数据被滥用的风险. 为了保证互联网上电子交易及支付的安全性,保密性等&#xff0c;防范交易及支付过程中的欺诈行为&a…

域名劫持

转载于:https://www.cnblogs.com/xinghen1216/p/8548323.html

cesium html源码,Cesium源码的本地运行及调试

CesiumJS源码运行有两种方式&#xff1a;基于node.js运行官方下载地址&#xff1a;https://cesium.com/cesiumjs/下载解压后&#xff0c;在根目录安装依赖后&#xff0c;就可直接运行npm initnpm start如果调试代码呢&#xff0c;官方的示例都是在Sandcastle里放着&#xff0c;…

Diango博客--13.将“视图函数”类转化为“类视图”

文章目录0.思路引导1.ListView2.将 index 视图函数改写为类视图3.将 category 视图函数改写为类视图4.将 archive 视图函数改写成类视图5.将 tag 视图函数改写成类视图6.DetailView7.将DetailView视图函数改写成类视图0.思路引导 1&#xff09;在开发网站的过程中&#xff0c;…

es6之数据结构 set,WeakSet,mapWeakMap

{let list new Set();list.add(1);list.add(2);list.add(1);console.log(list); //Set(2) {1, 2} let arr[1,2,3,1,2] let list2new Set(arr); console.log(list2); //Set(3) {1, 2, 3} } Set ES6 提供了新的数据结构 Set。它类似于数组&#xff0c;但是成员的值都是唯一的&a…

关于C语言中继承和多态的实现

以下的内容综合了多篇文章&#xff0c;加上一点自己的理解而成。目的为了给自己阅读他们文章后做一个笔记。在末尾给出了这些文章的地址。 多态的实现可以采用以下几种方式&#xff1a; (1)使用 vod * (万能指针)来实现“编译时多态”。 (2)使用函数指针来实现“运行时…