Unity GUI學(xué)習(xí)

學(xué)習(xí) Unity GUI筆記,有各種學(xué)習(xí)資料網(wǎng)址!

1.http://www.wyzc.com/Course/Course/showAction/id/16352/center/0 視頻學(xué)習(xí)資料。。

http://www.easyar.cn/view/docs/Getting-Started/Getting-Started-with-EasyAR.html 官方代碼

  1. http://weibo.com/Edstick?is_hot=1 AR 提取
  2. http://edu.manew.com/course/183 蠻牛
    C#
    基本數(shù)據(jù)類型,
    整數(shù)
    Int uint
    Long ulong
    Float double
    Boll ture false

復(fù)合數(shù)據(jù)類型
Struct person{
String m_name ;
Int m_age l
String m_sex;

}
Enuw weekday{
Sunday,Mondaym,Tuesday,Wednesdar ,Thursday ,Friday,Saturday

}
Class New 來初始化,interface 借口,delegate,array.
(1)
現(xiàn)在都用這個(gè)UGUI高級(jí), gui低級(jí)。
第一個(gè)選項(xiàng)啥意思,downloadlayout! 我選擇了這個(gè)!

第一個(gè)創(chuàng)建butt的UGUI的程序
OnGuI 系統(tǒng)會(huì)自己去調(diào)用,GUI 是一個(gè)框架吧。。
void OnGUI(){
if (GUI.Button (new Rect (0f, 0f, 200f, 200f), "GUI_BUTTON")) {
框架,屬性,結(jié)構(gòu)體。名字,事件。
Debug.Log ("我被點(diǎn)擊了");
}
}
}

//UI設(shè)計(jì)。。
Create· 下UI創(chuàng)建button , 導(dǎo)入圖片,設(shè)置texture Type 2d And UI,設(shè)置set Navitin size 跟圖片一樣大。
//上面那個(gè)怎么弄啊。。

