日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

UGUI基礎(chǔ)

 office0228 2018-01-12

##1、UGUI概述

++1.1Unity界面發(fā)展史

++++【老版本界面onGUI=>GUI插件NGUI=>【新版本界面UGUI

++1.2、UGUI特點

++++新的UI系統(tǒng)是從Unity4.6開始被集成到Unity編譯器中的。Unity官方給這個新的UI系統(tǒng)賦予的標簽是:靈活,快速和可視化。

++++對于開發(fā)者而言,就是有三個優(yōu)點:效率高效果好,易于使用和擴展以及與Unity的兼容性高。

++++新的UGUI系統(tǒng)具有以下特點:

--1、引擎內(nèi)置,結(jié)合更加緊密。

--2、運行穩(wěn)定,操作方便。

++1.3、UGUI優(yōu)點

++++UGUI與老版本onGUI相比:

--1、獨立的坐標體系;

--2、全新的事件機制;

--3、更佳高效率的運轉(zhuǎn)效率。

++++UGUIGUI插件NGUI相比:

--1、由NGUI創(chuàng)始人參與開發(fā);

--2、與Unity結(jié)合更加密切;

--3、自適應系統(tǒng)更加完善;

--4、更方便的深度處理;

--5、省去Altas,直接使用Sprite Packer


##2、UGUI畫布

++2.1、創(chuàng)建UGUI控件

++++第一種: 在Hierarchy當中通過 右鍵=>UI,找到相應的UI控件。

++++第二種:通過工具欄【GameObject=>UI】,找到相應的UI控件。

++2.2、Canvas畫布

++++當我們?nèi)我鈩?chuàng)建一個UI控件的時候可以看到在層級視圖當中不但生成我們創(chuàng)建的控件,還會同時創(chuàng)建一個CanvasEventSystem


++++Canvas是畫布,是所有UI控件的根類,也可以看作所有UI控件的父物體,所有UI控件都必須在Canvas上面繪制。它是一個帶有Canvas組件的游戲物體EventSystem事件系統(tǒng),負責監(jiān)聽用戶的輸入。

++++創(chuàng)建UI控件時,當層級視圖當中沒有CanvasEventSystem系統(tǒng)會幫我們自動創(chuàng)建。

++2.3、總結(jié)

++++1、UGUI畫布也稱為Canvas,UGUI是所有控件的父類。

++++2、所有UGUI控件都必須繪制在畫布上面。

++++3、當創(chuàng)建UGUI控件,工程當中沒有Canvas的時候會自動創(chuàng)建CanvasEventSystem


##3、UGUI基礎(chǔ)控件

++3.1Text

++++Text控件是用來顯示文本的文本控件,選中Text可以查看屬性:

--Text :創(chuàng)建控件時顯示的文字

--Character

  --Font :字體

  --Font Style :字體格式:黑體/斜體

  --Font Size :字體大小

  --Line Spacing :行間距

  --Rich Text :富文本

--Paragraph

  --Alignment :對其方式

  --Horizontal Overflow :水平溢出

  --Vertical Overflow :垂直溢出


++++Text的屬性可以在Inspector當中通過Text組件進行設(shè)置,也可以在代碼當中進行動態(tài)設(shè)置。給Canvas掛載腳本 UGUISetting.cs

示例:

Text text;

void Start(){

    text = GameObject.Find(Text).GetComponent<Text>();

    text.text = 立鉆哥哥;

    text.alignment = TextAnchor.MiddleCenter;

    text.fontSize = 20;

    text.fontStyle = FontStyle.BoldAndItalic;  //字體樣式

    text.color = Color.red;

}


++3.2、Image

++++Image控件主要是用來顯示圖片,顯示圖片的格式是Sprite,具體屬性如下:

--Source Image Image顯示的圖片,圖片格式為Sprite

--Color :顏色。

--Material :材質(zhì)。

--Preserve Aspect :圖像寬高是否按原始比例。

--Set Native Size :將Image大小設(shè)置為圖片默認大小。


++++當我們給Image選擇一張貼圖之后會出現(xiàn)Image Type選項,如下圖。ImageType總共有四種選項:

--simple :顯示單個會拉伸;

--Tilled :平鋪顯示,圖片按照原始顯示;

--Sliced :按照九宮格顯示,拉伸區(qū)域只會在九宮格中間;

