【Unity每日一记】FairyGUI为什么能自动生成代码,它的好处是什么

在这里插入图片描述


👨‍💻个人主页:@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创

👨‍💻 收录于专栏unity每日一记

👨‍💻 本文由 秩沅 原创

👨‍💻 专栏交流🧧
🟥✨Unity100个实战基础✨🟥🎁
🟦✨ Unity100个精华一记✨🟦🎁
🟩✨ Unity50个demo案例教程✨🟩🎁
🟨✨ Unity100个精华细节BUG✨🟨🎁

在这里插入图片描述

在这里插入图片描述


FGUI的组件类拓展功能


文章目录

    • FGUI的组件类拓展功能
    • 🎶组件类拓展
      • 初始版本
      • <font color=red>优化版本
      • 注意
    • 🅰️系统路线学习点击跳转




🎶组件类拓展


在这里插入图片描述

  • 专门写一个类去封装面板逻辑

在这里插入图片描述

初始版本

只用于显示面板的代码

  GRoot.inst.SetContentScaleFactor(1920, 1080, UIContentScaler.ScreenMatchMode.MatchHeight);//横屏游戏适应高度//包和依赖包UIPackage package = UIPackage.AddPackage("UI/ReviewButler");foreach (var item in package.dependencies){UIPackage.AddPackage(item["name"]);}GComponent view = UIPackage.CreateObject("ReviewButler", "SelectPanel").asCom;GRoot.inst.AddChild(view);

用于显示面板,并进行逻辑操作的代码

  //设置适配相关GRoot.inst.SetContentScaleFactor(1920, 1080, UIContentScaler.ScreenMatchMode.MatchHeight);//横屏游戏适应高度//包和依赖包UIPackage package = UIPackage.AddPackage("UI/ReviewButler");foreach (var item in package.dependencies){UIPackage.AddPackage(item["name"]);}// GComponent view = UIPackage.CreateObject("ReviewButler", "SelectPanel").asCom;
//  GRoot.inst.AddChild(view);UIObjectFactory.SetPackageItemExtension("ui://ReviewButler/SelectPanel", typeof(SelectPanel));//由于我们注册了 所以我们在创建该面板时 他会自动和自定义类进行关联 用自定义类来装载它SelectPanel panel = UIPackage.CreateObject("ReviewButler", "SelectPanel").asCom as SelectPanel;GRoot.inst.AddChild(panel);
using FairyGUI;
using FairyGUI.Utils;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;//-------------------------------
//-------功能: 选择面板
//-------创建者:         
//------------------------------public class SelectPanel : GComponent 
{public GButton btnTest;public override void ConstructFromXML(XML xml) //相当于构造函数{base.ConstructFromXML(xml);btnTest = this.GetChild("n6").asButton; //该名字是FGUI编辑器中的名字btnTest.onClick.Add(() =>{Debug.Log("点了按钮");});}
}

优化版本

  • 使用FGUI中的代码发布功能(可以帮助生成脚本,自动添加声明和找对象的功能)

所以此时不需要自己创建面板脚本了(如SelectPanel),因为FGUI编辑器会自动生成,如下

using FairyGUI;
using FairyGUI.Utils;
using UnityEngine;namespace ReviewButler
{public partial class SelectPanel : GComponent{public Controller m_role;public GImage m_n9;public GTextField m_n3;public roleBtu1 m_n1;public roleBtu2 m_n4;public roleBtu3 m_n5;public EnterBtu m_n6;public const string URL = "ui://faogax6sppnc70";public static SelectPanel CreateInstance(){return (SelectPanel)UIPackage.CreateObject("ReviewButler", "SelectPanel");}public override void ConstructFromXML(XML xml){base.ConstructFromXML(xml);m_role = GetController("role");m_n9 = (GImage)GetChild("n9");m_n3 = (GTextField)GetChild("n3");m_n1 = (roleBtu1)GetChild("n1");m_n4 = (roleBtu2)GetChild("n4");m_n5 = (roleBtu3)GetChild("n5");m_n6 = (EnterBtu)GetChild("n6");}}
}

那么此时的代码如下:就可以显示并进行逻辑操作了

      //设置适配相关GRoot.inst.SetContentScaleFactor(1920, 1080, UIContentScaler.ScreenMatchMode.MatchHeight);//横屏游戏适应高度//包和依赖包UIPackage package = UIPackage.AddPackage("UI/ReviewButler");foreach (var item in package.dependencies){UIPackage.AddPackage(item["name"]);}ReviewButlerBinder.BindAll();SelectPanel panel = SelectPanel.CreateInstance();

