Unity 从零开始搭建一套简单易用的UGUI小框架 基础分析篇

        一套UGUI的小框架用一篇文章显然是不够的,因为会很长很长大约有上万字,想必读者也没有那个耐心一点点读完(主要是我也懒),所以我就将其分为三个部分

基础分析篇

功能撰写与优化篇

 扩展与总结篇

        我将其都放在了同一个专栏下面,有兴趣可以在阅读页面的侧边栏找到并阅读

   我们都需要什么

  直接上图

三个部分 

我先创建出这三个类,具体实现待我细细分析

1.面板基类

 其负责所有窗口的基础行为,比如加载(第一次实例化),关闭,再打开

因此很适合抽象类
C# 面向对象补全计划 两步分清抽象类和接口-CSDN博客

public abstract class BasePanel  {//实例化窗口public void CreatWnd(string wndName,Transform canvas){}//打开窗口public void OpenWnd(){}//关闭窗口public void CloseWnd() {}
}

2.各种面板类

继承面板基类,不但有基类中的所有行为,还可以有自己的行为

public class TestPanel:BasePanel
{//在这里可以写TestWnd自己的逻辑
}

3.面板管理类

通过该类去管理所有面板,因为面板基类是被用来继承的,各种子类才是需要被控制的,当面板子类多的时候在其类中单独控制显然不太好,因此需要一个面板管理类

using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;public class PanelManager:MonoBehaviour
{private void Start() {}private void Update() {}}

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

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

相关文章

【管理】十张逻辑图说透:优秀员工,与普通员工的差别

优秀是一种习惯,如果你仔细留意,同等职位的高级员工与普通员工,在智力水平整体上差别不是很大,差别大的是工作习惯及方式。 01 琐碎工作 面对职场上的琐碎小事,很多员工会抱怨重复性工作,枯燥、无趣得不到…

学习threejs,THREE.LineDashedMaterial 虚线材质,基于gosper高斯帕曲线生成雪花动画

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.LineDashedMaterial虚…

Linux——echo-tail-重定向符

echo命令 类似printf 输出,最好加“ ” echo "hello Linux" 反引号 ‘ ’ 引用命令 echo ‘ pwd ’ 重定向符 > 和 >> > 覆盖 >> 追加 tail命令 查看文件尾部内容,追踪文件最新更改 tail -num 从尾部往上读num行&#…

linux 效率化 - 输入法 - fcitx5

安装 Fcitx5 1. 卸载 ibus 框架 由于 ibus 和 fcitx 可能会冲突,先卸载 ibus(暂未确认原因) sudo apt remove --purge ibus2. 安装 fcitx5 输入法框架 sudo apt update sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk…

【scene_manager】与 MoveIt 机器人的规划场景进行交互

