Unity【GUI】基础知识

Unity中的UI系统之GUI 全局颜色//全局的着色颜色,影响背景和文本颜色//文本着色颜色//背景元素着色,和全局颜色相乘整体皮肤样式。 阅读详情

什么是UI系统

Ul是UserInterface(用户界面)的简称

系统的主要学习内容

1.UI控件的使用
2.U控件的事件响应 
3.U的分辨率自适应

基础知识

1、工作原理和主要作用

1、GUI概念

即时模式游戏用户交互界面(IMGUI)
在Unity简称GUI
它是一个代码驱动的UI系统

2、GUI作用

1,作为程员的调试,创建游戏内调试身
2.为脚本组件创建自定义检视面板
3.创建新的编辑器窗口和工具以拓展Unity本身(一般用作内置游戏工具)

3、GUI的工作原理

在继承MonoBehaviour的脚本中的特殊函数里
调用GUI提供的方法,类似生命周期函数
    private void OnGUI()
    {
   
   
        //在其中书写GUI相关代码即可显示GUI内容
    }
注意:
	1.它每顿热行相当于是用于专门绘制GUI界面的函数
    2:一般只在其中执行GUI相关界面绘制和操作逻辑
	3.该函数在【OnDisable】之前【LateUpdate】之后执行
    4.只要是继承Mono的脚本都可以在OnGUI中绘制GUI

2、基本控件

在这里插入图片描述

1、文本和按钮控件

1、GUI控件绘制的共同点

1.他们都是GUI公共类中提供的静态函数,直接调用即可
2.他们的参数都大同小异
    位置参数:Rect参数 x y位置 w h尺寸
    显示文本:string参数
    图片信息:Texture参数
    综合信息:GUIContent参数
    自定义样式:GUIStyle参数
3.每一种控件都有多种重载,都是各个参数的排列组合
	必备的参数内容是【位置信息】和【显示信息】

2、文本控件

public Rect rect; //位置
public Texture text; //图片
public GUIContent content; //综合使用
public GUIStyle style; //自定义样式

private void OnGUI()
{
   
   
    1、基本使用
        GUI.Label(new Rect(0, 0, 100, 20), "文本控件");
        GUI.Label(rect, text);
    2、综合使用 (左图,右文字)
        GUI.Label(rect, content);
    3、获取GUI控件对应的信息
        Debug.Log(GUI.tooltip);
    4、自定义样式
        GUI.Label(new Rect(0, 0, 100, 20), "文本控件", style);
    	字体路径 C:\Windows\Fonts
}

3、按钮控件

public Rect btnRect;
public GUIContent btnContent;
public GUIStyle btnStyle;

private void OnGUI()
{
   
   
    if(GUI.Button(btnRect, btnContent, btnStyle))
    //Button 按下抬起算一次点击
    //RepeatButton 长按,一直返回true
    {
   
   
        Debug.Log("按钮被点击");
    }
}

2、多选框和单选框

1、多选框

普通样式
     private bool isSel;

     private void OnGUI()
     {
   
   
         isSel = GUI.Toggle(new Rect(0, 0, 100, 30), isSel, "效果开关");
     }

自定义样式
    修改固定宽高 fixedWidth 和 fixedHeight
    修改从GUIStyle边缘到内容起始处的空间 padding

2、单选框

private int nowSelIndex = 1;

private void OnGUI()
{
   
   
    //Toggle点击后返回true
    if(GUI.Toggle(new Rect(0, 100, 100, 20), nowSelIndex == 1, "选项一"))
        nowSelIndex = 1;
    if (GUI.Toggle(new Rect(0, 140, 100, 20), nowSelIndex == 2, "选项二"))
        nowSelIndex = 2;
    if (GUI.Toggle(new Rect(0, 180, 100, 20), nowSelIndex == 3, "选项三"))
        nowSelIndex = 3;
}

3、输入框和拖动条

1、输入框

普通输入
    private string inputStr;
    private void OnGUI()
    {
   
   
        //5为最大输入长度
        inputStr = GUI.TextField(new Rect(0, 0, 100, 30), inputStr,5);
    }
密码输入
    private string inputPW;
    private void OnGUI()
    {
   
   
        inputPW = GUI.PasswordField(new Rect(0, 0, 100, 30), inputPW, '*');
    }

2、拖动条

水平拖动条
    private float nowValue = 0.5f;
    private void OnGUI()
    {
   
   
        nowValue = GUI.HorizontalSlider(new Rect(0, 100, 100, 50), nowValue, 0, 1);
    }
竖直拖动条
    nowValue = GUI.VerticalSlider(new Rect(0, 150, 50, 100), nowValue, 0, 1);

4、图片绘制和框

1、图片绘制

