首页 > 其他分享 >【Unity】OnGUI 代码生成UI

【Unity】OnGUI 代码生成UI

时间:2024-10-25 09:32:54浏览次数:3  
标签:代码生成 10 GUI 30 private OnGUI Unity new Rect


GUI.Box 盒子
GUI.Button 按钮
GUI.RepeatButton 按住会触发的按钮
GUI.Label 标签文本
GUI.TextField 单行文本框
GUI.TextArea 多行文本框
GUI.Toggle 单选 radio
GUI.Toolbar 单选 tab
GUI.SelectionGrid 单选 可以表格布局
GUI.HorizontalSlider 滑动条 水平方向
GUI.VerticalSlider 滑动条 垂直方向
GUI.BeginScrollView、GUI.EndScrollView() 滚动视图
GUI.HorizontalScrollbar 滚动条 水平方向
GUI.VerticalScrollbar 滚动条 垂直方向
GUI.Window 窗口
GUI.DragWindow 可以拖动,必须放在最下面一行
GUI.BeginGroup、GUI.EndGroup() 分组
GUI.changed 监视UI数据变化

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TCP : MonoBehaviour
{
    private string textFieldString = "text field 0ne line";
    private string textAreaString = "text area \n multi line";
    private bool toggleBool = true;
    private int toolbarInt = 0;
    private string[] toolbarStrings = { "Toolbar1", "Toolbar12", "Toolbar3" };
    private int selectionGridInt = 0;
    private string[] selectionStrings = { "Grid1", "Grid2", "Grid3", "Grid4" };
    private float hSliderValue = 0.0f;
    private float vSliderValue = 0.0f;
    private float hScrollbarValue;
    private float vScrollbarValue;

    private Vector2 scrollViewVector = Vector2.zero;

    private Rect windowRect = new Rect(10, 340, 120, 50);
    private bool IsShowWindow = false;

    void OnGUI()
    {
        //滚动视图 BeginScrollView EndScrollView
        scrollViewVector = GUI.BeginScrollView(new Rect(5, 5, 300, 300), scrollViewVector, new Rect(0, 0, 500, 700));

        //盒子
        GUI.Box(new Rect(10, 10, 100, 90), "Box");

        //按钮
        if (GUI.Button(new Rect(10, 110, 80, 20), "Button"))
        {
            Debug.Log("Clicked");
        }

        //标签
        GUI.Label(new Rect(10, 140, 100, 30), "Label");

        //按住会触发的按钮
        if (GUI.RepeatButton(new Rect(10, 180, 100, 30), "RepeatButton"))
        {
            Debug.Log("pressing");
        }

        //单行文本框
        textFieldString = GUI.TextField(new Rect(10, 220, 200, 30), textFieldString);

        //多行文本框
        textAreaString = GUI.TextArea(new Rect(10, 260, 200, 60), textAreaString);

        //单选 radio
        toggleBool = GUI.Toggle(new Rect(10, 330, 100, 30), toggleBool, "Toggle");

        //单选 tab
        toolbarInt = GUI.Toolbar(new Rect(10, 370, 250, 30), toolbarInt, toolbarStrings);

        //单选 可以表格布局
        selectionGridInt = GUI.SelectionGrid(new Rect(10, 410, 300, 60), selectionGridInt, selectionStrings, 2);
      
        //滑动条 水平方向
        hSliderValue = GUI.HorizontalSlider(new Rect(10, 480, 100, 30), hSliderValue, 0.0f, 10.0f);

        //监视UI数据变化 GUI.changed
        //只监视该段代码以上的 GUI
        if (GUI.changed)
        {
            Debug.Log(hScrollbarValue);
            Debug.Log(IsShowWindow);
        }

        //滑动条 垂直方向
        vSliderValue = GUI.VerticalSlider(new Rect(10, 520, 30, 60), vSliderValue, 0.0f, 10.0f);

        //滚动条 水平方向
        hScrollbarValue = GUI.HorizontalScrollbar(new Rect(10, 590, 100, 30), hScrollbarValue, 1.0f, 0.0f, 10.0f);

        //滚动条 垂直方向
        vScrollbarValue = GUI.VerticalScrollbar(new Rect(10, 630, 30, 60), vScrollbarValue, 1.0f, 0.0f, 10.0f);

        GUI.EndScrollView();


        if (GUI.Button(new Rect(10, 310, 120, 20), "Open my Window"))
        {
            IsShowWindow = true;
        }
        // 满足条件,展示窗口
        if (IsShowWindow)
        {
            windowRect = GUI.Window(0, windowRect, WindowFunction, "my Window");
        }

        //分组
        //组内元素的坐标是相对组元素的
        GUI.BeginGroup(new Rect(15, 415, 300, 300));

        GUI.Box(new Rect(0, 0, 100, 90), "Box");

        GUI.EndGroup();

    }

    //窗口内的元素定义和属性设定(只要窗口显示,就会执行)
    void WindowFunction(int windowID)
    {
        if (GUI.Button(new Rect(25, 25, 80, 20), "Close"))
        {
            IsShowWindow = false;
        }
        GUI.DragWindow(new Rect(0, 0, 120, 20));//可以拖动,必须放在最下面一行
    }
}