--Filled :填充顯示,可以根據(jù)不同的填充方式模擬技能冷卻的效果。


++++Image TypeFilled填充模式??梢杂脕碇谱餮獥l,冷卻技能等。

++++示例:如何使用程序控制圖片填充顯示: 當按鍵A按下的時候Image控件180度填充顯示。

--Start方法中獲取Image控件,設(shè)置填充模式為180度填充:

void Start(){

    image = GameObject.Find(Image).GetComponent<Image>();

    image.fillMethod = Image.FillMethod.Radial180;

}

--Update方法中判斷當按鍵A按下的時候讓圖片180度填充:

bool isFilled = true;

void Update(){

    if(Input.GetKeyDown(KeyCode.A)){

        isFilled = false;

    }

    if(! isFilled){

        image.fillAmount += Time.deltaTime;

        if(image.fillAmount >= 1){

            image.fillAmount = 1;

            isFilled = true;

        }

     }

}


++3.3、RawImage

++++RawImage同樣是用來顯示圖片的控件,跟Image控件的差別就是Image顯示圖片的格式為Sprite,RawImage顯示圖片的格式為Texture,此外RawImage可以控制行列。

--Raw Image(Script)

  --Texture :導入的圖片樣式

  --UV Rect:紋理貼圖坐標,wh


++3.4、Button

++++Button控件,包含的Text控件用于顯示按鈕的文本。

++++當某個UGUI控件添加了Button組件便擁有了按鈕點擊的功能。

++++Button組件:

--Interactable :是否可以交互。

--Transition :按鈕的過渡效果。

--按鈕在不同狀態(tài)的顏色:

  --Normal Color

  --Highlighted Color

  --Pressed Color

  --Disabled Color

  --Color Multiplier

--Navigation :控件間導航。

--On Click() :給按鈕添加響應事件。


++++Transition用于設(shè)置按鈕在不同狀態(tài)間的過渡效果,總共有四種方式:

--1None :無過渡效果

--2Color Tint :設(shè)置不同狀態(tài)不同顏色來過渡。

--3Sprite Swap :設(shè)置不同圖片來過渡不同狀態(tài)。

--4Animation :設(shè)置不同動畫過渡不同狀態(tài)。

 

++++給按鈕添加監(jiān)聽事件:

Button btn;

void Start(){

    //獲取到按鈕

    btn = GameObject.Find(Button).GetComponent<Button>();

    //給按鈕添加監(jiān)聽事件

    btn.onClick.AddListener(BtnClick);

}

 

void BtnClick(){

    //按鈕響應事件

    Debug.Log(btn.onClick.AddListener());

}


++3.5、Slider

++++給滑動條Slider添加監(jiān)聽事件。

示例:

Slider slider;

void Start(){

    //獲取到Slider組件

    slider = GameObject.Find(Slider).GetComponent<Slider>();

    //添加監(jiān)聽事件

    slider.onValueChanged.AddListener(SliderValueChange);

}

 

//事件響應

public void SliderValueChange(float value){

    Debug.Log(value =  + value);

}


++3.6、ScrollBar

++++滾動條ScrollBar,Scrollbar層級視圖當中包含了滑塊Handle

++++Scrollbar屬性:

--Handle Rect :滑動區(qū)域。

--Direction :滑動方向。

--Value :滑塊當前值。

--Size :滑塊大小。

--Number Of Steps :可滑動區(qū)域分為幾步。

--On Value Changed(Single) :滑塊響應事件。


++3.7、Toggle

++++Toggle為單選框,可以用來創(chuàng)建開關(guān)按鈕。如下圖,層次視圖當中包含了顯示背景的Background和顯示文本的Label。


++++Toggle屬性如下,其中Group表示當前選中框是否屬于某一組選中框,若是的話則所有選中框只能選中一個。

--Is On :交互是否開啟。

--Toggle Transition :狀態(tài)改變過渡效果設(shè)置。

--Graphic :選中或取消要顯示或隱藏的文本或圖片。

--Group :當前選中框是否屬于某個組。

--On Value Changed(Boolean) :事件響應。


++++Toggle添加監(jiān)聽事件

示例:

Toggle toggle;

