Unity GUI学习

学习 Unity GUI笔记,有各种学习资料网址!

1.http://www.wyzc.com/Course/Course/showAction/id/16352/center/0 视频学习资料。。

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#
    基本数据类型,
    整数
    Int uint
    Long ulong
    Float double
    Boll ture false

复合数据类型
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)
现在都用这个UGUI高级, gui低级。
第一个选项啥意思,downloadlayout! 我选择了这个!

第一个创建butt的UGUI的程序
OnGuI 系统会自己去调用,GUI 是一个框架吧。。
void OnGUI(){
if (GUI.Button (new Rect (0f, 0f, 200f, 200f), "GUI_BUTTON")) {
框架,属性,结构体。名字,事件。
Debug.Log ("我被点击了");
}
}
}

//UI设计。。
Create· 下UI创建button , 导入图片,设置texture Type 2d And UI,设置set Navitin size 跟图片一样大。
//上面那个怎么弄啊。。

(2)
Canvas 画布,就相当于一个windon
属性。。
2D UI ,ovelay 始终在屏幕前方   没有显示2D 3D的效果。
Camera 2D 三D绑定 相机。。
world space 直接3d
(3)
textUI 控件。
uing 导入头文件
void start (){
程序一开始调用的。

void update(){

字面理解为更新时候调用

标签格式。。XML 都是成对的。。!
<size = 50></size>。设置字体大小。
<b></b>,<i><i>
<color = #ffffff><color>

引入对象,transform.getCo,ponent<对象>.属性  = "赋值" + 拼接 反正一切属性,都是写在""这个里面。对象的话要用《》来引用。
富文本属性 rech text ,勾选的。。!
(4)
image组件 ,图片
Material 素材 要创建一个material 然后选择UI 才能正常显示。。
勾选属性。。
Simple 等比缩放,
Sliced 九宫格缩放,这个设置图片,拉伸。。
Titled 平铺 ,不会被拉伸,而是铺满 这个设计尺寸。。!
Filled 动画填充, 用来做技能ID 冷却时间的。。!fill Method 填充的方法。。 fill OriGin 方向从哪里开始。。主要是360 method
1 4 可以选择 设置图片大小相同。。。
(5)RawImage 控件。大型的Image 上面可以添加视图的。。!
该组件可以用来显示任意纹理。包括RenderTexTure .Movie Texture
基本 属性
1. TexTure纹理 要显示的纹理
2. Color颜色 : 如果TeX Ture 是空的,那么久=会使用当前设置颜色,来填充矩形区域
3. Material 材质球,可以选择UI类型的shader,来对其赋值
4. UV Rect UV 矩形:设置纹理显示区域。。
和Image 的区别多了 一个texture 这个属性。。!
实际的开发中用的比较少。。!
1. Button 控件。
设置状态,transtion, 有四个状态。
分为四种状态 ,正常 ,鼠标在按钮上,点击,失效。
动画,点击创建一个自动的按钮。。!生成一个动画文件。。
然后在点击,Windows 下的动画。。 在点击当前的对象。。进行动画编辑。。
点击事件。
创建一个文件。对button进行关联,点击属性找对象,然后在类里面的方法。。
文件代码里面写.
Using UnityEngine.UI;导入系统UI控件矿建
Transform.GetComponent<Button>().onClick.AddListener(TowClock);onCick.addlistener是什么意思?
(6)Toggle *
多了一个backgroud 和一个label属性,label里面有字体富文本属性。
Background 是图片的背景,都是image属性,可以按照image来设置。Checkmack小图标的一个属性。。勾选的属性。
设置 toggle group 进行单选、
代码实现
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 ("一开始点击了");


    } else {
        Debug.Log ("又被点击了一下");
    }
    Debug.Log ("toggle被点击了");
}
// Update is called once per frame
void Update () {

}

}
按钮的事件监听。。
(7)Dropdown *
下拉列表!不可以滑动的。直接是固定的。。!
右边按钮 点击+号,添加options
然后就是代码的添加 操作itme,主要学怎么应用。。!
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 () {

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

    Debug.Log ("当前的下标=" + index.ToString () + "选项名字" + MyDropdown.captionText);
} 

(8)slider 滑块
绑定监听事件。。
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 ("当前的值" + value.ToString());
}

}
(9)ScrollBar滑动条
和slider 逻辑一样。组件的介绍
和事件的 响应。
每一个控件都有一个接口方法, 而且都可以进行关联,或者是直接进行赋值的一个接口。。!
接口的方法都是可以写的!可以再代码里面重写。。UI 会自己调用的。。!

