egametang启动配置

egametang的启动配置文件可以在Unity的Tools->命令行配置中修改保存然后启动
如果需要添加自定义的启动配置项目,只需要修改客户端的

ServerCommandLineEditor.cs
if (GUILayout.Button("添加一行配置"))
{
StartConfig newStartConfig = new StartConfig();
newStartConfig.AppType = this.AppType;
if (this.AppType.Is(AppType.Gate | AppType.Realm | AppType.Manager))
{
newStartConfig.AddComponent<OuterConfig>();
}
if (this.AppType.Is(AppType.Gate | AppType.Realm | AppType.Manager | AppType.Http | AppType.DB | AppType.Map | AppType.Location))
{
newStartConfig.AddComponent<InnerConfig>();
}
if (this.AppType.Is(AppType.Benchmark))
{
newStartConfig.AddComponent<ClientConfig>();
}
if (this.AppType.Is(AppType.Http))
{
newStartConfig.AddComponent<HttpConfig>();
}
if (this.AppType.Is(AppType.DB))
{
newStartConfig.AddComponent<DBConfig>();
}
this.startConfigs.Add(newStartConfig);
}
这段代码里可以修改AppType对应的startconfig包含的AConfigComponent子类
InnerConfig innerConfig = startConfig.GetComponent<InnerConfig>();
if (innerConfig != null)
{
GUILayout.Label($"InnerHost:");
innerConfig.Host = EditorGUILayout.TextField(innerConfig.Host);
GUILayout.Label($"InnerPort:");
innerConfig.Port = EditorGUILayout.IntField(innerConfig.Port);
} OuterConfig outerConfig = startConfig.GetComponent<OuterConfig>();
if (outerConfig != null)
{
GUILayout.Label($"OuterHost:");
outerConfig.Host = EditorGUILayout.TextField(outerConfig.Host);
GUILayout.Label($"OuterHost2:");
outerConfig.Host2 = EditorGUILayout.TextField(outerConfig.Host2);
GUILayout.Label($"OuterPort:");
outerConfig.Port = EditorGUILayout.IntField(outerConfig.Port);
} ClientConfig clientConfig = startConfig.GetComponent<ClientConfig>();
if (clientConfig != null)
{
GUILayout.Label($"Host:");
clientConfig.Host = EditorGUILayout.TextField(clientConfig.Host);
GUILayout.Label($"Port:");
clientConfig.Port = EditorGUILayout.IntField(clientConfig.Port);
} HttpConfig httpConfig = startConfig.GetComponent<HttpConfig>();
if (httpConfig != null)
{
GUILayout.Label($"AppId:");
httpConfig.AppId = EditorGUILayout.IntField(httpConfig.AppId);
GUILayout.Label($"AppKey:");
httpConfig.AppKey = EditorGUILayout.TextField(httpConfig.AppKey);
GUILayout.Label($"Url:");
httpConfig.Url = EditorGUILayout.TextField(httpConfig.Url);
GUILayout.Label($"ManagerSystemUrl:");
httpConfig.ManagerSystemUrl = EditorGUILayout.TextField(httpConfig.ManagerSystemUrl);
} DBConfig dbConfig = startConfig.GetComponent<DBConfig>();
if (dbConfig != null)
{
GUILayout.Label($"Connection:");
dbConfig.ConnectionString = EditorGUILayout.TextField(dbConfig.ConnectionString); GUILayout.Label($"DBName:");
dbConfig.DBName = EditorGUILayout.TextField(dbConfig.DBName);
}
修改这段代码即可给新增或者修改的AConfigComponent子类字段赋值
注意如果派生新的AConfigComponent 子类,需要再AConfigComponent上使用BsonKnownTypes标记记录上去
using MongoDB.Bson.Serialization.Attributes; namespace Model
{
/// <summary>
/// 每个Config的基类
/// </summary>
[BsonKnownTypes(typeof(ClientConfig))]
[BsonKnownTypes(typeof(InnerConfig))]
[BsonKnownTypes(typeof(OuterConfig))]
[BsonKnownTypes(typeof(HttpConfig))]
[BsonKnownTypes(typeof(DBConfig))]
[BsonKnownTypes(typeof(RunServerConfig))]
public abstract class AConfigComponent: ComponentDB
{
}
}
点击保存后,StartConfig是个Entity,Entity的Componet容器被标记了BsonElement,所以它包含的配置组件及其内容都会序列化成json保存在配置文件夹中。从项目根目录\Config\StartConfig中即可查看这些序列化出来的json配置文件,这些配置文件还包含了_t之类的bson特有字段,和通常的newtonsoft.json序列化出来的还是有点不同。
服务端进程启动时这些序列化好的配置文件会在Program.Main函数中的OptionComponent和StartConfigComponent被反序列化 服务端需要修改StartConfigComponent加入相关代码:


