Unity 自动生成组件索引类工具


需求由来

我们在写UI类时 需要获取预设中的组件

joystick = transform.Find("joystick");
background = transform.Find("joystick/background");
stick = transform.Find("joystick/stick");
direction = transform.Find("joystick/direction");

缺点

  1. 需要手写代码
  2. 修改游戏对象名字需要手动修改代码
  3. 修改层级需要手动修改代码
  4. 手写容易出问题

解决方案

使用编辑器自动生成如下索引类

public class MianBase : MonoBehaviour
{
protected UISprite Left_Sprite;
protected UITexture Right_Texture;
protected UISprite Bottom_Sprite;
protected UILabel Top_Label; public void InitBase()
{
Left_Sprite = transform.Find("Left/Sprite").GetComponent<UISprite>();
Right_Texture = transform.Find("Right/Texture").GetComponent<UITexture>();
Bottom_Sprite = transform.Find("Bottom/Sprite").GetComponent<UISprite>();
Top_Label = transform.Find("Top/Label").GetComponent<UILabel>();
}
}

然后UI代码继承这个类

就可以很方便的使用这些组件


工具制作

效果如图所示

工具制作核心思想

  • 选中预设父级
  • 迭代获取子对象和子对象上的脚本
  • 索引变量名可自动填充可自定义
  • 序列化类

工具使用方法

  1. 选择预设父级
  2. 左上角菜单栏ZouQiang/UI/创建预设索引类(快捷键Ctrl+Alt+1)打开窗口
  3. 自定义变量名或自动填充变量名
  4. 点击生成代码按钮

如果您有更好的解决方案,请一定不吝赐教,感谢不尽!

源码:https://github.com/QiangZou/ZouQiang/blob/master/Assets/ZouQiang/Editor/AssetBundlesTool.cs

Unity 自动生成组件索引类工具的更多相关文章

  1. Android 自动生成的R类

    资源文件的使用分为在代码中使用和在其他资源文件中引用该资源文件.在我们编译一个Android应用时,Android会自动生成一个R类,在该类中根据不同的资源类型又生成了相应的内部类,该类包含了系统中使 ...

  2. 使用maven根据JSON文件自动生成Java POJO类(Java Bean)源文件

    根据JSON文件自动生成Java POJO类(Java Bean)源文件 本文介绍使用程序jsonschema2pojo来自动生成Java的POJO类源文件,本文主要使用maven,其他构建工具请参考 ...

  3. Mysql逆向工程效率神器之使用IDE自动生成Java实体类

    Mysql逆向工程效率神器之使用IDE自动生成Java实体类 简介:实战使用IDE根据Mysql自动生成java pojo实体类 1.IDEA连接数据库 菜单View→Tool Windows→Dat ...

  4. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-6.Mysql逆向工程效率神器之使用IDE自动生成Java实体类

    笔记 6.Mysql逆向工程效率神器之使用IDE自动生成Java实体类     简介:实战使用IDE根据Mysql自动生成java pojo实体类                  1.IDEA连接数 ...

  5. 在线数据库表(sql语句)生成java实体类工具

    相信每个做java开发的读者,都接触过SQL建表语句,尤其是在项目开发初期,因为数据库是项目的基石. 在现代项目开发中,出现了许多ORM框架,通过简单的实体映射,即可实现与数据库的交互,然而我们最初设 ...

  6. csdn自动生成目录索引、插入代码片快捷键

    文章目录 自动生成目录索引 插入代码片 自动生成目录索引 文章开头加入 @[TOC](目录描述) 目录描述可不写 插入代码片 cmd/ctrl + shift + k

  7. Unity自动生成AnimatorController

    上一篇写了如何自动切割动画,这一篇写如何自动生成AnimatorController. 之前网上查了很多资料,看的一直很蒙,看不懂是怎么回事的,这里我先给大家明确几个概念: 画的不好,大家将就着看,写 ...

  8. MyEclipse自动生成hibernate实体类和配置文件攻略

    步骤1:找到导航栏里面的window--showView然后输入db brower,打开数据库浏览窗口步骤2:在数据库浏览窗口里只有一个Myeclipse自带的数据库,该数据没有用,我们在空白的地方右 ...

  9. AndroidStudio中安装可自动生成json实体类的jar包

    第一步:安装gsonjar包, 这样gson包就下载好了.接下来安装能自动生成实体类的插件: 接下来不要忘了重启: 重启后,就可以通过自定义的快捷键 alt+shift+s来打开generate,从而 ...

随机推荐

  1. how to enable the Accessibility in the app

    第一部分 先要装一个accchecker,全称是 UI Accessibility Checker .下载地址: http://acccheck.codeplex.com/ 装了之后 用这个工具可以 ...

  2. NSNotificationCenter 注意

    成对出现 意思很简单,NSNotificationCenter消息的接受线程是基于发送消息的线程的.也就是同步的,因此,有时候,你发送的消息可能不在主线程,而大家都知道操作UI必须在主线程,不然会出现 ...

  3. 2018.10.01 bzoj3237: [Ahoi2013]连通图(cdq分治+并查集)

    传送门 cdq分治好题. 对于一条边,如果加上它刚好连通的话,那么删掉它会有两个大集合A,B.于是我们先将B中禁用的边连上,把A中禁用的边禁用,再递归处理A:然后把A中禁用的边连上,把B中禁用的边禁用 ...

  4. 2018.07.03 BZOJ 1007: [HNOI2008]水平可见直线(简单计算几何)

    1007: [HNOI2008]水平可见直线 Time Limit: 1 Sec Memory Limit: 162 MB Description 在xoy直角坐标平面上有n条直线L1,L2,-Ln, ...

  5. 2018.09.07 loj#10166 数字游戏(数位dp)

    传送门 数位dp板子题. f[i][mod]" role="presentation" style="position: relative;"> ...

  6. JedisPoolConfig解说

    版本一 今天发现Jedis 默认的连接方式 jedis=new Jedis(“localhost”,6379),老是发生connection timeout. 后来发现jedis类包还有一种可以设置最 ...

  7. movielens 时间戳是秒级别的

    sigmoid(inX)函数 def sigmoid(inX): return 1.0/(1+exp(-inX)) Timestamps represent seconds since midnigh ...

  8. php读取用友u8客户档案

    include('../common/conn.php'); $list=[]; $sql="SELECT a.cCusCode,a.cCusName,b.cCCName,a.cCusDep ...

  9. 7.计算N元等式[穷举]

    穷举的一种应用,计算x+2y+3z=50的非负整数解.先约束每个变量的最大值,x=50,y=25,z=50/3. #include <iostream> using namespace s ...

  10. OpenGL + MFC

    OpenGL超级宝典(中文版) 2001年 本书是一本完整而详尽的关于OpenGL的参考书,全书分为四部分:第一部分“OpenGL导言”介绍3D图形学的基本原理,读者将在此学会构造使用OpenGL的程 ...