金庸群侠传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.在不可见区域,使用编写编辑器脚本,在打包前,使用四叉树对场景进行预先分块文章来源地址https://www.uudwc.com/A/d8w4/

原文地址:https://blog.csdn.net/avi9111/article/details/128299789

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年06月17日 10:22
计量龙头威胜电子正式加入能源区块链,携手零数打造区块链生态圈
下一篇 2023年06月17日 10:22