改完上面2处就可以在代码中引用了。
egametang启动配置的更多相关文章
- ABP(现代ASP.NET样板开发框架)系列之5、ABP启动配置
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之5.ABP启动配置 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- ABP框架 - 启动配置
文档目录 本节内容: 配置ABP 替换内置服务 配置模块 为一个模块创建配置 ABP在启动时,提供基础框架和模型来配置和模块化. 置ABP 在预初始化事件中进行配置,示例: kid1412注:XmlL ...
- ABP理论学习之启动配置
返回总目录 本篇目录 配置ABP 配置模块 为模块创建配置 为了在应用启动时配置ABP和模块,ABP提供了一个基础设施. 配置ABP 配置ABP是在模块的PreInitialize事件中完成的.下面的 ...
- 【推荐】CentOS安装Tomcat-7.0.57+启动配置+安全配置+性能配置
注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 在安装Tomcat之前,请确保已经安装了JDK-1.7环境,具体见<CentOS安装JDK-1.7>. ...
- 基于DDD的.NET开发框架 - ABP启动配置
返回ABP系列 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应 ...
- 适合最新版docker自定义启动配置
docker不断发布新版本,以前默认的在 /etc/default/docker里修改,但是新版已经不推荐了 注意: 一些文章推荐在 /lib/systemd/system/docker.servic ...
- MongoDB启动配置等
目录: 一.mongoDB 启动配置 二.导出,导入,运行时备份 三.Fsync锁,数据修复 四.用户管理,安全认证 一.启动项 mongod --help C:\Windows\system32&g ...
- 14.6.1 InnoDB Startup Configuration 启动配置
14.6.1 InnoDB Startup Configuration 启动配置 首先描述关于InnoDB 配置设计数据库文件,日志文件,page size 和内存buffer 的配置. 推荐你定义数 ...
- ABP启动配置
ABP启动配置 返回ABP系列 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行 ...
随机推荐
- spring-mvc整合jquery cropper图片裁剪插件
参考网址:http://blog.csdn.net/u012759397/article/details/53126522
- [one day one question] Vue数组变更不能触发刷新
问题描述:Vue数组变更不能触发刷新,特别是数组的每个元素都是对象的时候,对象中某个属性的值发生变化,根本无法触发Vue的dom刷新,这怎么破? 解决方案:this.$set(array, index ...
- 如何将阿里云mysql RDS备份文件恢复到自建数据库
参考地址:https://help.aliyun.com/knowledge_detail/41817.html PS:目前恢复只支持 Linux 下进行.Linux下恢复的数据文件,无论 Windo ...
- Github终于连上了hexo
2018-01-2722:59:28 我的妈呀,看看这感人的网速,哎不想吐槽在中国连外网的速度 总结一下连接过程吧 漫漫长征路,难的要死. 一.github的注册和使用不再详述 二.Git Desk ...
- linux_ssh
什么是ssh? 配置文件位置:/etc/ssh/sshd_config 远程登录和为其他网络提供安全的加密数据传输协议,默认端口22,默认协议是SSH2 # 远程终端通过ssh连接服务器管理服务器 # ...
- 国家语言,语言代码,locale id对应表
国家语言,语言代码,locale id对应表.比如 en_US对应的id为1033, 中文的locale=zh_CN,id=2052. Locale Languagecode LCIDstring L ...
- Servlet--取得初始化配置信息
关于这块内容,主要就是玩一个接口:ServletConfig.先翻下API,了解一下. 定义: public interface ServletConfig 这个接口定义了一个对象,通过这个对象,Se ...
- 控制器没有足够的带宽可利用为USB大容量存储设备的解决方法
伴随网盘时代的没落,最近刚入手了一个移动硬盘.现在的移动硬盘都是USB3.0,传输速度比USB2.0要快很多.但是链接笔记本电脑后发现传输速度在20MB/s左右,跟USB2.0速度差不多,并不能达到传 ...
- 【转】C++易混知识点1: 指针常量和常量指针的区别,附有详细案例解释
熟悉C++也已经有一些年头了,今天突然翻出当年浏览的书籍,对一些概念居然生疏了,指针常量和常量指针由于 指针 这一特殊的对象而变得难以区别.因此,在思考再三之后,决定写下该篇总结,加强对他们的区别: ...
- 【转】fread函数详解
“fread”以二进制形式,从文件读出数据. 语法1:[a,count]=fread(fid,size,precision) 语法2:[a,count]=fread(fid,size,precisio ...