Unity—UGUI

article/2025/10/6 14:39:40

每日一句:读数、学习 去更远的地方,才能摆脱那些你不屑一顾的圈子

目录

InputFiled输入框

例:用户名和密码

Toggle组件

案例:冷却效果


InputFiled输入框

 

Text Component 输入文本组件

Text输入内容

Character Limit 输入字符限制,0不限制

Content Type输入文本内容类型

{Standard 允许所有输入

Autocorrected

Integer Number十进制

Alphanumeric字母A-Z,a-z,0-9

Name 强制每个单词首字母大写

Email Address

Password所有输入将其显示为星号

Pin允许整数将其显示为星号

}

Placeholder提示本文组件

Caret Blink Rate光标闪烁频率

Caret Width光标宽度

Custom Caret Color是否自定义光标颜色

Selection Color选中文本的颜色

例:用户名和密码

 

public class Loading : MonoBehaviour{public InputField username;public InputField passward;public GameObject tip;public GameObject message;public void LoadNext(){string user = username.text;string pass = passward.text;if(user=="gloriously"&&pass=="20030126"){SceneManager.LoadScene(1);message.SetActive(true);}else{tip.SetActive(true);//若输入错误提示信息,两分钟后消失StartCoroutine(Hidetip());}}IEnumerator Hidetip(){yield return new WaitForSeconds(2);tip.SetActive(false);}}

Toggle组件

切换按钮

把两个Toggle放在一个空物体里,在空物体上加Toggle Group组件

 

 

Slider——Image Type

{Simple 会等比例被拉伸

slider 边框不会被拉伸(先将图片变为九宫格切片,有边框才会受影响)

Tiled平铺

Filled填充[主要是形式]}

Outline组件 ——边框

Shadow组件——给字体添加阴影

案例:冷却效果

 

public class Skill : MonoBehaviour{float coldTime = 2;//冷却时间private float timer = 0;private bool isCold = false;private Image coldMask;// Start is called before the first frame update//两张图片形成父子物体,子物体:攻击冷却图片,父物体挂载buttonvoid Start(){coldMask = transform.Find("ColdMask").GetComponent<Image>();}// Update is called once per framevoid Update(){if(isCold){timer += Time.deltaTime;coldMask.fillAmount = (coldTime - timer) / coldTime;}if(timer>coldTime){isCold = false;coldMask.fillAmount = 0;timer = 0;}}public void OnSkillClick(){if(isCold==false)//点击按钮开始攻击,开始缓解冷却,{isCold = true;timer = 0;coldMask.fillAmount = 1;//完全冷却}}}

Mask遮罩  需要框的Image有颜色,想要不显示背景,show Mask Graphic不勾

控制滑动列表到最近的页面,当拖拽结束那一刻,检测位置离那个页面近

 

private ScrollRect scroll;

    private float[] pagePosition = new float[4] { 0, 0.33f, 0.66f, 1 };

    void Start()

    {

        scroll = GetComponent<ScrollRect>();       

    }

    private float targetPosition = 0;

    private bool isMove = false;

    public Toggle[] toggleArray;

    public void EndDragDemo()

    {

        float currentPosition = scroll.horizontalNormalizedPosition;

        int index = 0;

        float offset = currentPosition - pagePosition[0];

        for (int i = 1; i < 4; i++)

        {

            if (Mathf.Abs(currentPosition - pagePosition[i]) < offset)

            {

                index = i;

                offset = Mathf.Abs(currentPosition - pagePosition[i]);

            }

        }

        Debug.Log("aaa");

        targetPosition = pagePosition[index];

        isMove = true;

        toggleArray[index].isOn = true;

        //scroll.horizontalNormalizedPosition = pagePosition[index];

    }

    void Update()

    {

        if (isMove)

        {

            scroll.horizontalNormalizedPosition = Mathf.Lerp(scroll.horizontalNormalizedPosition, targetPosition, Time.deltaTime * 6);

            if (Mathf.Abs(scroll.horizontalNormalizedPosition - targetPosition) < 0.001f)

            {

                isMove = false;

                scroll.horizontalNormalizedPosition = targetPosition;

            }

        }

    }

    public void MoveTopage1(bool isOn)

