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抓包工具 友情提示: 录制脚本,只是一个 ...
最新文章
- UVa11292 - Dragon of Loowater(贪心)
- Android自定义XML属性以及遇到的命名空间的问题
- python程序设计与应用教程鄂大伟_鄂大伟-从零进阶的Python教学与开发之路.pdf
- 机器学习中的规则化范数(L0, L1, L2, 核范数)
- html5 微格式,HTML5 微格式和相关的属性名称
- AntiXSS v4.0中Sanitizer.GetSafeHtmlFragment等方法将部分汉字编码为乱码的解决方案
- Vertica系列: Vertica DB连接负载均衡
- Go36-13-结构体及其方法
- Sqoop 使用指南
- error: (-205:Formats of input arguments do not match) All the matrices must have the same data type
- CSS颜色代码对照表
- 变频器RS485通讯协议
- 人类的社会制度:封建制度(封建社会)
- Python L型组件填图问题(棋盘覆盖问题)
- 3DMAX到底该如何布线?
- codeforces 571A Lengthening Sticks 组合数学 插板法
- arXiv,30 岁生日快乐!它的诞生,始于一个​被塞满的邮箱
- XML Publisher 模板设计技巧
- 如何在linux上直接运行python程序
- 【转】Clique共识算法