unity使用ugui自製調色面板

2021-09-07 18:27:43 字數 1246 閱讀 3415

原文: 

突然想實現乙個調色面板,然後開工...

首先找找有沒有什麼介面可調,木有找到,找到一些呼叫win32實現的本地顏色面板的呼叫,感覺不科學,反正多平台肯定是搞不定的。

既然沒找到,還是老老實實的自己寫吧,看看texture2d的相關函式,可以繪製畫素,這樣就行了,基本搞定,

下面來說說,具體步驟:

1.建立乙個顏色面板的指令碼,初始化一些相關屬性,texture2d,rawimage,顏色陣列等

texture2d tex2d;

public rawimage ri;

int texpixellength = 256;

color[,] arraycolor;

// use this for initialization

void start ()

4.在獲取到相關資料後,然後可以在呼叫一下setcolorpanel設定為endcolor設定乙個顏色,比如我這裡初始化為紅色,感覺跟ps裡的一樣呢

5.除了紅色我們肯定還需要呼叫其他顏色,於是就需要右邊的顏色作為endcolor的值,右邊的值呢,就是rgb三原色,其他顏色也是他們的混合出來的,然後選擇乙個endcolor左邊的顏色面板就會更新新的顏色,大概看一下計算**,其他顯示都類似

color calcarraycolor()

color value = (color.green - color.red)/addvalue;

for (int i = 0; i < texpixelwdith; i++)

}value = (color.blue - color.green)/ addvalue;

for (int i = 0; i < texpixelwdith; i++)

}value = (color.red - color.blue) / ((texpixelheight - 1)-addvalue-addvalue);

for (int i = 0; i < texpixelwdith; i++)

}listlistcolor = new list();

for (int i = 0; i < texpixelheight; i++)

}return listcolor.toarray();

}6.然後寫乙個manager類,來管理一下相關的操作。

哎呀,略懶,寫了基本思路就夠了,**都寫得很粗糙,也沒有去優化操作之類的東西。有興趣,加乙個alpha值,照著unity的調色面板做乙個出來,也應該夠用了。

工程:

unity的UGUI學習筆記

1 ugui中的層級是按先渲染者在下面,即在同乙個畫布中節點越靠上,越先渲染越在底層,畫布間用sortorder引數設定層級 2 ugui中image會擋住button的事件,這種情況只需要為image新增 canvasgroup元件,或者將button放在畫布的最下方 3 元件的對齊設定注意piv...

Unity中UGUI指令碼新增Button按鈕事件

在場景中新增ugui的button按鈕 然後在在指令碼中寫新增的事件 宣告ui using unityengine.ui 宣告場景的跳轉 using unityengine.scenemanagement 戰士模型 弓箭手模型 gameobject m warrior,m archer 戰士按鈕 弓...

Unity複習 四 UGUI與NGUI

一 ngui與ugui常用元件比較 元件樣式如下 二 細節對比 ngui根據depth的大小,ugui根據在層次面板上的先後順序。如上圖中文字與的渲染順序,ngui中sprite的depth為0,label為1,label後渲染,顯示在sprite的上方 ugui層次面板中,text在image的上...