我们打开上一篇37单例模式框架的项目,
本章要做的事情是编写管理器基类
首先创建脚本:ManagerBase.cs
using UnityEngine;
public abstract class ManagerBase : MonoBehaviour{
public virtual void Init() { }
}
public class ManagerBase<T> : ManagerBase where T:ManagerBase<T>{
public static T Instance;
public override void Init() {
Instance = this as T;
}
}
修改脚本:GameRoot.cs
public class GameRoot : SingletonMono<GameManager>{
protected override void Awake(){
base.Awake();
DontDestroyOnLoad(this);
//初始化所有管理器
InitManagers();
}
void InitManagers(){
ManagerBase[] managers = GetComponents<ManagerBase>();
for (int i = 0; i < managers.Length; i++){
managers[i].Init();
}
}
}
修改脚本:GameRoot.cs
将GameManager对象重命名为GanmeRoot 并将GameManager脚本更换为GameRoot.cs
运行项目
本章做了管理器基类的编写,优点是基类中定义的方法可以在多个派生类中重用,减少了代码的重复;当需要修改管理器的行为时,只需在基类中进行更改,所有派生类都会自动继承这些更改。
下篇文章的内容:
1.GameObject类型的对象池
2.窗口可拖拽脚本
3.点击名称寻找地点功能
4.隐藏怪物的生成
5.怪物I攻击范围内的主动攻击
6.掉落坐骑蛋的获取
7.异步传送转换场景
以及开放回合制、坐骑系统、宠物系统、背包系统、神炼系统、商城系统、Boss的目标跟随任务导航系统以及UI播放3D动画效果等等。
具体项目运行效果请关注water1024的b站视频项目演示《破碎纪元》
【Unity回合2.5D】破碎纪元_单机游戏热门视频 (bilibili.com)https://www.bilibili.com/video/BV1rZY4e9Ebs/?spm_id_from=333.999.0.0&vd_source=547091a95b03acfa8e8a9e46ef499cd6