金庸群侠传3DUnity重置入门-Mods开发

Posted avi9111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了金庸群侠传3DUnity重置入门-Mods开发相关的知识,希望对你有一定的参考价值。

金庸3DUnity重置入门系列文章

金庸3dUnity重置入门 - lua 语法

金庸3dUnity重置入门 - UniTask插件

金庸3dUnity重置入门 - Mods开发

金庸3dUnity重置入门 - Cinemachine 动画

金庸3dUnity重置入门 - 大世界实现方案

金庸3dUnity重置入门 - 素材极限压缩

=================(部分可能放到付费博客)===========================

花了一个周末开发了一个Mods,的十分之一

  • 这里不会过多的提到Unity基础操作
  • 也不会提到程序基本语法如何从0到1
  • 更不会说到游戏开发基础和过程
  • 应该也不会提到手游,页游和独立游戏开发的区别

好像没有以上基础也不是不能继续往下看,没吃过猪肉,难道就不能像猪一样飞了?

一小哥 ---------- 关于金庸群侠3d的启动文章也很详细了,链接放最后了

哥也在上一个章节说了 ---------- lua的开发

这一个章节 ------------ 重点 Mods扩展开发 以及如何读表数据(配表

哥上周末 --------- 使用Mods和lua开发,还是挺愉快的,看了一下日志

原来才在4天前做了mods和lua的调整重构,哪怕哥再早一个周末进行开发,也难得这么愉快

前人种树,后人乘凉,感谢

只是发现一个问题:调整后的代码,读取的数据貌似不是Datas这个文件、

实测后发现,假如用:GameConfigDatabase.Instance.Init(data)的方法

  1. 读取到的数据,是SAMPLE(Mods)的默认数据,里面有21个"场景“之多
  2. 但是Runtime,启动游戏进入Mods后,确实读了Excels,我的Mods现在只有5个”场景“

 另外的问题:素材加载慢,第一次如此,假如开发Mods不需要替换很多资源倒不是大问题

问题x3:官网文档说的.asset 这个mods说明,和作者信息的文件不存在,应该是重构换掉了

而且:Steam创意工坊的Url貌似不再有效了

https://steamcommunity.com/app/2098790/workshop/

JxNew金庸群侠传3D部分代码说明 

获取当前加载哪个Mods

var mod = RuntimeEnvSetup.GetCurrentMod();

加载所有Config(Excel)数据

var excelDir = Path.Combine(editor.RootConfig.ModRootDir, "Configs");
var data = ExcelTools.LoadFromExcels(excelDir);
GameConfigDatabase.Instance.Init(data);

加载Mods(内核,开发Mods一般不需要管)

//RuntimeEvnSetup.cs
await ResLoader.LaunchMod(_currentMod);

ExcelTool读取地图数据?

Scripts/Jyx2ResourceHelper.cs

    private static async Task InitConfigTables()
    
        var mod = RuntimeEnvSetup.GetCurrentMod();

        //编辑器模式下直接从excel中载入,不需要再打包
        if (mod is GameModEditor editor)
        
            var excelDir = Path.Combine(editor.RootConfig.ModRootDir, "Configs");
            var data = ExcelTools.LoadFromExcels(excelDir);
            GameConfigDatabase.Instance.Init(data);   
        
        else //否则从打包载入
        
            var config = await ResLoader.LoadAsset<TextAsset>($"Assets/Configs/Datas.bytes");
            GameConfigDatabase.Instance.Init(config.bytes);    
        
    

下探这段代码就会发现,现在使用ExcelTools.cs直接加载Excel,懂的都懂,不需要再下探底层代码,挺简单的Excel加载逻辑,能实现,也好用,开发调试过程更简单;

(凡事都是双面刃)

但重构后的主要问题,还是把原来跨平台的.bytes加载变成了不能跨平台的.xlsx读取

跨平台的ExcelTools确实不好实现,即使哥工作多年,也没完全实现过Excel手机加载,基本也都是.bytes加载了事

ExcelTolls底层使用的是C#原生的 IExcel(winForm) 和DataCollection

不过,作为单机和win平台问题不大,或者之后随着xbox的跨平台,也能跟着跨平台呢。

(其实数据加载会卡顿的,整个数据层==无无数据层,只能说做单机太幸福了)

处理MeshTerrainEditor插件

个人做这个项目研究时,会把这个目录移除项目做备份,因为每次改完代码后的编译,很卡

(在办公室还好,但在家里的小破笔记本真撑不住,应该只是在第一次启动时才需要编译插件,但是这个插件没做好,结果每次C#编译也会同步编译插件,导致的卡顿,这个插件只是做美术地图用,程序员也不太需要)

  • 或者反勾【启动时显示】能解决,
  • 或者改插件内部代码能解决,
  • 但哥还是先做备份,
  • 暂时不需要改大地图

 

开发Mods步骤:

哎,说了这么多,好像什么正事都没干

参考,扩展阅读:

unity-《金庸群侠传3D重制版》起始界面解析_xkxsxkx的博客-CSDN博客

【Unity】四叉树/八叉树管理和动态加载场景物件_MrASL的博客-CSDN博客_10.在不可见区域,使用编写编辑器脚本,在打包前,使用四叉树对场景进行预先分块

以上是关于金庸群侠传3DUnity重置入门-Mods开发的主要内容,如果未能解决你的问题,请参考以下文章

金庸群侠传5声望在哪看

金庸群侠传X V1.0.0.5 通关记录

金庸群侠传 玩不了 别人说要用DOS进入 怎么下载DOSBOX 运行啊 那里下载

我用shell写了个mud游戏:武林群侠传

Flash游戏修改大师 错误,找不到sol系统路径

NYOJ 2356 哈希计划(模拟)