注意


  • 来自FGUI的组件类扩展是很方便,但是,如果你在FGUI中修改了组件的名字,并点击发布后,生成的脚本会覆盖原来的脚本,导致代码丢失,所以这点非常重要!
  • 注意此时按钮的名字并不是原本按钮的组件名而是,面板中的按钮名
    在这里插入图片描述
  • 如果此时勾选下图所示,就不会发布生成如上图所示例如n6的代码
    在这里插入图片描述

🅰️系统路线学习点击跳转


👨‍💻 Unity程序基础学习路线🧧
⭐【Unityc#专题篇】之c#进阶篇】🎁
⭐【Unityc#专题篇】之c#核心篇】🎁
⭐【Unityc#专题篇】之c#基础篇】🎁
⭐【Unity-c#专题篇】之c#入门篇】🎁
【Unityc#专题篇】—进阶章题单实践练习🎁
⭐【Unityc#专题篇】—基础章题单实践练习🎁
【Unityc#专题篇】—核心章题单实践练习🎁

你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!


在这里插入图片描述


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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

kali中安装zsteg教程

1、下载文件 git clone http://www.github.com/zed-0xff/zsteg 2、第一步需要保证虚拟机是有网络的&#xff0c;不然无法克隆 3、可以将网络设置成如下后重启&#xff0c;访问百度看看能不能访问&#xff0c;若可以访问&#xff0c;则进行下一步 4、查看源&#xff0c;删除源&…

OpenAI把GPT-4原始版给了他们:研究不微调只靠提示词能走多远

除了OpenAI自己&#xff0c;居然还有别人能用上GPT-4-Base版&#xff1f;&#xff1f; 也就是未经微调的预训练版&#xff0c;还不会对话聊天&#xff0c;只会补全句子的模型。 EPFL&#xff08;瑞士洛桑联邦理工&#xff09;团队申请到了访问权限&#xff0c;用于研究**“上…

逆向分析-Ollydbg动态跟踪Ransomware.exe恶意锁机程序

1.认识Ollydbg Ollydbg是一个新的动态追踪工具&#xff0c;将IDA与SoftICE结合起来的思想&#xff0c;Ring 3级调试器&#xff0c;非常容易上手&#xff0c;己代替SoftICE成为当今最为流行的调试解密工具了。同时还支持插件扩展功能&#xff0c;是目前最强大的调试工具。 Oll…

我的创作纪念日(1825天)

Ⅰ、机缘 1. 记得是大一、大二的时候就听学校的大牛说&#xff0c;可以通过写 CSDN 博客&#xff0c;来提升自己的代码和逻辑能力&#xff0c;虽然即将到了写作的第六个年头&#xff0c;但感觉这句话依旧受用; 2、今年一整年的创作都没有停止&#xff0c;本年度几乎是每周都来…

FuTalk设计周刊-Vol.037

&#x1f525;AI漫谈 热点捕手 1、最全攻略&#xff01;OpenAI 发布 GPT-4 使用指南&#xff0c;所有干货全在这 OpenAI 官方发布了 GPT-4 使用指南 Prompt engineering&#xff0c;这里面记载了驾驭 GPT-4 的六大策略。 链接https://www.ifanr.com/1570792 2、Midjourney V…

平安科技智能运维案例

平安科技智能运维案例 在信息技术迅速发展的背景下&#xff0c;平安科技面临着运维规模庞大、内容复杂和交付要求高等挑战。通过探索智能运维&#xff0c;平安科技建立了集中配置管理、完善的运营管理体系和全生命周期运维平台&#xff0c;实施了全链路监控&#xff0c;显著提…

2024年【制冷与空调设备运行操作】考试内容及制冷与空调设备运行操作考试报名

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 制冷与空调设备运行操作考试内容考前必练&#xff01;安全生产模拟考试一点通每个月更新制冷与空调设备运行操作考试报名题目及答案&#xff01;多做几遍&#xff0c;其实通过制冷与空调设备运行操作新版试题很简单。…

布鲁可三年巨亏后终于转正:IP授权风险或影响重大,还存对赌协议

《港湾商业观察》施子夫 凭借塑料积木玩具&#xff0c;丹麦玩具品牌“乐高LEGO”在全世界玩具制造厂商中的影响力自然不必多说。近期另一家被冠以“中国版乐高”的布鲁可集团有限公司&#xff08;以下简称&#xff0c;布鲁可&#xff09;准备上市&#xff0c;也受到外界颇多关…

