Unity之UGUI脚本自动生成
博客迁移
个人博客站点,欢迎访问,www.jiingfengji.tech
正文
在做UI开发工作中,往往会有很多重复工作,比如用FindChild找可交互的ui呀,比如给这些ui加Listener等,那么这里提供一种思路,通过给UI中需要加交互事件的ui物体加上标记脚本,然后就可以根据这些标记得出相对于UIRoot的路径,得到路径就可以通过FindChild得到交互UI物体,然后给他们加上事件监听即可。
先定义一个枚举
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public enum UIType
{UIRoot,Transform,Image,RawImage,Button,Toggle,Slider,Scrollbar,Dropdown,InputField,ScrollRect,
}
然后上一个效果图来给UI物体加标记
从图中可以看出,加完标记之后,生成代码。
先看示例的UIDialog
其中图中两一个Image,一个InputFiel,一个Button,一个Toggle
生成的代码如下:
using UnityEngine;
using UnityEngine.UI;
using System;public class TestDialog : MonoBehaviour
{private Image m_Image = null;private InputField m_UserNameInputField = null;private Button m_CloseButton = null;private Toggle m_SexToggle = null;void Awake(){m_Image = transform.FindChild("Image").GetComponent<Image>();m_UserNameInputField = transform.FindChild("Image/UserNameInputField").GetComponent<InputField>();m_CloseButton = transform.FindChild("CloseButton").GetComponent<Button>();m_SexToggle = transform.FindChild("SexToggle").GetComponent<Toggle>();}void Start(){InitUIEvent();}private void InitUIEvent(){m_UserNameInputField.onEndEdit.AddListener(OnUserNameInputFieldEndEdit);m_CloseButton.onClick.AddListener(OnCloseButtonClick);m_SexToggle.onValueChanged.AddListener(OnSexToggleValueChanged);}private void OnUserNameInputFieldEndEdit(string arg0){throw new NotImplementedException();}private void OnCloseButtonClick(){throw new NotImplementedException();}private void OnSexToggleValueChanged(bool arg0){throw new NotImplementedException();}
}
生成代码的逻辑比较长,就不放出来了,原理就是按照规范拼StringBuilder,包括变量名前缀,函数名规范等,以及插入等长度的空格代替tab、还有换行使得代码对其等等。
####这个只是提供一种思路,Demo以及源码会放在下面,大家有兴趣可以参考一下,转载请注明原文地址。
Demo源码下载地址:
链接:http://pan.baidu.com/s/1i4YbIML 密码:uyg9
下载链接如有失效,请即时联系
以上知识分享,如有错误,欢迎指出,共同学习,共同进步
Unity之UGUI脚本自动生成相关推荐
- python生成yaml_使用python脚本自动生成K8S-YAML的方法示例
1.生成 servie.yaml 1.1.yaml转json service模板yaml apiVersion: v1 kind: Service metadata: name: ${jarName} ...
- python生成yaml_使用python脚本自动生成K8S-YAML
使用python脚本自动生成K8S-YAML 1.生成 servie.yaml 1.1.yaml转json service模板yaml apiVersion: v1 kind: Service met ...
- NSG2-一个很好用的ns2的tcl脚本自动生成软件
NSG2-一个很好用的ns2的tcl脚本自动生成软件 来源:Linux社区 作者:fzxy002763 NSG2-一个很好用的ns2的tcl脚本自动生成软件,NSG2.rar,一个很好的java写的t ...
- Polyworks脚本开发学习笔记(二二)-调取视角用脚本自动生成报告
Polyworks脚本开发学习笔记(二二)-调取视角用脚本自动生成报告 Polyworks中,3D场景的视图可用标准视角及等轴侧视角.项目视角等方式调用,也可以用txt格式保存下来调用,如果以脚本的形 ...
- Orcad下使用TCL脚本自动生成导线、网络标号和off page
Orcad是一个很优秀的原理图工具,但是手工画批量导线和网络标号的时候(比如:RGB的信号线,DDR/FLASH的地址线),比较麻烦,修改也麻烦.所以这里介绍了使用TCL脚本自动生成导线.网络标号和o ...
- matlab之用m脚本自动生成exe文件
matlab之用m脚本自动生成exe文件 文章目录 matlab之用m脚本自动生成exe文件 0.前言 1.生成exe文件分两种情况 2.生成文件在自己电脑上运行 3.生成文件在其他电脑上运行 0.前 ...
- [Unity编辑器] 根据图片自动生成动画
根据自己的情况 仿照 雨松MOMO 写了一个自动生成动画的脚本 原地址 http://www.xuanyusong.com/archives/3243 代码: using UnityEngine; u ...
- UI架构设计五 — DTA文件使用脚本自动生成
上一篇文章讲到,我们可以使用BmpCvST.exe软件手动把png文件生成对应的DTA文件. 如果是简单的生成几张图片,倒也无所谓,但是当你开发项目的时候,可能一个项目下来,会有几百张图片需要生成,所 ...
- httprunner接口测试脚本自动生成
har2case可以将.har文件转化成yaml格式或者json格式的httprunner的脚本文件,生成.har格式文件可以借助fiddler或Charles抓包工具 友情提示: 录制脚本,只是一个 ...
最新文章
- mysql innodb引擎丢失_【MySQL】InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据...
- Symbian编程总结-图形图像篇-打开非Bitmap类型的图像
- 6-Qt6对象树及内存管理
- boost::local_time模块实现自纪元以来的秒数的测试程序
- java数据结构有哪些_java有哪些数据结构?
- ECOMP已经开源成功,这次ATT准备推动白盒路由操作系统DNOS
- leetcode第一刷_Binary Tree Zigzag Level Order Traversal
- hive分区用2个字段有何限制_[特性]Hive动态分区功能使用
- django restframwork 教程之authentication权限
- 查看虚拟机cpu型号_KVM虚拟机,如何设置虚拟机的CPU型号与物理机是一样的
- vue 自定义组件使用v-model
- 微信小程序云开发教程-微信小程序的JS基础-js文件基本结构与生命周期
- 求职者:推销自己的四大妙招
- js属性-map set
- CSDN-Markdown语法集锦
- IT界最伟大的十位人物
- TPTP测试项目的性能
- javax.net.ssl.SSLPeerUnverifiedException: Hostname xxx not verified
- 【笔记】在 Windows 中制作 Ubuntu 系统的USB启动盘
- then里面调用 await