Unity3D 开发工具系列 UI框架:UI基类UIBase
Unity3D 开发工具系列 UI框架:UI管理UIManager
Unity3D 开发工具系列 UI框架:MVC模式
Unity3D 开发工具系列 UI框架:遮罩管理UIMaskManager
Unity3D 开发工具系列 UI框架:封装接口UIControl
Unity3D 开发工具系列 UI框架:定义设置Defines
Unity3D 开发工具系列 UI框架:案例项目CaraSynthesis

UI基类

  • 概述
  • Defines
    • 代码实现

概述

Defines

代码实现

using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;#if UNITY_EDITOR
using UnityEditor;
#endifnamespace Epitome.UIFrame
{public delegate void StateChangedEvent(object sender, ObjectState newState, ObjectState oldState);public enum ObjectState{None,Initial,Loading,Ready,Disabled,Closing}public enum UIMaskType{Lucency,            //完全透明,不能穿透Translucence,       //半透明,不能穿透ImPenetrable,       //低透明,不能穿透Pentrate            //可以穿透}public enum UINodeType{NormalNode,FixedNode,PopUpNode}public class Defines{public const string ROOTNODE = "UIFrame_RootNode";public const string MASKPANEL = "UIMaskPanel";#if UNITY_EDITOR[MenuItem("Epitome/UIFrame/Create/NodeDirectory")]private static void CreateNodeDirectory(){Transform SelectedObject = Selection.activeGameObject.transform;Transform uiTrans = new GameObject(ROOTNODE).AddComponent<RectTransform>();uiTrans.SetParent(SelectedObject, false);SetUI((RectTransform)uiTrans);List<UINodeType> subfiles = new List<UINodeType>();foreach (UINodeType item in Enum.GetValues(typeof(UINodeType))){subfiles.Add(item);}UINodeType[] subfile = subfiles.ToArray();for (int i = 0; i < subfile.Length; i++){Transform nodeTrans = new GameObject(subfile[i].ToString()).AddComponent<RectTransform>();nodeTrans.SetParent(uiTrans, false);SetUI((RectTransform)nodeTrans);if (subfile[i] == UINodeType.PopUpNode){Transform maskTrans = new GameObject(MASKPANEL).AddComponent<RectTransform>();maskTrans.SetParent(nodeTrans, false);Image mask = maskTrans.gameObject.AddComponent<Image>();mask.color = Color.black;SetUI((RectTransform)maskTrans);maskTrans.gameObject.SetActive(false);}}AssetDatabase.Refresh();}private static void SetUI(RectTransform rectTrans){rectTrans.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, 0, 0);rectTrans.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, 0, 0);rectTrans.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Right, 0, 0);rectTrans.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Bottom, 0, 0);rectTrans.anchorMin = Vector2.zero;rectTrans.anchorMax = Vector2.one;}
#endif}
}

Unity3D 开发工具系列 UI框架:定义设置Defines相关推荐

  1. Unity3D 开发工具系列 UI框架:封装接口UIControl

    Unity3D 开发工具系列 UI框架:UI基类UIBase Unity3D 开发工具系列 UI框架:UI管理UIManager Unity3D 开发工具系列 UI框架:MVC模式 Unity3D 开 ...

  2. Unity3D 开发工具系列 日志系统:配置模块LogConfig

    Unity3D 开发工具系列 日志系统:核心模块Logging Unity3D 开发工具系列 日志系统:调用封装Log Unity3D 开发工具系列 日志系统:输出模块ConsoleAppender ...

  3. Unity3D 开发工具系列 日志系统:输出模块ConsoleAppender

    Unity3D 开发工具系列 日志系统:核心模块Logging Unity3D 开发工具系列 日志系统:调用封装Log Unity3D 开发工具系列 日志系统:输出模块ConsoleAppender ...

  4. 搭建Unity3D游戏引擎开发工具系列:UI框架

    Unity3D 开发工具系列 UI框架:UI基类UIBase Unity3D 开发工具系列 UI框架:UI管理UIManager Unity3D 开发工具系列 UI框架:MVC模式 Unity3D 开 ...

  5. Python开发工具系列1------基于业务常见情况,利用Python实现短文本相似度模型并且利用PyQt5封装为工具

    Python开发工具系列1------ 基于业务常见情况,利用Python实现短文本相似度模型并且利用PyQt5封装为工具 业务场景介绍 工具介绍 关键功能实现 界面实现 主要业务功能实现 代码与工具 ...

  6. ui动效 unity_针对Unity3D的小游戏UI框架——IceCreamView

    前言 IceCreamView是什么? IceCreamView(以下简称ICView)是一套针对Unity3D的小游戏UI快速构建框架. 同时ICView是一套面向组件开发模式的UI框架,以容器+组 ...

  7. 推荐开发工具系列之--PyF5(自动刷新)

    2019独角兽企业重金招聘Python工程师标准>>> 昨天介绍的自动刷新的软件 推荐开发工具系列之--LinrF5(自动刷新)  已经是很靠谱了:今天再介绍一款软件,同样靠谱:萝卜 ...

  8. Android开发工具系列:SharedPreference管理工具

    Androi开发工具系列:SharedPreference管理工具 Android开发工具系列:弱引用工具 Android开发工具系列:Utils工具 文章目录 1 strategy 1.1 Pref ...

  9. iOS常用开发工具及第三方框架

    iOS开发中使用到的工具,以及为了避免重复造轮子,也为了更快.更有效的地进行开发,常常引用的第三方框架,像网络请求的AFNetworking,数据持久化的FMDB,请求提示符MJRefresh,还有数 ...

最新文章

  1. 《现代操作系统》(第4版)文件系统 课后习题解答
  2. lob移表空间 oracle_Oracle数据库(1)Oracle体系结构概述(一)
  3. 新晋图灵奖得主Jeff Ullman受质疑,反对者:他享受了不该享受的荣誉
  4. 注册信息表html,实战系列 —— HTML 的 “注册信息表”
  5. 高仿快递100--实战之RadioGroup和RadioButton应用
  6. R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解)
  7. ionic安装拍照选照片插件
  8. 转:WaitForSingleObject()函数、WaitForMultipleObject()函数
  9. DSShop单用户TP5框架B2C开源商城源码v3.0.2
  10. linux命令文本模式上网,Linux文本模式下上网简单命令
  11. 计算机c盘如何扩容,C盘满了怎么办?电脑C盘扩容图文教程-电脑教程
  12. mysql 安装失败原因大全(diao ,基本都让我给踩了个遍,这运气...)
  13. 光学系统设计学习笔记1
  14. 多WLAN口路由器原理分析
  15. 值传递,指针传递,引用传递的区别
  16. GCF(4)----手机认证相关知识
  17. PHP 输出各个时区对应的时差表
  18. 【财富空间】华为HR总裁李杰:如何打造一支胜任的项目经理队伍?
  19. 关于使用Vivado在仿真时报错的问题
  20. ringbuffer的特别之处

热门文章

  1. OpenCV学习(30) 轮廓defects
  2. YOLOV5—6.0 网络结构图
  3. ubuntu20.04找不到wifi图标的解决方法
  4. jQuery 中的 get() 方法
  5. java redis缓存清除_java基础-redis缓存篇
  6. java redis 缓存_java实现redis缓存
  7. 使用HTML+CSS3实现小球无限转动
  8. 关于servlet的@WebServlet注解。
  9. 汉诺塔——经典递归问题(c语言实现)
  10. Check the difficulty of problems (概率dp求概率)