
U3D游戏开发框架
在工作中积累的Unity游戏开发框架,不定期扩展 更新
Hello Bug.
记录一点点
展开
-
U3D游戏开发框架(九)——事件序列
一:目的游戏开发中,经常会执行一连串的事件。例如在第2秒的时候播放攻击动画,在第5秒的时候播放走路动画,如果在上层类中编写的话会使代码变得冗余所以我们需要一个事件序列类去统一管理二:解决的问题及优点——防止代码冗余三:使用——创建事件序列s = new Sequence();——添加事件序列s.AddEvent(0, () =>{ Debug.Log("event1");});s.AddEvent(1, () =>{ Debug.Lo原创 2021-06-05 23:28:24 · 2909 阅读 · 2 评论 -
U3D游戏开发框架(八)——消息系统
一:目的为什么要使用消息系统呢,假如我们的游戏中现在有一个敌人和一个玩家,当敌人击中玩家后玩家需要执行自身的扣血操作,那么就需要在敌人类中引用玩家脚本,这样就造成了代码的耦合,消息系统在开发中是一个非常重要的系统,他的作用就是解耦合Unity提供的消息机制SendMessage可以非常方便我们的脚本开发,但它实现的是一种伪监听者模式,利用的是反射机制,比较低效,几乎不会有人在项目中使用Unity内置的SendMessage,一般都自己去实现一套消息系统二:解决的问题及优点——解耦合三:使用原创 2021-05-13 11:50:27 · 4427 阅读 · 5 评论 -
U3D游戏开发框架(七)——每日刷新
一:目的任何一款游戏都需要一个每日刷新的机制,例如每日任务所以我们需要一个管理器统一管理每日刷新的相关操作二:解决的问题及优点——零点刷新——自定义时间刷新三:使用方法——在游戏启动的最开始调用DailyMgr.Ins.Refres()四:代码实现using System;using UnityEngine;/// <summary>/// 每日刷新管理器/// </summary>public class DailyMgr : Mono原创 2021-04-16 15:05:28 · 4200 阅读 · 3 评论 -
U3D游戏开发框架(六)——对象池
内存管理是软件开发中重要的一项,在游戏中,有一些需要频繁创建和销毁的对象,例如射击游戏中的子弹,跑酷游戏中的障碍物等,通常的方法是使用Instantiate和Destroy,不断的开辟和释放内存,但是这样的操作是致命的,而且有可能会产生内存碎片。什么是内存碎片:内存碎片意味着在堆中的空余空间被打碎成了很多小的内存碎片,而不是大的连续内存块,总共可用内存也许很大,但是最长的连续空间可能很小很小。所有我们可以定义一个池对象,其中包含了一组可重用的对象。——避免分配内存和释放内存产生的内存碎片导致的游戏崩溃。原创 2021-04-09 17:31:26 · 3090 阅读 · 1 评论 -
U3D游戏开发框架(五)——计时器
一:目的游戏开发中,计时是一个常见的功能。比如技能的冷却时间,角色的生命回复等等一般的实现方法是通过协程或者Invoke,但是这样并没有统一管理所有的计时器,所以我们需要一个管理器统一管理计时器的相关操作二:解决的问题及优点——注册一个计时器——注销一个计时器——得到某一个计时器的倒计时剩余时间——设置所有倒计时同步或异步三:使用方法——使用TimerMgr.Ins.XXX四:代码实现...原创 2021-04-09 10:13:36 · 3440 阅读 · 0 评论 -
U3D游戏开发框架(四)——音频管理器
一:目的二:解决的问题及优点三:使用四:代码实现原创 2021-03-30 11:05:06 · 3170 阅读 · 0 评论 -
U3D游戏开发框架(三)——UI管理器
一:目的在制作游戏过程中,UI界面都是必不可少的,多则上百个少则几个,如果这些UI界面都放在场景里(如下图所示),那么运行的时候会占用大量的内存所以一般都是将每一个UI界面制作成一个Prefab动态的进行显示隐藏,加载卸载二:解决的问题及优点——负责UI界面的显示和隐藏,加载和卸载——管理每一个UI界面的层级三:使用——四:代码实现...原创 2021-03-30 11:04:58 · 3488 阅读 · 4 评论 -
U3D游戏开发框架(二)——单例模版
一:目的如果每一个管理器类都实现一遍单例代码会造成代码的重复,所以通过继承单例模版去可以避免代码重复二:使用需要实现单例的类直接继承单例模版即可,有继承MonoBehaviour和不继承MonoBehaviour两种public class GameMgr : MonoSingleton<GameMgr>{}public class UIMgr : Singleton<UIMgr>{}三:实现/// <summary>///原创 2021-03-23 15:22:31 · 2997 阅读 · 0 评论 -
U3D游戏开发框架(一)——什么是框架?什么是库?
一:前言框架提供了⼀个规则,你必须遵守,他的最大特征就是会接管程序的主控制流程,你只需要写业务逻辑代码,具体底层的执行由框架来调用而库可以理解为一个工具箱,是一系列预先编写好的代码的集合,例如printf就是来自C语言标准库一个好的框架可以提高我们的编码效率,规范流程二:框架思想的演变一开始接触U3D游戏开发,我们会习惯写一些例如UI、Manager,内存池这些与GameObject没有明显关系的脚本挂载到一个空的GameObject上,使用的时候通过GameObject.Find()找到目标原创 2021-03-22 22:29:20 · 4516 阅读 · 1 评论