笔记 | 用go写个docker

仅作为自己学习过程的记录&#xff0c;不具备参考价值 前言 看到一段非常有意思的话&#xff1a; 很多人刚接触docker的时候就会感觉非常神奇&#xff0c;感觉这个技术非常新颖&#xff0c;其实并不然&#xff0c;docker使用到的技术都是之前已经存在过的&#xff0c;只不过旧…

数字人系统源码开发攻略,小白也能轻松上手的部署方案来了!

随着数字人应用场景的不断拓展&#xff0c;数字人广阔的应用前景和庞大的市场需求逐渐展现在人们眼前。但是&#xff0c;由于专业背景的缺乏&#xff0c;许多想要开发数字人系统的创业者们都只能被迫成为旁观他人瓜分这块大蛋糕。在此背景下&#xff0c;各式各样的数字人系统源…

visual studio下载安装

1、下载网址&#xff1a;下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux 选择下载“社区” 2、下载好之后&#xff0c;安装在非系统盘上&#xff0c;在下面这个界面上&#xff0c;大家可以把自己需要的都勾选上&#xff0c;然后更改安装地址 安装完即可

爬虫-模拟登陆博客

import requests from bs4 import BeautifulSoupheaders {user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36 } # 登录参数 login_data {log: codetime,pwd: shanbay520,wp-submit: …

联动联调,科学调度——探索智慧水务(中水)管理平台的无人值守新路径!

项目背景 随着中国城市化的进程、城市规模以及对应的城市人口数量的增长&#xff0c;社会生产生活过程中产生的污水问题日益严重。如何实现污水再生、变废为宝显得尤为重要。 近年来&#xff0c;某市不断拓展与探索城市中水利用&#xff0c;让经无害化处理后的中水&#xff0…

计蒜客:C10 第四部分:深度优先搜索基础 踏青

【C代码】 #include<bits/stdc.h> using namespace std; int n,m,ans0; char maze[110][110]; bool vis[110][110]; int dir[4][2]{{-1, 0}, {1, 0}, {0, -1}, {0, 1}}; bool check(int x,int y){return x>1&&y>1&&x<n&&y<m&&a…

癫狂头歌动态规划之跳跃问题Python

第一关跳跃问题 这里我照着图片的代码敲市过不去&#xff0c;真够癫狂的 def CollectValues():n, m map(int, input().split()) #获得输入信息p [list(map(int, input().split())) for i in range(n)] #获得输入信息dp [[-10000] * m for i in range(n)] #初始化动态规划数…

react用ECharts实现组织架构图

找到ECharts中路径图。 然后开始爆改。 <div id{org- name} style{{ width: 100%, height: 650, display: flex, justifyContent: center }}></div> // data的数据格式 interface ChartData {name: string;value: number;children: ChartData[]; } const treeDep…

百万比特通用光量子计算系统怎样造出来?PsiQuantum 最新论文揭密

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨浪味仙/王珩 排版丨沛贤 深度好文&#xff1a;2500字丨8分钟阅读 摘要&#xff1a;PsiQuntum公司是全球总融资额和估值最高的量子计算公司&#xff0c;但向来对其通用光量子技术的进展讳莫…

深圳职工餐厅安全检测新策略:自动可燃气体报警器的作用

在现代化的都市生活中&#xff0c;安全问题一直备受关注。 对于深圳众多职工餐厅来说&#xff0c;如何确保餐厅内的燃气使用安全&#xff0c;防止因可燃气体泄露而引发的火灾事故&#xff0c;成为了一项重要的挑战。 近年来&#xff0c;自动可燃气体报警器以其高度的灵敏度和…

2024 Idea最新激活码

idea的激活与安装 操作如下&#xff1a; ① 打开网站&#xff1a;https://web.52shizhan.cn 切换到&#xff1a;激活码&#xff0c;点击获取 ② 这个时候就跳转到现成账号页面&#xff0c;点击获取体验号&#xff0c;如图 ③ 来到了获取现成账号的页面了。输入你的邮箱账号即…

量化交易实操指南:从模拟回测到实盘交易的全流程揭秘!

什么是量化交易&#xff1f; 量化交易是一种利用数学、统计学和计算机科学方法&#xff0c;通过构建模型和算法来进行交易决策的方式。它的核心思想是通过系统性的分析和处理大量的历史数据、市场信息和交易规则&#xff0c;以发现市场中的规律和模式&#xff0c;并以此为依据…