标签:代码生成,10,GUI,30,private,OnGUI,Unity,new,Rect
From: https://www.cnblogs.com/sitarblogs/p/18501800

相关文章

  • Lab2 中间代码生成,在Cminusf 解析器基础上,完成从语法树向中间代码的自动化翻译过程。
    本次实验需要同学们在Lab1实现的Cminusf解析器基础上,完成从语法树向中间代码的自动化翻译过程。contactmehelp-assignment实验要求¶根据 Lab1的要求,学生有两个远程仓库:upstream:课程发布实验代码的公开仓库origin:学生fork得到的私有仓库两个仓库各有3条分支(红......
  • 「Java开发指南」如何共享Spring代码生成自定义?
    本教程将引导您共享Spring代码生成自定义,共享自定义有助于在开发人员和项目之间设置编码标准,并允许通过开发人员社区扩展功能。在本教程中,您将学习如何:创建自定义项目将项目打包以便共享在另一个项目中使用打包的自定义注意:自定义Spring代码生成需要MyEclipseSpring或Bling......
  • Unity 5.6 Basic shader framework
    UnityShader参考入口VertexandfragmentshaderShader"Unlit/NewUnlitShader"{Properties{_MainTex("Texture",2D)="white"{}}SubShader{Tags{"RenderType"="Opaque&quo......
  • Mybatis-Plus代码生成模块代码
    Mybatis-Plus代码生成模块代码:importcom.baomidou.mybatisplus.annotation.IdType;importcom.baomidou.mybatisplus.generator.AutoGenerator;importcom.baomidou.mybatisplus.generator.config.DataSourceConfig;importcom.baomidou.mybatisplus.generator.config.Glo......
  • Unity3D教程:次表面散射的简单实现
    次表面散射指的是光线射入半透明材质,在内部发生散射后再透射出来的光线传播过程,考虑到有些项目会需要使用次表面散射,下面就给大家介绍下在Unity3D中次表面散射的简单实现,希望可以帮到大家。 一、前言本文旨在与大家一起探讨学习新知识,如有疏漏或者谬误,请大家不吝指出。以下内......
  • Unity常用宏
    Unity常用宏定义Define说明UNITY_EDITOR编辑器。UNITY_EDITOR_WINWindows上编辑器。UNITY_EDITOR_OSXMacOSX上编辑器。UNITY_EDITOR_LINUXLinux上编辑器。UNITY_STANDALONE_OSX专门为MacOSX(包括通用、PPC和英特尔架构)编译或执行代码。UNITY_STANDALONE_WIN专门用于......
  • unity资源自动优化
    #ifUNITY_EDITORusingSystem.Collections;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.Text;usingUnityEditor;usingUnityEngine;publicclassAutoOptimizeAssetes:UnityEditor.AssetPostprocessor{///<summary>///音频资......
  • 【Unity】发布微信小游戏-资源优化
    资源优化方向记录:1、首包场景里面使用的字体重新生成一个,只包含首包可能使用到的字符,可以将几M的字体缩到几时KB 2、减少大尺寸贴图使用,合理压缩图片格式3、使用AssetStudio等工具检查首包资源,查看包含了那部分资源,是否引用,是否过大 这里查到了一部分无使用的资源贴图......
  • PDManer 入门教程:超强代码生成工具!
    操作手册说明:https://www.yuque.com/pdmaner/docs/pdmaner-manual下载地址说明:https://gitee.com/robergroup/pdmaner/releases开源博客介绍说明:4.0最新版说明https://my.oschina.net/skymozn/blog/5515012PDman2.2.0下载地址:http://www.downza.cn/soft/278049.htmlPD......
  • unity自定义头像
    publicclassCustomHeadImage:Image{[SerializeField]privatefloatshowPercent=1f;[SerializeField]privateintsegments=100;protectedoverridevoidOnPopulateMesh(VertexHelpervh){vh.Clear();floatwid......