public Rect texPos;
public Texture tex;
public ScaleMode mode; //显示模式
	//ScaleAndCrop: 通过宽高裁剪
	//ScaleToFit: 缩放不会变形
	//ScaleToFill: 填充满宽高(默认)
public bool alpha; //背景是否透明
private void OnGUI()
{
   
   
    GUi.DrawTexture(texPos, tex, mode, alpha);
}

2、框绘制

GUI.Box(texPos, "");

3、复合控件

在这里插入图片描述

1、工具栏和选择网格

1、工具栏

private int toolbarIndex = 0;
private string[] toolbarInfos = new string[] {
   
    "选项一", "选项二", "选项三" };

private void OnGUI()
{
   
   
    toolbarIndex = GUI.Toolbar(new Rect(0, 0, 
unity中的UI系统---GUI GUI优点:简单快捷,代码控制缺点:重复工作量繁多,控件绘制相关代码很多,最大缺点是必须运行时才能去看结果,不支持分辨率自适应。 阅读详情

相关推荐

损坏文件修复教程

untrunc是一个用于修复损坏的视频文件的命令行工具。当视频文件由于意外中断或其他原因而损坏时,untrunc可以尝试恢复文件的结构和元数据,使其能够再次播放。 untrunc的工作原理是通过分析视频文件的结构和元数据来确定损坏的部分,并尝试修复这些部分。它可以修复各种类型的视频文件,包括常见的MP4和AVI格式。 使用untrunc修复视频文件的步骤通常包括提供一个正常的参考视频文件,该文件与损坏的文件具有相同的编码和参数设置。untrunc会根据参考文件的结构和元数据来修复损坏的文件。

gcs_20210916的博客 3525

UnityGUI简介

UnityGUI简介 GUI是什么? unityGUI全称:即使模式游戏用户交互界面(IMGUI) 在Unity中一般简称为GUI,它是一个代码驱动的UI系统。 GUI的主要作用 作为程序员的调试工具,船舰游戏内调试工具。 为脚本组件创建自定义监视面板。 创建新的编辑器窗口和工具以拓展Unity本身(一般作为内置游戏工具)。 注意:不用用IMGUI为玩家制作UI功能。 GUI的工作原理 UnityGUI有自己的生命周期,在继承Monobehaviour的脚本中的特殊函数中在OnGUI函数中书写GUI

BraveRunTo的博客 5713

untrunc:还原截断的mp4mov。 改进版的ponchiountrunc

退缩 恢复损坏的(截断)的mp4,m4v,mov,3gp视频。 如果您有一个类似的,不中断的视频。 和一些运气。 你需要: 另一个没有损坏的视频文件 使用命令行的基本能力(存在 ) 关于这把叉子 该分叉在以下方面改进了: 快十倍以上! 低内存使用率,修复 易于构建+自动 > 2GB的文件支持 跳过未知字节的能力 对具有固定宽度的块(例如,二进制/ sowt)的所有轨道的通用支持 先进的测井系统 可以拉伸/缩小视频以匹配音频持续时间 与新版本的ffmpeg兼容 处理无效的原子长度 支持GoPro和Sony XAVC视频 许多错误已得到修复,并得到了积极维护 建造 Windows用户可以在下载最新版本。 在某些情况下,需要特定版本的ffmpeg。 Untrunc非常适合ffmpeg 3.3.9。 带有系统库 sudo apt-get install libavformat-dev

Unity基础(08)—— GUI

一、UnityGUI用法 【注】使用 UI 必须要在程序开头引用using UnityEngine.UI; 命名空间。 (一)UI 基本简介 1、操作 UI 时最好将界面选中箭头所指的这两项,来方便操作。此时:鼠标左键移动UI内元素,鼠标右键移动场景。同一画布下,下面的控件会覆盖上面的。 2、画布的渲染模式 Screen Space - Overlay :为2D模式,在此模式...

Jeffxu_lib的博客 2402

gui设置可编辑文本框的回调函数_Unity编辑器拓展基础知识总结

前言从事Unity编辑器拓展也有一段时间了,该记录一下常见的知识点了,也方便自己日后查阅结构Unity编辑器拓展主要分为3大类UnityEngine.GUI:可用于编辑器和运行时,需要自行计算RectUnityEditor.EditorGUI:只可用于编辑器,需要自行计算RectUnityEditor.EditorGUILayout:只可用于编辑器,自动计算Rect其中UnityEditor.Ed...

weixin_42138139的博客 402

Unity中的GUI编程

在这篇文章中我将给读者介绍Unity中的图形用户界面(GUI)编程.Unity有一个非常强大的GUI脚本API.它允许你使用脚本快速创建简单的菜单和GUI. 简介 Unity提供了使用脚本创建GUI界面的能力.在写这篇文章的时候,Unity还没有提供一套原生的可视化GUI开发工具,尽管你可能会在Unity Asset商店找到一些使用某种形式的图形化脚本编程编写GUI的工具.Autodesk S

4万+

Unity Editor Extensions – Inspectors私人定制

转载请注明出处:http://blog.csdn.net/u010019717更全的内容请看我的游戏蛮牛地址:http://www.unitymanual.com/space-uid-18602.html  这是在“Unity Editor Extension”系列的第 2 次帖子。post描述了为创建自定义inspectors面板在 Unity 编辑器的基本步骤。在该系列的下一个posts,

游戏路上的小学生 3202

Unity2D平台开发

Unity2D平台开发 ##1、2D游戏对象 ++1.1、Unity2D系统简介 ++++Unity4.3以前的版本在制作2D游戏时都是使用2D游戏插件来制作,像:2DToolKit,Uni2D等,在4.3以后的版本中,Unity发布了内置的2D游戏制作功能:2DSprite。 ++++Unity2D核心模块包括: Sprite的创建,2D动画的制作和2D物理组件的使用。 ++1.2

VRunSoftYanlz的博客 5099

Unity3D学习记录(跑酷小游戏第二阶段)

本日目标: 1.GUI相关内容复习 2.主界面GUI框架搭建 3.场景转换设置 一.GUI基础复习 (一)GUI的概述(个人总结) GUI全称为Graphical User Interface,指的是用户图形界面,在各种软件程序,特别是在游戏中,GUI无处不在(头像,文字,开始菜单按钮,血条,音量调节器…),一般是由美工人员来设计,程序员来完成交互的相关逻辑。 Unity中有GUI类,所有基本的U...

Legendaryfisher‘s Stack 1173

基于Unity的游戏开发(下)-李学明-专题视频课程

本课程是Unity游戏开发的入门课程,课程分为上、下两个部分。下部分主要介绍JavaScript脚本程序开发、动画、粒子、网络和GUI系统

xact的专栏 313

Unity编辑器扩展 - 概述

不管是TA、主程还是工具开发者都需要一定的编辑器扩展开发的基础,能够在开发的时候更便利地使用编辑器,例如快速选取Hiearchy窗口的GameObejct等等。MenuItem属性主要向主菜单和检视面板上下文菜单添加菜单项。MenuItem属性能将任何静态函数转变为菜单命令,注意:仅静态函数才能使用MenuItem属性。

qq_46056407的博客 614

Unity 2D 英文教程(www.raywenderlich.com)

Unity http://www.raywenderlich.com/category/unity Core Concepts Most of the Unity tutorials on our site are currently 2D-focused, because that can be a bit easier to get started with. We'll get

优秀技术文章收录 1761

Unity3D学习笔记-----2015-07-24(GUI---01)

GUI基础: 方法:Update(),受当前渲染效率影响,有时快有时慢,帧率会变化,Update被调用的时间间隔就发生变化,Time.deltaTime获得自上次Update以来经历的时间,只应该在Update()中使用deltaTime,OnGUI等里面不要使用 方法FixedUpdate():固定时间间隔被调用,通过Edit->ProjectSetting->time...

weixin_30684743的博客 92

unity 3D 笔记

当js脚本里有#pragma strict语句时,unity就会禁用动态类型,若程序里有var  test=GetComponent(Test);//此为动态语句,unity编译时就会报错。 声明静态变量语句: private var  xxx:Transform;然后在Awake()函数里给变量赋值  代码如下:function  Awake(){xxx=transform;} 内建数组代码

wangmengmeng99的博客 525

Getting Started with iOS Development Part1:Unity iOS Basics

Unity iOS Basics This section covers the most common and important questions that come up when starting to work with iOS. Prerequisites I've just received iPhone Developer approval from Apple,...

weixin_34050427的博客 96

(十一年)unity4.6得知Ugui中国文献-------参考-UGUI Visual Components

 大家好,我是太阳广东。 转载请注明出处:http://write.blog.csdn.net/postedit/38922399 更全的内容请看我的游戏蛮牛地址:http://www.unitymanual.com/forum.php?mod=guide&view=my 3、Visual Components 可视化组件同意非常easy的创造GU...

weixin_30279751的博客 95

unity案例入门(一)(拾取游戏)

1. 案例简述 这个案例实现一个非常简单的拾取宝物游戏,主角是一个小球,玩家通过键盘控制小球拾取全部宝物。 2. 键盘控制物体移动 private Rigidbody rd;public int force = 10; void Start () {     rd = GetComponent<Rigidbody> ();//获得物体的刚体组件 } void Update...

qq_38456196的博客 440
上一篇: Unity【入门】光源、物理、音效系统
下一篇: Unity 数据持久化【PlayerPrefs】
Angle灬魔君
博客等级 码龄7年 322粉丝 89原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值