金庸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)的方法
- 读取到的数据,是sample(mods)的默认数据,里面有21个"场景“之多
- 但是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.在不可见区域,使用编写编辑器脚本,在打包前,使用四叉树对场景进行预先分块
发表评论