    {

        if (isOn)

        {

            isMove = true;

            targetPosition = pagePosition[0];

        }

    }

    public void MoveTopage2(bool isOn)

    {

        if (isOn)

        {

            isMove = true;

            targetPosition = pagePosition[1];

        }

    }

    public void MoveTopage3(bool isOn)

    {

        if (isOn)

        {

            isMove = true;

            targetPosition = pagePosition[2];

        }

    }

    public void MoveTopage4(bool isOn)

    {

        if (isOn)

        {

            isMove = true;

            targetPosition = pagePosition[3];

        }

}

通过页面按钮控制滚动列表跳转

 


http://chatgpt.dhexx.cn/article/xhyLP6Mp.shtml

相关文章

【Unity3D】UGUI概述

1 UGUI 与 GUI 区别 GUI控件 在编译时不能可视化&#xff0c;并且界面不太美观&#xff0c;在实际应用中使用的较少。UGUI 在编译时可视化&#xff0c;界面美观&#xff0c;实际应用较广泛。 2 Canvas 渲染模式&#xff08;Render Mode&#xff09; Screen Space - Overlay&a…

怎样使用UGUI

什么是 UGUI UGUI 是 Unity 自带的一套 GUI 系统&#xff0c;含有基本的一些 UI 控件。 UGUI 控件有哪些&#xff1f; 我们常用的有 Canvas&#xff0c;Text&#xff0c;Image&#xff0c;Button&#xff0c;Toggle&#xff0c;Slider&#xff0c;Scroll Bar&#xff0c;Scroll…

Unity3D UGUI系列之合批

目录 1. 什么是UGUI的合批1.1 准备工作1.2 批处理1.3 批处理的意义1.4 UGUI的合批 2 分析工具的使用2.1 Frame Debugger的使用2.2 Profiler-UI的使用 3 UGUI合批规则3.1 UGUI合批初体验3.2 UGUI合批被打断初体验3.3 UGUI合批规则详解3.3.1 合批规则3.3.2 合批规则示例13.3.3 合…

unity中NGUI与UGUI的区别?

什么是UI? UI即User Interface&#xff08;用户界面&#xff09;的简称。泛指用户的操作界面&#xff0c;UI设计主要指界面的样式&#xff0c;美观程度。而使用上&#xff0c;对软件的人机交互、操作逻辑、界面美观的整体设计则是同样重要的另一个门道。好的UI不仅是让软件变得…

【UGUI】UGUI入门,系统介绍

Unity 2017.1.0f3 常用的UI控件 添加UI控件 创建UI控件时&#xff0c;如果没有Canvas和EventSystem系统会自动创建。 Canvas是画布&#xff0c;是所有UI控件的根类&#xff0c;所有UI控件都必须在Canvas上绘制。如果UI控件不在Canvas下&#xff0c;将无法正常渲染显示。 Eve…

UGUI框架

记录最新学习的UGUI框架。 UIType类保存面板基本信息&#xff08;名称、路径&#xff09;&#xff0c;该面板会在具体的面板类里面&#xff08;StartPanel&#xff09;进行实例化。 public class UIType {private string name;public string Name { get > name; }private …

UGUI的简单理解

1.Canvas(画布) UGUI中几乎所有的组件都要在Canvas下搭建 2.EventSysteam(事件系统) 如果进行UI搭建的时候,缺少或删除了EventSysteam的话会导致UGUI中的组件无法交互,无法发生事件. 3.Panel 平时我们进行UI工程搭建的时候,我们都会先创建Panel面板,创建Panel面板的…

UGUI底层

关于UGUI底层的小知识---上 (转雨松momo) 1 | UGUI原理简述 1.1 原理 首先得生成显示UI用的Mesh&#xff0c;如图1-1所示&#xff0c;一个矩形的Mesh&#xff0c;由4个顶点&#xff0c;2个三角形组成&#xff0c;每个顶点都包含UV坐标&#xff0c;如果需要调整颜色&#xf…

UGUI组件详解

什么是 UGUI UGUI 是 Unity 自带的一套 GUI 系统&#xff0c;含有基本的一些 UI 控件。 UGUI 控件有哪些&#xff1f; 我们常用的有 Canvas&#xff0c;Text&#xff0c;Image&#xff0c;Button&#xff0c;Toggle&#xff0c;Slider&#xff0c;Scroll Bar&#xff0c;Scroll…

【Unity基础】ugui的基础知识篇

文章目录 前言一、常用用可视化控件1、Image2、RawImageI.和Image的区别 3、Text组件4、画布是怎么渲染出可视化UI的&#xff1f;II.这里整理一下渲染相关的关系图&#xff0c;如下: 5、关于画布的布局重构 二、Button交互组件1、Button组件的源码以及使用方式2、Button组件是如…

Unity之UGUI详解

UGUI 文章目录 UGUI六大基础组件概述Canvas对象上依附的&#xff1a;CanvasCanvas ScalerGraphic RaycasterRectTransform EventSystem对象上依附的&#xff1a;EventSystemStandalone Input Module Canvas画布组件Screen Space overlayScreen Space CameraWorld Space CanvasS…

using namespace std

整体认识 —— 解决命名冲突 一个简单的C程序&#xff1a; #include<iostream>using namespace std;int main(int argc,char **argv) {cout<<"hello world !"<<endl;system("pause"); // 让程序暂停,按任意键继续 注意&#xff0c;…

K8S:Namespace详解

Namespace概念 Kubernetes 支持多个虚拟集群&#xff0c;它们底层依赖于同一个物理集群&#xff0c;这些虚拟集群被称为命名空间。 命名空间 namespace 是 k8s 集群级别的资源&#xff0c;可以给不同的用户、租户、环境或项目创建对应的命名空间。 在创建pod的时候可以指定p…

TypeScript中的命名空间—namespace

TypeScript中的命名空间—namespace 什么是命名空间&#xff1f;在很多语言中都有这个概念。 命名空间是为了解决命名冲突。比如你在代码的不同地方&#xff0c;都定义了同名但是不同含义的函数、变量等&#xff0c;虽然不提倡这么做&#xff0c;但是有时候需要这么做。那怎么…

c++ 中的 namespace 用法

多人代码的整合&#xff0c;namespace 还是非常有用的。可以很轻松的避免变量与函数一样的命名 1. namespace 在 单个头文件 中使用 下面给一个简单示例演示命名空间和自定义头文件的使用&#xff0c;代码如下&#xff1a; compare.h&#xff1a; namespace compare{double…

【C++】命名空间(namespace) 以及理解using namespace std

命名空间 1.命名空间使用的背景1.背景 2.命名空间的定义&#xff08;namespace&#xff09;2.1正常的定义2.2 命名空间可以嵌套定义2.3允许命名空间相同 3.域作用限定符&#xff08;&#xff1a;&#xff1a;&#xff09;和命名空间的使用3.1域作用限定符&#xff08;&#xff…

C++ namespace

C namespace 一、什么是 namespace1.1 C语言标识符作用域的缺陷1.2 namespace作用 二、namespace的定义2.1 命名空间可以嵌套定义小技巧 2.2 可定义重复的命名空间 三、namespace使用3.1 命名空间名称作用域限定符使用3.2 using将命名空间中成员引入3.3 使用using namespace将整…

Linux namespace概述

操作系统通过虚拟内存技术&#xff0c;使得每个用户进程都认为自己拥有所有的物理内存&#xff0c;这是操作系统对内存的虚拟化。操作系统通过分时调度系统&#xff0c;每个进程都能被【公平地】调度执行&#xff0c;即每个进程都能获取到CPU&#xff0c;使得每个进程都认为自己…

C++ | 你真的了解namespace吗?

文章目录 一、前言二、命名冲突三、命名空间1、域作用限定符2、命名空间的概念&#x1f449;示例1&#x1f449;示例2 3、命名空间的定义4、命名空间的使用① 指定命名空间访问【做项目】② 使用using部分展开【做项目】③ 使用using namespace全局展开【日常练习】 5、小结 解…

using namespace std 介绍

using namespace std&#xff1b; 首先我们要知道&#xff0c;这句代码的意思是&#xff1a;打开标准命名空间&#xff0c;即告诉编辑器我们将要使用名字空间std中的函数或者对象。 using 意思就是正在使用的意思。namespace 的引用是为了解决不同space中命名相同导致命名冲突…