unity TEngine学习记录3

上一篇讲了怎么使用te框架,本篇主要学习的是UI,一个游戏百分之70%都是UI的展示效果,现在让我们继续打开te官网找到UI部分继续学习。

ui创建以及加载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我们根据文档首先打开命名规则界面,大家第一次看就知道这个是干啥的,你想使用此框架的UI部分就要根据规则命名,例如我创建了一个text,那么根据命名规则就为 m_tmp+xxx,最终命名就是m_tmp测试文字
在这里插入图片描述
在这里插入图片描述
我们继续往下学习,这一步让我们创建预制体进行动态加载,首先随便创建一些ui,然后创建一个脚本,这个脚本名称必须要和UI父级名称一致
在这里插入图片描述
在这里插入图片描述
然后选中父级物体右键选中第二个,显示成功后,双击打开创建的脚本 进行粘贴

在这里插入图片描述

在这里插入图片描述
粘贴后我们的得到了这样的脚本内容,我们加入打印方法,此方法是框架内自带log,也可以使用debug。
在这里插入图片描述
下一步让我们加载这个ui,首先打开GameApp脚本,根据官方文档提升,选中编辑器模式,输入神秘代码,
在这里插入图片描述

在这里插入图片描述
运行后发现 哎怎么回事 咋会报错,,根据报错显示缺少了canvas,那我们尝试在预制体上加入,保存后继续尝试运行。
在这里插入图片描述
在这里插入图片描述
这个时候发现已经加载成功,然后点击按钮,测试按钮是否能够使用,点击后发现没反应呀,什么情况,看了一下打印台也没有报错呀,让我们找找为啥,首先我们遇到这种情况就要先去看官方文档,如果没有写,再去看看demo里面的ui。
在这里插入图片描述
看了一下官方文档没写,那就去查看一些demo的ui,发现demo示例的上面有一个是我们缺少的组件,那我们就给他加上再试一下,加上之后就发现可以点击了
在这里插入图片描述
在这里插入图片描述
点击后打印出来结果,没用问题,证明ui加载也全部完成可以使用拉,那我们继续测试关闭方法,
在按钮功能上新增关闭方法,然后在点击测试成功,发现已经被销毁成功,那么ui的基础显示出现就完成了。

在这里插入图片描述
有的同学就要问了,这个脚本功能太少了呀,我想使用一些UI生命周期函数怎么办,例如出现执行,销毁执行,被创建的时候,被刷新的时候等等…
让我们打开脚本看一下我们继承的这个父类,按下f12进入父类中。
在这里插入图片描述
在这个父类脚本里发现了几个虚方法,有关闭的,显示的隐藏的,那么我们就可以继承父类的方法重写一下,在里面加入自己的代码,生命周期内部的循环就让框架来完成。回到我们的脚本来看看有多少个可以重写的方法,输入神秘代码 override 发现里面好多个选项,让我们把他的方法全部列出来

在这里插入图片描述
在把鼠标放到方法上的时候会显示这个方法的作用,那就让我们打印一下 看看这些方法的执行顺序
在这里插入图片描述
根据代码执行结果在调用显示UI的时候执行顺序为
在这里插入图片描述
在调用关闭时执行执行了被销毁的方法,
在这里插入图片描述
但是我有个疑问,为什么Close 没有被触发 而是调用OnDestroy,改为HideUI这个方法也没有执行,而是执行OnSetVisible方法,也就是隐藏出现的时候调用一次然后执行OnDestroy。
在这里插入图片描述
我们根据调用去看他的父级,在这个父级中他是直接调用了一下UIBase删除方法OnDestroy,然后直接删除了调用者
在这里插入图片描述
在这里插入图片描述
而HideUI方法也是直接就跳转到了close,那close就直接走了OnDestroy,因为属性被修改了所以也执行了OnSetVisible方法
在这里插入图片描述
最后我们得出的结论是调用关闭方法时,想要在关闭的时候执行某些代码,要写在
OnDestroy中,群里问了这个问题,小博君大佬回复。但是为什么那两个方法没使用,我没有深究 ,对于我们小白来说能用就行了 管他呢 有的用就行。
在这里插入图片描述
在这里插入图片描述
自此UI部分就学习完啦,可以让我们开始制作直接的UI界面咯,在这我要吐槽一下 我看群里大佬好像有一键生成脚本的小功能,et6没有自己手动创建脚本多了会有点累,哈哈哈 原谅我是小白想省事点,也没有大佬写一个。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/76854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