scene_manager Scene Manager包是由 Robotnik 创建的 ROS 包,旨在帮助构建和与 MoveIt 机器人的规划场景进行交互。 背景信息 MoveIt 规划场景 是一个用于存储机器人周围世界的表示(外部碰撞)以及机器人自身状态(内部碰撞和当…

MySQL 执行流程是怎样的?

可以看到, MySQL 的架构共分为两层:Server 层和存储引擎层, Server 层负责建立连接、分析和执行 SQL。MySQL 大多数的核心功能模块都在这实现。存储引擎层负责数据的存储和读取。 InnoDB、MyISAM、Memory。不同的存储引擎共用一个 Server 层…

Docker新手必看:快速安装和配置BookStack在线文档系统

文章目录 前言1. 安装Docker2. Docker镜像源添加方法3. 创建并启动BookStack容器4. 登录与简单使用5. 公网远程访问本地BookStack5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定公网地址远程访问 前言 本文主要介绍如何在Linux系统使用Docker本地部署在线文档管理…

嵌入式-交叉编译链

一、Buildroot Official website: https://buildroot.org/downloads/manual/manual.html Buildroot是Linux平台上一个用于构建嵌入式Linux系统的框架,它简化了系统构建过程并实现了工作的自动化。以下是对Buildroot的详细介绍: 一、概述 …

pdf删除几个页面怎么操作?PDF页面删除的快捷方法

pdf删除几个页面怎么操作?在日常办公与学习中,PDF文件因其跨平台兼容性和良好的格式保持性而广受欢迎。然而,随着文件内容的累积,PDF文档往往会变得庞大而臃肿,不仅占用存储空间,还可能在传输时造成不便。因…

【优选算法篇】双指针的华丽探戈:深入C++算法殿堂的优雅追寻

文章目录 C 双指针详解:进阶题解与思维分析前言第一章:有效三角形的个数1.1 有效三角形的个数示例 1:示例 2:解法一(暴力求解)解法二(排序 双指针)易错点提示代码解读 第二章&#…

在线文字转语音哪个好?教你7个ai文字转语音配音的方法,别错过!

随着人工智能技术的飞速发展,ai文字转语音配音软件已经开始广泛应用,能够生成或修改出逼真的人声。这些文字转语音在线版不仅易于使用,连没有专业音频处理技术的用户也能轻松上手。通过这些软件,您只需简单输入文本或上传音频文件…

【随时随地学算法】本地部署hello-algo结合内网穿透远程学习新体验

文章目录 前言1.关于hello-algo2.安装Docker和Docker compose3.本地部署hello-algo4. hello-algo本地访问5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定Uptime Kuma公网地址 前言 本篇文章主要介绍如何在本地部署hello-algo算法学习必备项目,并结合cpolar…

PostgreSQL 17重磅登场——世界上最成功的数据库

朋友们,万众期待的 PostgreSQL 大版本发布又来了!这一次,PostgreSQL 17 带着全新的性能优化和开发者必备的新功能强势登场。与其说这是一场普通的更新,不如说它是一场专为高并发工作负载和海量数据量身打造的技术嘉年华&#xff0…

【优选算法篇】编织算法的流动诗篇:滑动窗口的轻盈之美

文章目录 C 滑动窗口详解:基础题解与思维分析前言第一章:热身练习1.1 长度最小的子数组解法一(暴力求解)解法二(滑动窗口)滑动窗口的核心思想图解分析滑动窗口的有效性时间复杂度分析易错点提示 1.2 无重复…

基于webrtc实现音视频通信

与传统通信方式不同,p2p通信的实现过程不依赖于中间服务器的信息收发,直接通过信令等完成通信过程的建立; 通过websocket实现信令服务器的建立,而通过信令来确定通信双方; webrtc通过 sdp协议来完善通信双方间协议的…

塞班和诺基亚(中古手机图,你见过哪个?)

诺基亚的塞班系统,是比较早和强大的移动操作系统了。当时还有Palm,微软的平台,但市占率都很低。 安卓从被谷歌收购那天,每个特性都预示着,未来一定会超越塞班。而塞班后来取消了生态,自己来使用&#xff0c…

mac上docker desktop 服务指南

容器化技术是指将软件代码与运行此代码所需的操作系统 (OS) 库和依赖项进行集体打包,以便创建可在任意基础设施上一致运行的单个轻量级可执行文件(称为容器),比物理机部署具备更好的可移植性和维护性,比虚拟机具有更高…

基于Spring Boot+Vue的医疗健康的便民服务平台系统的设计与实现(协同过滤算法、实时聊天)

🎈系统亮点:协同过滤算法、实时聊天; 一.系统开发工具与环境搭建 1.系统设计开发工具 后端使用Java编程语言的Spring boot框架 项目架构:B/S架构 运行环境:win10/win11、jdk17 前端: 技术:框架…

atcoder abc375

A seats 代码&#xff1a; #include <bits/stdc.h> using namespace std;int main() {int n;cin >> n;vector<char> a(n 1);for(int i 1; i < n; i ) cin >> a[i];int cnt 0;for(int i 1; i < n - 2; i ) {if(a[i] # && a[i 1…

【spring ai】java 实现RAG检索增强,超快速入门

rag 需求产生的背景介绍&#xff1a; 在使用大模型时&#xff0c;一个常见的问题是模型会产生幻觉&#xff08;即生成的内容与事实不符&#xff09;&#xff0c;同时由于缺乏企业内部数据的支持&#xff0c;导致其回答往往不够精准和具体&#xff0c;偏向于泛泛而谈。这些问题…