(10)inputfilter 就是文本输入框
他有两个输入方法,接口。。!一个结束 和一个在输入的时候进行调用的。。!
(11)scrollerct ** 牵扯到自己定对象。。!
这个明天弄。搞不定。。。
这个总体来说还是比较难得,首先你要搞清楚 图层的渲染顺序
还有就是弄明白,每个属性的作用,和进行关联。
共有三个对象。!
Scrollrect 滚动comtent,关联滚动条, 下面有mack ->mack对象关联->image对象,遮罩完成。->BG 设置图片、->创建scrollbar ;
(12)GridLayoutGroup 用来布局很多类型的集合的。。。
他是父视图直接设置尺寸,而且都是等比的。。!
(13)Hoirztall
水平组件,运行我们定制水平Item的大小。。layout elment 来控制。。!
(14)VerticalLayoutgroup
垂直组件,允许我们定位item的大小,kayout ekment 来控制。
缩放 和 边距的距离的属性。

(15)
Pivot 中心点的两个作用
1. 控制着recttransform 的psX psY 与Anchor的相对距离
2. 解决屏幕自适应的。。!
3. 只往一个方向进行拉伸,比如 只往左/右/下/上 作单向拉伸;
(16)实战 SD冷却图。。
using UnityEngine;

using System.Collections;
导入UI框架
using UnityEngine.UI;

public class SDskills : MonoBehaviour {
引入Unity 图形 ,声明对象
public Button Mybutton;

public Image  Myimage;

public Text McdText;

为什么这个用const呢?
public const float MAX_CODE_TIME = 3;
设置一个浮点为0 来记时
private float curTime = 0;
// Use this for initialization
void Start () {
首先调用遮蔽层,设置为nil;
Endskill ();
点击事件,onClick.Addlistener (方法名字);
Mybutton.onClick.AddListener (stactButtoncilk);

}

// Update is called once per frame

这个方法什么时候调用啊!
void Update () {

如果遮蔽层隐藏。
if (false == Mybutton.interactable) {
如果myimage.fillAmount value 大于等于1 或者大于0
if(Myimage.fillAmount <= 1f &&Myimage.fillAmount> 0f){
这句话的意思就是取当前的值;
curTime += Time.deltaTime;
最大值-当前值 % 最大值 = 图片的一个比例值。
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 ();
}

开始调的方法
void StartSkill(){
Mybutton.interactable = false;
Myimage.fillAmount = 1f;
McdText.text = MAX_CODE_TIME.ToString ();
curTime = 0f;
}
结束的时候调。
void Endskill(){
Mybutton.interactable = true;
Myimage.fillAmount = 0f;
McdText.text = string.Empty;
curTime = 0f;
}
}
(17)进度条实现跳转方法。。
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
系统提供的异步加载页面 方法列表
using UnityEngine.SceneManagement;
public class porgess : MonoBehaviour {
进度条
public Image myimageview;
返回的是一个可选的异步。
private AsyncOperation masync;
// Use this for initialization
记录进度条的值
private int cyrprogessVal;
public Text text;
void Start () {

     StartCoroutine (LoadScene());
}
//IEnumerable  调错方法了。。!

异步加载方法
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;

    }

}

}
跳转的页面要设置File ,buldseting;
IEnumerator 这个不要写错了。。!
SseneManager.loadSceneAsync 是系统提供的方法进行跳转界面的,,!
你现在要弄清楚 图层的渲染顺序。。!这个是重点。。!
背包实战,图像渲染的顺序。。!
1. GameBG 都是在这个imageview下操作的。。!
2. 他里面有一个滑动的view;scollerrect ,Viewpoint 视图位置,遮罩视图,滑动的内容。。
3. 遮罩里面包括布局类,布局类还牵扯到一个contens of size 得给他挂一个。。!这个就可以滑动到最下面。。!记得操作Perferred size 自动帮你换算里面的内容。。!

总结。。!
基本UI的操作都是差不多的,!比较难得就是滚动视图了。。!其实 这都是操作图片。。调用借口。。!学了跳转界面加载界面,界面之间的通信呢? 还有视图的消失,还有生命周期,都还不知道。。!
基本操作,创建UI,然后编写脚本进行绑定,操作对象,进行赋值!就是C#的语法,数据类型,不明白。。! 要深入学习的话还是要学习C#的!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容