【小松教你手游開發】【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.pswp.cn/news/452429.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452429.shtml
英文地址,請注明出處:http://en.pswp.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)使用函數指針來實現“運行時…