当前位置: 代码网 > it编程>游戏开发>unity > 金庸群侠传3DUnity重置入门-Mods开发

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

2024年08月03日 unity 我要评论
金庸群侠传3DUnity重置入门-Mods开发, 入门教学,c#代码

金庸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.在不可见区域,使用编写编辑器脚本,在打包前,使用四叉树对场景进行预先分块

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com