Unity 动态面板
using System;
using UnityEngine;namespace Framework {/// <summary>/// 动态面板/// </summary>public class UIDynamicPanel : UIPanel {/// <summary>/// 面板类型/// </summary>private Type m_PanelType;/// <summary>/// 面板预设/// </summary>private GameObject m_PanelPrefab;/// <summary>/// 面板对象池/// </summary>private ObjectPool m_PanelPool;/// <summary>/// 构造函数/// </summary>/// <param name="type">面板类型</param>/// <param name="prefab">面板预设</param>public UIDynamicPanel (Type type, GameObject prefab) {m_PanelType = type;m_PanelPrefab = prefab;m_PanelPool = new ObjectPool (OnPanelConstruct, OnPanelDestroy, OnPanelEnabled, OnPanelDisabled);}/// <summary>/// 面板构造回调/// </summary>/// <returns></returns>private object OnPanelConstruct () {GameObject gameObject = UnityEngine.Object.Instantiate (m_PanelPrefab);gameObject.name = m_PanelPrefab.name;gameObject.SetActive (false);gameObject.transform.SetParent (Transform, false);UIPanel panel = Activator.CreateInstance (m_PanelType) as UIPanel;panel.Init (PanelName, gameObject);return panel;}/// <summary>/// 面板销毁回调/// </summary>/// <param name="obj"></param>private void OnPanelDestroy (object obj) {UIPanel panel = obj as UIPanel;panel.OnDestroy ();UnityEngine.Object.Destroy (panel.GameObject);}/// <summary>/// 面板启用回调/// </summary>/// <param name="obj"></param>private void OnPanelEnabled (object obj) {UIPanel panel = obj as UIPanel;panel.Enabled = true;}/// <summary>/// 面板关闭回调/// </summary>/// <param name="obj"></param>private void OnPanelDisabled (object obj) {UIPanel panel = obj as UIPanel;panel.Enabled = false;}/// <summary>/// 启用回调/// </summary>public override void OnEnabled () { }/// <summary>/// 关闭回调/// </summary>public override void OnDisabled () { }/// <summary>/// 面板销毁/// </summary>public override void OnDestroy () {base.OnDestroy ();Clear ();}/// <summary>/// 添加面板/// </summary>/// <returns>返回面板对象</returns>public UIPanel Add () {UIPanel panel = m_PanelPool.Get () as UIPanel;m_PanelList.Add (panel);return panel;}/// <summary>/// 移除面板/// </summary>/// <param name="panel"></param>public void Remove (UIPanel panel) {m_PanelPool.Remove (panel);m_PanelList.Remove (panel);}/// <summary>/// 清理面板/// </summary>public void Clear () {m_PanelPool.Clear ();m_PanelList.Clear ();}}
}
Unity 动态面板相关推荐
- unity 粒子系统面板参数释义
**unity 粒子系统面板参数释义** 如何在Unity中实现粒子效果? 首先,右键点击 Hierarchy栏,选择effects->Particle System,这样你就新建了一个粒子系统 ...
- Unity动态加载3D模型
Unity动态加载3D模型 在Unity中创建游戏对象的方法有 3 种: 第一种是将物体模型资源由 Project 视图直接拖曳到 Hierarchy 面板中: 第二种是在 Unity 3D 菜单 G ...
- Unity 动态修改URP自带材质参数
Unity 动态修改URP自带材质参数 前言 代码 Emission 参考连接 前言 修改此处默认参数 代码 Emission 启用自发光效果的代码是 material.EnableKeyword(& ...
- unity导出面板详解(pc版)
unity导出面板详解(pc版) 目录 Resolution and Presentation(分辨率和显示) Fullscreen Mode(全屏模式) 全屏模式 参数 功能 Fullscreen ...
- Unity 动态加载Prefab
Unity动态记载Prefab 第一种方法,从Resources文件夹读取Prefab Assets/Resources是Unity中的一个特殊文件夹,放在这个文件夹里的资源包括Prefab可以被代码 ...
- Axure教程:如何使用动态面板?动态面板功能详解
写了几个Axure教程之后发现,可能教程的起点有些高了,过分的去讲效果的实现,而忽略了axure功能以及基础元件的使用,那么从这个教程开始,把这些逐渐的展开讲解. 关于Axure动态面板 动态面板是a ...
- Axure RP使用攻略--动态面板的用途(8)
写了几个Axure教程之后发现,可能教程的起点有些高了,过分的去讲效果的实现,而忽略了axure功能以及基础元件的使用,那么从这个教程开始,把这些逐渐的展开讲解. 关于动态面板 动态面板是axure原 ...
- startuml动态模型工具_动态面板模型估计方法简介以及stata应用
动态面板模型最主要的特征是在控制变量中加入了y的滞后项 , 其中 代表控制变量, 代表固定效应, 代表残差项 由于加入了y的滞后项导致了采用常用固定效应估计方法会导致参数估计的不一致性,因此需要采用其 ...
- axure选中后横线切换_Axure8.0|动态面板内容简单切换技巧
无论做web段还是移动端,常常会用到动态面板固定在某个区域来变换内容,达到节省空间的作用,今天分享的就是如何实现这种方式. 预览效果: 一.元件准备 以IT/互联网.设计创作.职场金融这三组为例,所涉 ...
最新文章
- day19_MD5加密_Apache DBUtils_监听器 知识回顾
- stop-hbase.sh一直处于等待状态
- 【干货】规模化敏捷DevOps四大实践之持续探索CE(中英对照版)
- MIP 扩展组件开发手册
- 1.5万字详述 | 全开源:python写小游戏+AI强化学习与传统DFS/BFS控制分别实现
- python利器-python利器APP下载-python利器 v4.0.1_手机乐园
- Axure8注册码,亲测可用
- 查看树莓派引脚以及串口连接
- mt4接入python_mt4 调用 api
- 对于单峰函数(有唯一极值的函数),黄金分割法比二分法能用更少的搜索次数找到最优解(最值),这对于目标函数不可导时的最优解搜索很有效。
- opencv-python 图像基础处理(三)
- 【MATLAB编程实例练习】-(34)直角三角形边长问题
- 万字干货!《增长黑客》背后的逻辑
- 举例说明 频分多址FDMA、时分多址TDMA、码分多址CDMA、空分多址SDMA的异同
- AUTOSAR NvMFee Configuration
- sxt_1_struts2入门_hello
- 从“穷逼VIP”论注释规范,你见过哪些奇葩的注释?
- IIS ftp服务器的搭建
- Microsoft SQL Server 数据库使用(一)
- Photoshop2022 23.0.0绿色精简版