void Start(){

    toggle = GetComponent<Toggle>();  //獲取Toggle組件

    //Slider組件添加監(jiān)聽事件

    toggle.onValueChanged.AddListener(ToggleAction);

}

void ToggleAction(bool isOn){

    print(isOn);

}


++3.8、InputField

++++InputField創(chuàng)建出來如下圖,InputField層級視圖當中包含PlaceholderText,

--Placeholder 用于顯示占位符,即輸入框沒有輸入文本時顯示的文本,例如下圖的“Enter text”;

--Text 用于顯示輸入的內(nèi)容。

++++輸入框Inputield的具體屬性:

--Text :初始文本顯示的內(nèi)容

--Character Limit :字符數(shù)量限制。

--Content Type :文本類型。

--Line Type :文本單行顯示還是多行。

--Caret Blink Rate :光標閃動頻率。

--Caret Width :光標的寬度。

--Custom Caret Color :自定義光標的顏色。

--Selection Color :選中文本時的顏色。

--On Value Changed(String) :文本編輯時觸發(fā)的事件。

--On End Edit(string) :結(jié)束編輯的時候觸發(fā)的事件。


++++InputField添加監(jiān)聽事件

示例:

InputField inputField;

void Start(){

    //獲取輸入框

    inputField = GameObject.Find(InputField).GetComponent<InputField>();

    inputField.onEndEdit.AddListener(InputFieldEndEdit);

}

 

void InputFieldEndEdit(string text){

    print(文本框當中的文本: + text);

}


++3.9Panel

++++Panel :面板,功能相當于控制的容器,里面可以存放其他控件。

--作用: 使用Panel控件可以整體移動和處理一組控件。

--設(shè)計規(guī)范: 一個功能完備的UI界面往往會使用多個Panel控件。

++++示例: 將資源商店當中的所有分類放在單獨一塊Panel當中。


##4、RectTransform

++4.1、RectTransform

++++RectTransform的作用用來計算UI的位置和大小,RectTransform繼承于Transform,具有Transform的所有特征,通過RectTransform能夠?qū)崿F(xiàn)基本的布局和層次控制。

++++RectTransform當中專有名字:

--Pos X, Pos Y PivotAnchor的距離

--Pivot :中軸,中心點

--Anchor :錨點

--Width&Height :寬與高,相對于錨點

--Left, Right, Top, Bottom :左右上下


++4.2、中心點Pivot

++++按下T鍵選中某一個UI控件即可看到UI控件的中心點,中心點也叫中心軸,當鼠標拖動UI控件進行旋轉(zhuǎn)的時候會圍繞中心點旋轉(zhuǎn)。

--中心點是矩形的一部分。

--0對應左下角,1對應右上角。


++4.3、錨點Anchor

++++如圖所示,箭頭所指即為錨點,錨點表示的是相對于父級矩形的子矩形區(qū)域。

++++如圖所示,錨點為四邊形,錨點有多種擺放方式,可以為矩形,點狀或是為線狀。

++++錨點移動范圍僅限于父級視圖當中。


++4.4、錨點的四種擺放方式

--錨點呈點狀

--錨點與組件本身重合

--錨點跟父物體重合

--錨點呈線狀

++++1)錨點呈點狀: 當UI的錨點為中心點時,不管父控件的大小怎么改變,UI距離錨點的位置固定,大小固定,此時RectTransform(Pos X, Pos Y, Width, Height),其中Pos XPos Y分別表示UI中心點到錨點的水平與方向距離。WidthHeightUI的大小。


++++2)錨點與組件本身重合: 當UI的錨點為四方形或者與UI本身大小相同的時候,UI的大小與父控件的大小變換成正比,此時RectTransform(Left, Top, Right, Botton),分別為錨點左,上,右,底 距離UI對應邊的距離。


++++3)錨點跟父物體重合: 當UI控件的錨點與父物體重合的時候,不管父物體怎么變化,UI控件四條邊相對于錨點四條邊的距離保持不變。


++++4)錨點呈線狀:

--UI控件的錨點呈線狀并為豎直方向時,則UI控件豎直方向的大小與父物體豎直方向的大小成正比,水平方向大小不變。

--當錨點呈線狀并且為水平方向時,則水平方向大小與父物體水平方向的大小成正比,豎直方向大小不變。



--_--VRunSoft : lovezuanzuan--_--

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多