亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【unity實用技能】NGUI圖片鏡像

發布時間:2020-02-29 20:19:06 來源:網絡 閱讀:4233 作者:xiaosongfang 欄目:游戲開發

NGUI做UI的話,有個功能很常用,比如:
【unity實用技能】NGUI圖片鏡像

這樣的一個界面,如果大圖的話一個圖集都放不下幾張,這時為了省資源,美術會把這個圖切9宮。
不過這樣依然很大,這時就會提出,如果這個圖是左右相同的話,左右只出一半,另一半程序自己拼,上下相同只切上面,下面程序拼,上下左右相同的話出左上角,其余自己拼。
像這個就會這么出圖
【unity實用技能】NGUI圖片鏡像
只出了左邊。

自己拼不僅蛋疼,更重要的是拼出來的界面會有黑邊,并且在適配不同界面的時候黑邊總是會跑出來。
這時一般項目組就會拓展一下NGUI的UISprite,做一個鏡像功能,直接填充出來右邊。
像這樣:
【unity實用技能】NGUI圖片鏡像
通過選擇MirrowType來覺得是左右填充還是上下填充還是上下左右填充。

怎么實現呢,這里有點復雜,而且每個NGUI版本都不太一樣,這里講講大概就直接發代碼

1.首先是改Inspector文件(其實這個應該放最后)
【unity實用技能】NGUI圖片鏡像
加一個鏡像選擇框
2.再在UIBasicSprite.cs上加上對應的屬性
【unity實用技能】NGUI圖片鏡像

3.接下來在UISprite.cs上改,現在OnFill里加上鏡像邏輯,太長,截一部分:
【unity實用技能】NGUI圖片鏡像
這里的邏輯就是根據你選擇的鏡像模式,比如左右的話,就計算兩次uv信息,畫兩個UIRect,這里要拓展一下NGUIMath.cs的邏輯。就是加上計算鏡像的部分(這里自己看代碼,不做解釋了)

4.最后還是在UISprite.cs上改,在SImpleFill和SlicedFill上加上鏡像的邏輯,以SimpleFill舉例:
【unity實用技能】NGUI圖片鏡像
【unity實用技能】NGUI圖片鏡像
其實這里的邏輯就是如果是橫向鏡像,計算左邊的頂點數據、uv數據、顏色數據,保存,再計算右邊的頂點、uv數據、顏色數據,保存。其他按照這個邏輯類推

5.最后通過UIWidget自身的UpdateGeometry刷新ui

最后有一點要注意的是,這樣子的拼接有可能會有黑邊,但是可以通過減少uv采樣的一兩個像素來規避這個問題
【unity實用技能】NGUI圖片鏡像

最后奉上demo
https://pan.baidu.com/s/1kRaBY2C85ftXS0_JPe_M-w

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

井陉县| 贵德县| 张家口市| 新蔡县| 禹城市| 嵊泗县| 文水县| 和田市| 连平县| 林西县| 曲靖市| 依兰县| 革吉县| 太原市| 新干县| 叙永县| 赤峰市| 南岸区| 三台县| 秭归县| 墨竹工卡县| 漾濞| 阿拉善右旗| 民权县| 泸水县| 北京市| 屏边| 鲁甸县| 连平县| 光泽县| 老河口市| 宣恩县| 崇仁县| 黎城县| 百色市| 丁青县| 安丘市| 福州市| 井陉县| 宁德市| 澄江县|