(2)
Canvas 畫布,就相當(dāng)于一個(gè)windon
屬性。。
2D UI ,ovelay 始終在屏幕前方   沒有顯示2D 3D的效果。
Camera 2D 三D綁定 相機(jī)。。
world space 直接3d
(3)
textUI 控件。
uing 導(dǎo)入頭文件
void start (){
程序一開始調(diào)用的。

void update(){

字面理解為更新時(shí)候調(diào)用

標(biāo)簽格式。。XML 都是成對(duì)的。。!
<size = 50></size>。設(shè)置字體大小。
<b></b>,<i><i>
<color = #ffffff><color>

引入對(duì)象,transform.getCo,ponent<對(duì)象>.屬性  = "賦值" + 拼接 反正一切屬性,都是寫在""這個(gè)里面。對(duì)象的話要用《》來引用。
富文本屬性 rech text ,勾選的。。!
(4)
image組件 ,圖片
Material 素材 要?jiǎng)?chuàng)建一個(gè)material 然后選擇UI 才能正常顯示。。
勾選屬性。。
Simple 等比縮放,
Sliced 九宮格縮放,這個(gè)設(shè)置圖片,拉伸。。
Titled 平鋪 ,不會(huì)被拉伸,而是鋪滿 這個(gè)設(shè)計(jì)尺寸。。!
Filled 動(dòng)畫填充, 用來做技能ID 冷卻時(shí)間的。。!fill Method 填充的方法。。 fill OriGin 方向從哪里開始。。主要是360 method
1 4 可以選擇 設(shè)置圖片大小相同。。。
(5)RawImage 控件。大型的Image 上面可以添加視圖的。。!
該組件可以用來顯示任意紋理。包括RenderTexTure .Movie Texture
基本 屬性
1. TexTure紋理 要顯示的紋理
2. Color顏色 : 如果TeX Ture 是空的,那么久=會(huì)使用當(dāng)前設(shè)置顏色,來填充矩形區(qū)域
3. Material 材質(zhì)球,可以選擇UI類型的shader,來對(duì)其賦值
4. UV Rect UV 矩形:設(shè)置紋理顯示區(qū)域。。
和Image 的區(qū)別多了 一個(gè)texture 這個(gè)屬性。。!
實(shí)際的開發(fā)中用的比較少。。!
1. Button 控件。
設(shè)置狀態(tài),transtion, 有四個(gè)狀態(tài)。
分為四種狀態(tài) ,正常 ,鼠標(biāo)在按鈕上,點(diǎn)擊,失效。
動(dòng)畫,點(diǎn)擊創(chuàng)建一個(gè)自動(dòng)的按鈕。。!生成一個(gè)動(dòng)畫文件。。
然后在點(diǎn)擊,Windows 下的動(dòng)畫。。 在點(diǎn)擊當(dāng)前的對(duì)象。。進(jìn)行動(dòng)畫編輯。。
點(diǎn)擊事件。
創(chuàng)建一個(gè)文件。對(duì)button進(jìn)行關(guān)聯(lián),點(diǎn)擊屬性找對(duì)象,然后在類里面的方法。。
文件代碼里面寫.
Using UnityEngine.UI;導(dǎo)入系統(tǒng)UI控件礦建
Transform.GetComponent<Button>().onClick.AddListener(TowClock);onCick.addlistener是什么意思?
(6)Toggle *
多了一個(gè)backgroud 和一個(gè)label屬性,label里面有字體富文本屬性。
Background 是圖片的背景,都是image屬性,可以按照image來設(shè)置。Checkmack小圖標(biāo)的一個(gè)屬性。。勾選的屬性。
設(shè)置 toggle group 進(jìn)行單選、
代碼實(shí)現(xiàn)
using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class Toggle_01 : MonoBehaviour {

// Use this for initialization
void Start () {
    transform.GetComponent<Toggle> ().onValueChanged.AddListener (changevalue);

}

public void changevalue(bool aselct){
    if (aselct) {
        Debug.Log ("一開始點(diǎn)擊了");


    } else {
        Debug.Log ("又被點(diǎn)擊了一下");
    }
    Debug.Log ("toggle被點(diǎn)擊了");
}
// Update is called once per frame
void Update () {

}

}
按鈕的事件監(jiān)聽。。
(7)Dropdown *
下拉列表!不可以滑動(dòng)的。直接是固定的。。!
右邊按鈕 點(diǎn)擊+號(hào),添加options
然后就是代碼的添加 操作itme,主要學(xué)怎么應(yīng)用。。!
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class DropDown : MonoBehaviour {
public Dropdown MyDropdown;
// Use this for initialization
void Start () {
Dropdown.OptionData _data1 = new Dropdown.OptionData ();
_data1.text = "選擇1";
Dropdown.OptionData _data2 = new Dropdown.OptionData ();
_data2.text = "選擇2";
Dropdown.OptionData _data3 = new Dropdown.OptionData ();
_data3.text = "選擇3";
Dropdown.OptionData _data4 = new Dropdown.OptionData ();
_data4.text = "選擇4";
//MyDropdown.options.Add()
//引用的是unity的dropdown ,直接操作,他添加的是Dropdown.OptionData _data2;
MyDropdown.options.Add (_data1);
MyDropdown.options.Add (_data2);
MyDropdown.options.Add (_data3);
MyDropdown.options.Add (_data4);
//onvaluechangged
MyDropdown.onValueChanged.AddListener (Onselectindex);
}

// Update is called once per frame
void Update () {

}
//他需要一個(gè)int 32的
public void Onselectindex (int index){

    Debug.Log ("當(dāng)前的下標(biāo)=" + index.ToString () + "選項(xiàng)名字" + MyDropdown.captionText);
} 

(8)slider 滑塊
綁定監(jiān)聽事件。。
public class Myslider : MonoBehaviour {

// Use this for initialization
void Start () {
    
//    transform.GetComponent<Slider> ().onValueChanged.AddListener (myvalueChange);

}

// Update is called once per frame
void Update () {

}
public void myvalueChange (float value){
    Debug.Log ("當(dāng)前的值" + value.ToString());
}

}
(9)ScrollBar滑動(dòng)條
和slider 邏輯一樣。組件的介紹
和事件的 響應(yīng)。
每一個(gè)控件都有一個(gè)接口方法, 而且都可以進(jìn)行關(guān)聯(lián),或者是直接進(jìn)行賦值的一個(gè)接口。。!
接口的方法都是可以寫的!可以再代碼里面重寫。。UI 會(huì)自己調(diào)用的。。!

(10)inputfilter 就是文本輸入框
他有兩個(gè)輸入方法,接口。。!一個(gè)結(jié)束 和一個(gè)在輸入的時(shí)候進(jìn)行調(diào)用的。。!
(11)scrollerct ** 牽扯到自己定對(duì)象。。!
這個(gè)明天弄。搞不定。。。
這個(gè)總體來說還是比較難得,首先你要搞清楚 圖層的渲染順序
還有就是弄明白,每個(gè)屬性的作用,和進(jìn)行關(guān)聯(lián)。
共有三個(gè)對(duì)象。!
Scrollrect 滾動(dòng)comtent,關(guān)聯(lián)滾動(dòng)條, 下面有mack ->mack對(duì)象關(guān)聯(lián)->image對(duì)象,遮罩完成。->BG 設(shè)置圖片、->創(chuàng)建scrollbar ;
(12)GridLayoutGroup 用來布局很多類型的集合的。。。
他是父視圖直接設(shè)置尺寸,而且都是等比的。。!
(13)Hoirztall
水平組件,運(yùn)行我們定制水平Item的大小。。layout elment 來控制。。!
(14)VerticalLayoutgroup
垂直組件,允許我們定位item的大小,kayout ekment 來控制。
縮放 和 邊距的距離的屬性。

(15)
Pivot 中心點(diǎn)的兩個(gè)作用
1. 控制著recttransform 的psX psY 與Anchor的相對(duì)距離
2. 解決屏幕自適應(yīng)的。。!
3. 只往一個(gè)方向進(jìn)行拉伸,比如 只往左/右/下/上 作單向拉伸;
(16)實(shí)戰(zhàn) SD冷卻圖。。
using UnityEngine;

using System.Collections;
導(dǎo)入U(xiǎn)I框架
using UnityEngine.UI;

public class SDskills : MonoBehaviour {
引入U(xiǎn)nity 圖形 ,聲明對(duì)象
public Button Mybutton;

public Image  Myimage;

public Text McdText;

為什么這個(gè)用const呢?
public const float MAX_CODE_TIME = 3;
設(shè)置一個(gè)浮點(diǎn)為0 來記時(shí)
private float curTime = 0;
// Use this for initialization
void Start () {
首先調(diào)用遮蔽層,設(shè)置為nil;
Endskill ();
點(diǎn)擊事件,onClick.Addlistener (方法名字);
Mybutton.onClick.AddListener (stactButtoncilk);

}

// Update is called once per frame

這個(gè)方法什么時(shí)候調(diào)用啊!
void Update () {

如果遮蔽層隱藏。
if (false == Mybutton.interactable) {
如果myimage.fillAmount value 大于等于1 或者大于0
if(Myimage.fillAmount <= 1f &&Myimage.fillAmount> 0f){
這句話的意思就是取當(dāng)前的值;
curTime += Time.deltaTime;
最大值-當(dāng)前值 % 最大值 = 圖片的一個(gè)比例值。
Myimage.fillAmount = (MAX_CODE_TIME - curTime) / MAX_CODE_TIME;
這句話是什么意思?
McdText.text = Mathf.CeilToInt (MAX_CODE_TIME - curTime).ToString ();
if(Myimage.fillAmount == 0){
Endskill ();
}

        }

    } 

}
void stactButtoncilk (){
    
    StartSkill ();
}

開始調(diào)的方法
void StartSkill(){
Mybutton.interactable = false;
Myimage.fillAmount = 1f;
McdText.text = MAX_CODE_TIME.ToString ();
curTime = 0f;
}
結(jié)束的時(shí)候調(diào)。
void Endskill(){
Mybutton.interactable = true;
Myimage.fillAmount = 0f;
McdText.text = string.Empty;
curTime = 0f;
}
}
(17)進(jìn)度條實(shí)現(xiàn)跳轉(zhuǎn)方法。。
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
系統(tǒng)提供的異步加載頁面 方法列表
using UnityEngine.SceneManagement;
public class porgess : MonoBehaviour {
進(jìn)度條
public Image myimageview;
返回的是一個(gè)可選的異步。
private AsyncOperation masync;
// Use this for initialization
記錄進(jìn)度條的值
private int cyrprogessVal;
public Text text;
void Start () {

     StartCoroutine (LoadScene());
}
//IEnumerable  調(diào)錯(cuò)方法了。。!

異步加載方法
IEnumerator LoadScene(){
masync = SceneManager.LoadSceneAsync ("navgtionVC");
masync.allowSceneActivation = false;
yield return masync;

}
// Update is called once per frame
void Update () {

Null 沒nil
if(masync == null){

        return;
    }
    int propressvalue = 0;
    //zhege shuxing nali lai de !
    if (masync.progress < 0.9f) {
        propressvalue = (int)masync.progress * 100;


    } else {
    
        propressvalue = 100;
    }
    if(cyrprogessVal<propressvalue){
        cyrprogessVal++;

    }
    text.text = cyrprogessVal+"%";
    myimageview.fillAmount = cyrprogessVal / 100f;
    if(cyrprogessVal == 100){

        masync.allowSceneActivation = true;

    }

}

}
跳轉(zhuǎn)的頁面要設(shè)置File ,buldseting;
IEnumerator 這個(gè)不要寫錯(cuò)了。。!
SseneManager.loadSceneAsync 是系統(tǒng)提供的方法進(jìn)行跳轉(zhuǎn)界面的,,!
你現(xiàn)在要弄清楚 圖層的渲染順序。。!這個(gè)是重點(diǎn)。。!
背包實(shí)戰(zhàn),圖像渲染的順序。。!
1. GameBG 都是在這個(gè)imageview下操作的。。!
2. 他里面有一個(gè)滑動(dòng)的view;scollerrect ,Viewpoint 視圖位置,遮罩視圖,滑動(dòng)的內(nèi)容。。
3. 遮罩里面包括布局類,布局類還牽扯到一個(gè)contens of size 得給他掛一個(gè)。。!這個(gè)就可以滑動(dòng)到最下面。。!記得操作Perferred size 自動(dòng)幫你換算里面的內(nèi)容。。!

總結(jié)。。!
基本UI的操作都是差不多的,!比較難得就是滾動(dòng)視圖了。。!其實(shí) 這都是操作圖片。。調(diào)用借口。。!學(xué)了跳轉(zhuǎn)界面加載界面,界面之間的通信呢? 還有視圖的消失,還有生命周期,都還不知道。。!
基本操作,創(chuàng)建UI,然后編寫腳本進(jìn)行綁定,操作對(duì)象,進(jìn)行賦值!就是C#的語法,數(shù)據(jù)類型,不明白。。! 要深入學(xué)習(xí)的話還是要學(xué)習(xí)C#的!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,885評(píng)論 6 541
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,312評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,993評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,667評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,410評(píng)論 6 411
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,778評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,775評(píng)論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,955評(píng)論 0 289
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,521評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,266評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,468評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,998評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,696評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,095評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,385評(píng)論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,193評(píng)論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,431評(píng)論 2 378

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,821評(píng)論 18 139
  • How to make a Video Game in Unity 的課程筆記。 1. 基礎(chǔ) Scene 視圖,滾...
    su3閱讀 750評(píng)論 0 0
  • 1.委托有匿名委托,不是必須帶有委托名 委托可以把一個(gè)方法作為參數(shù)代入另一個(gè)方法; 事件可以看做是一種特殊的委托 ...
    胤醚貔貅閱讀 351評(píng)論 0 0
  • 我們知道 在RPG里單機(jī)游戲里 游戲存檔功能必不可少 在這里 網(wǎng)上有個(gè)教程 非常的好 是基于xml下的保存 保...
    Unity與iOS的靈魂小白閱讀 3,584評(píng)論 1 2
  • 正式回歸常態(tài)已經(jīng)兩天了,2015終究成為了過去式。突然明白整個(gè)春節(jié)長假都是為了讓我們能好好的跟過去的自己做一個(gè)告別...
    索非婭閱讀 404評(píng)論 0 1