UnityVR-项目的管理阶层

news/2025/1/7 19:21:13/

目录

概述

项目的总体架构

单例基类

继承MonoBehaviour的单例基类


概述

    一个具备一定规模的项目,一般都需要由不同人员合作完成,每个人的想法风格不相同,如果一开始没有定下基本的框架,会让实现时混乱不堪,而且无法保证代码的安全性。另外,在项目制作过程中难免会遇到需求变更的问题,如果因为一个模型或者按钮的改变而要大篇幅修改代码,也是一个非常不值得的事。因此,在项目的开始最初就要定好基调和结构。

  本篇及本专栏(管理阶层Managers)参考了B站教程、Unity教程以及Unity基础框架从0到1 开篇,Unity游戏基本框架,Unity项目架构与开发管理等教程,定义了一个较简单基本的框架,仅作为基本举例参考。

项目的总体架构

  在一个项目中需要管理的有声音、UI、资源加载、输入输出等,每一个都需要有管理模块,集中管理一些通用的工具。

  举个例子:资源管理(ResLoadManager)中定义了从硬盘中加载各种资源的方法、路径等,这是在项目中常常会用到的,因此在ResLoadManager中集中定义和管理,当资源路径发生改变时,只要在ResLoadManager中修改即可。

  在本例中设置的管理类一共有如下8个:

   每一个Manager类都是单例,继承一个单例基类,以确保场上每种Manager只有唯一的一个。

   单例基类有两种,其中一个是继承MonoBehaviour的单例基类,因为有一些工具中需要使用到MonoBehaviour定义的API。以下是单例基类的定义:

单例基类

using System;
//不继承Mono的单例
public class Single<T> where T: class
{private static T _instance;private static T instance;public static T Instance { get{if (_instance == null){//判断如果场上没有实例,就动态创建一个实例Type type= typeof(T);_instance=Activator.CreateInstance(type,true) as T;}return _instance;}}protected Single(){}
}

继承MonoBehaviour的单例基类

  继承这个基类的Manager,需要在场景中实例化,可以自己在场景中建立一个空节点SingleMono挂载(或者代码中新建一个)

public class SingleMono<T> : MonoBehaviour where T : SingleMono<T>
{private static T instance;private static GameObject go;public static T Instance { get{if(instance==null){if(!go){//如果场内没有SingleMono节点,就建立一个go = GameObject.Find("SingleMono");if (!go)go = new GameObject("SingleMono");}DontDestroyOnLoad(go);instance=go.GetComponent<T>();//如果go上没有挂脚本if(!instance){instance = go.AddComponent<T>();}}return instance;}     }
}

  所有的Manager类都继承这两个类之一,具体的实现方式详见本专栏的其他篇——管理阶层Managers


http://www.ppmy.cn/news/455892.html

相关文章

获知局域网内他人的上网数据和行为

作者&#xff1a;邹祁峰 邮箱&#xff1a;Qifeng.zou.jobhotmail.com 博客&#xff1a;http://blog.csdn.net/qifengzou 日期&#xff1a;2015.12.16 转载请注明来自"祁峰"的CSDN博客 由于互联网的快速发展&#xff0c;人们的生活、休闲、工作已经越来越离不开网络。…

web 页面接入局域网监控视频

1. 网络摄像头 / NVR, 需要知道其IP和登录账号密码, 大部分支持使用工具扫描和重置密码; 2. 推流设备; 3. 摄像头和推流器接入同个局域网; 4. 使用VLC播放器播放验证 摄像头或录像机输出的 rtsp 视频源, 海康常见地址格式见文末; 5. 使用 推流器的局域网扫描工具 找到其 i…

局域网监控软件的功能分析1

软件1网站访问记录 运行软件记录 屏幕图象监控 电脑基本信息获取 QQ聊天内容监控 TM聊天内容监控 MSN聊天内容监控 已安装软件监控 贸易通聊天监控 Skype聊天监控 Yahoo通聊天监控 USB外接存储屏蔽 邮件收发监控 软件运行屏蔽设置 上网屏蔽设置 电脑硬件信息管理 远程关机 远…

linux内网嗅探,监控局域网内记录

无聊就玩了玩&#xff0c;不要干一些坏事哟~~网上也有一些文章关于kali linux的&#xff0c;就实战了一番。kali是用的debian 。 前提你与女神处于同一wifi下。 找到女神的ip地址&#xff0c;这个点她手机里面的wlan就可以看到。那么也可以用ip scanner扫描出来。 ip scanner k…

【ManageEngine卓豪】局域网监控的作用

由于人们不断的开发和代码扩展使得现在的网络环境相对来说比较复杂&#xff0c;一不留心就会因为网络操作和浏览造成一些不好的影响。但是如果在局域网监控下这些情况就可以尽量的在萌芽阶段被制止&#xff0c;这种监控虽然限制了人们的网络行为但是也在一定程度上规范了人们的…

局域网中流量监控

公司使用的一台华3路由器&#xff0c;因为没有流量监控&#xff0c; 它确实 没这个功能&#xff0c;我查遍了 Comware V3 命令手册也没有这么一项 遇到病毒爆发时很难准确定位出问题的机器&#xff0c; 所以需要增加流量监控的功能&#xff0c; 在局域网中的机器上添加上流…

【ManageEngine】局域网监控软件是什么,有什么作用

局域网监控软件是什么 随着现在的科技越来越发达&#xff0c;网络监控软件在我们的生活当中也是极为常见的&#xff0c;无论是在超市还是在商场当中监控都是非常常见的&#xff0c;但是现在听说出现了局域网络监控软件&#xff0c;但是这是什么&#xff0c;相信有些朋友根本不…

网络流量监控(局域网)

一个轻量级的网络流量监控程序&#xff0c;只能在局域网中使用。 主要用到GetIfTable()&#xff0c;和GetIfEntry() 两个API。界面用QT做&#xff0c;可以隐藏在系统托盘中。 截图 核心代码如下 void NetFlow::getFlow() {// 记录上一次函数调用时的总流量和时间&#xff0c…