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

news2024/10/6 0:37:36

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/86758.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Nodejs计算机毕业设计基于web的社团管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

机器学习——01基础知识

机器学习——01基础知识 github地址&#xff1a;https://github.com/yijunquan-afk/machine-learning 参考资料 [1] 庞善民.西安交通大学机器学习导论2022春PPT [2] 周志华. 机器学习.北京:清华大学出版社,2016 [3] AIlearning 一、机器学习算法的应用 目前&#xff0c;机…

【Redis】集合Set和底层实现

文章目录Redis 集合(Set)Set简介常用命令应用场景共同关注实例整数集合整数集合介绍整数集合的升级哈希表哈希表的原理和实现Redis中的哈希表rehash渐进式rehashRedis 集合(Set) Set简介 Redis set对外提供的功能与list类似是一个列表的功能&#xff0c;特殊之处在于set是可以…

多维时序 | MATLAB实现GRU多变量时间序列预测

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

c语言中fread,fgets等取文件字符的缓存空间小出现问题

一种奇怪现象 #include <stdio.h> #include <stdlib.h> #include<windows.h>int main(void){int i;printf("hello\n");fflush(stdout); //当没有这部刷新&#xff0c;hello会和end等到时间一起输出Sleep(2000); //windowsa.h中的Sleep&#…

某研究生不写论文竟研究起了算命?

起因 大约一个月前&#xff0c;在学校大病一场&#xff08;不知道是不是&#x1f411;了&#xff0c;反正在学校每天核酸没检测出来&#xff09;在宿舍休息了整整一周。当时因为发烧全身疼所以基本一直躺着刷刷视频。看了一周倪海厦老师讲的天纪&#xff0c;人纪感悟颇多&…

央企招聘:中国航空油料集团2023公开招聘

一、公司简介 中国航空油料集团有限公司&#xff08;以下简称“中国航油”&#xff09;成立于2002年10月11日&#xff0c;是以原中国航空油料总公司为基础组建的国有大型航空运输服务保障企业&#xff0c;是国内最大的集航空油品采购、运输、储存、检测、销售、加注为一体的航…

Spring Boot打成jar包后运行及配置文件的问题

Maven打包 因为Spring Boot项目内置Tomcat&#xff0c;所以可以打成一个jar包直接运行&#xff0c;而不必再需要安装Tomcat了。 如果用IDEA打包&#xff0c;还得先添加Artifacts&#xff1a; 然后再选择‘Main Class’ 显然比较麻烦&#xff0c;而且每次导入项目都得重新添加…

高频功率放大器工作原理总结(高频和低频功率放大器的区别)

高频功率放大器处在发射机的末级&#xff0c;主要作用是把高频已调拨信号进行功率放大&#xff0c;满足发送功率的要求&#xff0c;然后通过天线辐射到空间&#xff0c;保证一定区域接收机能够接收到信号电平。 高频功率放大器是通信系统中发送装置的组件&#xff0c;按照频带的…

【DOTS学习笔记】Cache层级结构与排队管理

目录前言如何理解L1,L2,L3级缓存的树形结构设计排队的烦恼现实中的排队烦恼计算机程序设计中的排队队列类型前言 本文是Metaverse大衍神君的《DOTS之路》系列课程的学习笔记 如何理解L1,L2,L3级缓存的树形结构设计 排队的烦恼 现实中的排队烦恼 这是一张关于排队的图&#xf…

论文速递:AAAI 2023 | 优图16篇论文速览,含多标签分类、姿态估计、目标检测、HOI、小样本学习等研究方向

近日&#xff0c;AAAI 2023&#xff08;Association for the Advancement of Artificial Intelligence&#xff09;国际先进人工智能协会公布了录用结果&#xff0c;本届会议共有8777篇投稿&#xff0c;录用1721篇&#xff0c;录用率19.6%。 AAAI是人工智能领域的主要学术组织之…

[go 语言学习笔记] 7天用Go从零实现分布式缓存GeeCache 「持续更新中」

说明 本文用于记录学习 go 语言过程中的笔记, 文中的代码都是在文本中敲出来的伪代码, 并不能直接运行, 如有需要可以参考原文链接. 本文的整体思路是对原系列教程阅读后的复盘. 关于本文参考的 学习教程 可以访问原教程链接: 7天用Go从零实现分布式缓存GeeCache 本文如有…

文本检测识别技术在合合信息的应用实务解决方案

合合信息保险行业全业务流程数字化解决方案 合合信息依托AI大数据&#xff0c;打造了保险行业全业务流程数字化解决方案&#xff1a;OCR智能分类识别文档、表格、卡证、票据、合同等&#xff0c;替代人工录入&#xff0c;图像智能质检优化&#xff0c;实现投保、核保、理赔、合…

(Matlab实现)基于蒙特卡洛模拟的大规模电动车充电模型

目录 摘要&#xff1a; 1电动车日行驶里程概率分布&#xff1a; 2.电动车充电起始时间概率分布&#xff1a; 3.大规模电动车充电行为蒙特卡洛建模&#xff1a; 3.1日行驶里程 3.2开始充电时间 3.3耗电量 3.4充电时间 3.5总充电负荷 4.不同规模的电动车的充电负荷曲线…

vue中vue-router安装与配置方法步骤详解

vue-router 是 vue.js 官方的路由插件&#xff0c;里面组件和 URL 的映射关系由 vue-route 帮我们管理。 在 vue-router 的单页面应用中&#xff0c;页面的路径的改变就是组件的切换。 第一步&#xff1a; 1.正常初始化项目的时候&#xff0c;会有个 vue-router 供我们选择。…

docker安装kafka、zookeeper

docker安装kafka、zookeeper 基于win10&#xff0c;docker desktop 基于linux也是一样的处理方式 (win10通过Docker搭建LNMP环境全流程)[https://blog.csdn.net/fendouweiqian/article/details/128062543] docker安装kafka、zookeeper 创建共享网络 为的是容器内可以通讯 …

vue-cli-3环境搭建和配置

一、vue 是单文件组件 之前注册组件有什么缺点 ? 1- 缺乏语法高亮 2-格式不好 3-没有专门的写css代码等等 参考 : vue > 工具 > 单文件组件 什么是单文件组件 &#xff1a;后缀为 .vue 的文件 单文件组件的三个组成部分 (代码块 : scaffold 自动提示) template (模…

21. 合理的模型初始化和激活函数

1. 让训练更加稳定 2. 让每层的方差是一个常数 以两个变量为例&#xff0c;均值为零可以让变量于自己的轴对称&#xff0c;那么在二维上整个变量分布就是中心对称&#xff0c;而方差则可以控制各个变量离原点的离散程度&#xff0c;那么就可以把二维变量看成限制在某个圈内。 在…

物联网开发笔记(61)- 使用Micropython开发ESP32开发板之控制3.2寸触摸屏的SD卡(续)

一、目的 这一节我们学习如何使用我们的ESP32开发板来控制3.2寸触摸屏的SD卡。 关键字&#xff1a;3.2寸SPI串口TFT液晶显示屏模块 ILI9341驱动 LCD触摸屏 240*320 XPT2046触摸屏芯片IC 二、环境 ESP32 3.2寸触摸屏SD卡模块 Thonny IDE 几根杜邦线 接线方法&#xff1a; …

[附源码]计算机毕业设计的中点游戏分享网站Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis MavenVue等等组成&#xff0c;B/S模式…