23种设计模式-创建型模式之单例模式(Java版本)

Java 单例模式(Singleton Pattern)详解 🌟 什么是单例模式? 单例模式确保一个类只有一个实例,并提供一个全局访问点来访问它。 🧠 使用场景 配置管理类(如读取配置文件)日志工具类…

2025能源网络安全大赛CTF --- Crypto wp

文章目录 前言simpleSigninNumberTheory 前言 大半年以来写的第一篇文章!!! simpleSignin 题目: from Crypto.Util.number import * from gmpy2 import * import osflag bxxx p next_prime(bytes_to_long(os.urandom(128))…

加密与解密完全指南,使用Java实现

文章目录 1. 加密基础知识1.1 什么是加密?1.2 加密的历史简介1.2.1 古典加密1.2.2 现代加密的起源 1.3 加密的基本概念1.3.1 密码学中的关键术语1.3.2 加密的基本原则 1.4 加密的分类1.4.1 对称加密(Symmetric Encryption)1.4.2 非对称加密&a…

十一、数据库day03--SQL语句02

文章目录 一、查询语句1. 基本查询2. 条件查询2.1 ⽐较运算符&逻辑运算符2.2 模糊查询2.3 范围查询2.4 判断空 3. 其他复杂查询3.1 排序3.2 聚合函数3.3 分组3.4 分页查询 二、回顾1. 使⽤ Navicat ⼯具中的命令列2.命令⾏基本操作步骤 提示:以下是本篇文章正文…

Flowable 与 bpmn.io@7.0 完整集成示例 Demo

Flowable 与 bpmn.io7.0 完整集成示例 Demo 下面是一个完整的前后端集成示例&#xff0c;包含前端使用 bpmn.js 7.0 和与 Flowable 后端交互的实现。 1. 后端实现 (Spring Boot Flowable) 1.1 添加依赖 (pom.xml) <dependencies><!-- Spring Boot --><depe…

ROS2 安装详细教程,Ubuntu 22.04.5 LTS 64 位 操作系统

一、完整安装流程&#xff08;推荐&#xff09; 1. 安装依赖工具 sudo apt update && sudo apt install -y software-properties-common curl gnupg2 2. 添加 ROS 2 GPG 密钥 sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /…

STM32 基本GPIO控制

目录 GPIO基础知识 ​编辑IO八种工作模式 固件库实现LED点灯 蜂鸣器 按键基础知识 ​编辑继电器 震动传感器 433M无线模块 GPIO基础知识 GPIO(General-Purpose input/output,通用输入/输出接口) 用于感知外部信号&#xff08;输入模式&#xff09;和控制外部设备&…

14.Chromium指纹浏览器开发教程之WebGL指纹定制

WebGL指纹概述 当在浏览器打开的网页上浏览内容时&#xff0c;看到的大多是平面的、静态的图像和文字。但是有时想要在网页上看到更加生动、立体的图像&#xff0c;如3D游戏、虚拟现实应用等。这时&#xff0c;就需要用到WebGL。 简单来说&#xff0c;WebGL&#xff08;Web G…

C# foreach 循环中获取索引的完整方案

一、手动维护索引变量 ‌实现方式‌&#xff1a; 在循环外部声明索引变量&#xff0c;每次迭代手动递增&#xff1a; int index 0; foreach (var item in collection) { Console.WriteLine($"{index}: {item}"); index; } ‌特点‌&#xff1a; 简单直接&#…

Android 下拉栏中的禁用摄像头和麦克风隐藏

Android 下拉栏中的禁用摄像头和麦克风隐藏 文章目录 Android 下拉栏中的禁用摄像头和麦克风隐藏一、前言二、下拉框中的禁用摄像头和麦克风隐藏实现1、设置支持属性为false2、修改代码 三、其他1、下拉栏中的禁用摄像头和麦克风隐藏小结2、 Android SensorPrivacyService ps&a…

数字后端设计 (四):时钟树综合——让芯片的「心跳」同步到每个角落

—— 试想全城的人要在同一秒按下开关——如果有的表快、有的表慢&#xff0c;结果会乱套&#xff01;时钟树综合就是给芯片内部装一套精准的“广播对时系统”&#xff0c;让所有电路踩着同一个节拍工作。 1. 为什么时钟如此重要&#xff1f; 芯片的「心跳」&#xff1a;时钟信…

华为网路设备学习-19 路由策略

一、 二、 注意&#xff1a; 当该节点匹配模式为permit下时&#xff0c;参考if else 当该节点匹配模式为deny下时&#xff1a; 1、该节点中的apply子语句不会执行。 2、如果满足所有判断&#xff08;if-match&#xff09;条件时&#xff0c;拒绝该节点并跳出&#xff08;即不…

机器学习决策树

一、何为决策树 决策树&#xff08;Decision Tree&#xff09;是一种分类和回归方法&#xff0c;是基于各种情况发生的所需条件构成决策树&#xff0c;以实现期望最大化的一种图解法。由于这种决策分支画成图形很像一棵树的枝干&#xff0c;故称决策树。它的运行机制非常通俗易…

香港服务器CPU对比:Intel E3与E5系列核心区别与使用场景

香港服务器的 CPU 配置(核心数与主频)直接决定了其并发处理能力和数据运算效率&#xff0c;例如高频多核处理器可显著提升多线程任务响应速度。在实际业务场景中&#xff0c;不同负载需求对 CPU 架构的要求存在显著差异——以 Intel E3 和 E5 系列为例&#xff0c;由于两者在性…

【Rust 精进之路之第8篇-工具赋能】深入 Cargo:依赖管理、构建配置与工作空间 (Workspace)

系列: Rust 精进之路:构建可靠、高效软件的底层逻辑 作者: 码觉客 发布日期: 2025-04-20 引言:超越构建,Cargo 是 Rust 生态的引擎 在我们的 Rust 学习之旅初期(第二篇),我们已经与 Cargo 有过初步的接触。我们学会了使用 cargo new 创建项目骨架,用 cargo build 编…

#systemverilog# 进程控制问题#(八)关于#0 问题的使用(三)

今天,我们继续研究一下上一节讨论的问题。其实,还有一个小问题,我们来探讨一下。 `timescale 1ns/10psmodule tb_top(); reg clk; reg reset;initial begin reset = 0; #10 reset = 1; #15 reset = 0; #50 $finish; endinitial beginfor(int i = 0; i < 4 ; i++)fork #…

Linux:简单自定义shell

1.实现原理 考虑下⾯这个与shell典型的互动&#xff1a; [rootlocalhost epoll]# ls client.cpp readme.md server.cpp utility.h [rootlocalhost epoll]# ps PID TTY TIME CMD 3451 pts/0 00:00:00 bash 3514 pts/0 00:00:00 ps ⽤下图的时间轴来表⽰事件的发⽣次序。其中时…

PLSQL语法入门--PL/SQL 基础详解

PL/SQL 基础详解 PL/SQL&#xff08;Procedural Language for SQL&#xff09;是 Oracle 数据库中的一种过程式语言&#xff0c;它扩展了 SQL 的功能&#xff0c;允许开发者编写复杂的程序逻辑。 一、匿名块 解释 匿名块是 PL/SQL 的基本执行单位&#xff0c;它是一段独立的…

Oracle--用户管理

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 用户管理在 Oracle 数据库中至关重要。一个服务器通常只运行一个 Oracle 实例&#xff0c;而一个 Oracle 用户代表一个用户群&#xff0c;他们通过该用…

UOS+N 卡 + CUDA 环境下 X86 架构 DeepSeek 基于 vLLM 部署与 Dify 平台搭建指南

一、文档说明 本文档是一份关于 DeepSeek 在X86架构下通vLLM工具部署的操作指南&#xff0c;主要面向需要在UOSN卡CUDA环境中部署DeepSeek的技术人员&#xff0c;旨在指导文档使用者完成从 Python 环境升级、vLLM 库安装、模型部署到 Dify 平台搭建的全流程操作。 二、安装Pyt…