这一期教程我们来讨论如何分析游戏代码,以实现 mod 效果。首先,我们需要使用之前安装的 DNSPY 软件。打开游戏根目录,找到程序集文件夹,将 AC 文件拖入。AC 包含大部分游戏的逻辑代码,但有时会将逻辑分散在多个 DLL 文件中。
对于代码的分析,我们需要从这些文件入手。插件可以帮助我们更好地解析代码。通过浏览对象浏览器启动游戏,找到在场景中常驻的脚本,如管理器。通过查找这些元素,我们可以找到突破口,例如通过查看界面上的提示信息和不销毁场景的脚本。
Steam 管理器可能是一个关键点,因为它通常是常驻在场景中的。游戏可能包含全局变量等内容,我们需要仔细分析游戏代码。单例模式在许多游戏中被广泛使用,它指全局只有一个实例的脚本。通过分析 game manager 等类,我们可以深入了解游戏的管理系统。
游戏代码中可能包含初始化、声音、测试模式等内容。全局的单例模式在游戏中扮演重要角色,我们应该重点
关注这些类。
通过仔细分析方法,我们可以更好地理解游戏的运行机制。
在分析游戏代码时,我们通常会看到一些直观的方法名,比如将游戏添加到愿望单或者显示伤害数字等。这些方法名通常能够直接告诉我们它们的功能。例如,刷新商店、抖动相机、获得金币等操作都可以通过方法名来推测其作用。
在游戏代码中,经常会看到与游戏状态、成就、关卡数据相关的类和方法。有时候也会看到特效生成、位置设置、音效播放等操作。对于多语言游戏,可能会涉及到显示信息、输出伤害数字等功能。
当我们通过分析了解了基础知识之后,可以尝试实现一些功能。比如,在代码中找到显示伤害数字的函数,并尝试编写代码来实现这一功能。我们可以使用 update 函数来检测游戏状态,并进行相应的操作。
在选择 Unity 的版本时,一般情况下会优先选择老版本的 API,因为新的输出系统配置较为复杂,而在制作 mod 时,我们更倾向于选择简单易懂的工具。如果存在多个版本的 API,我们可以根据实际情况来选择适合的版本进行引用。
让我们继续讨论如何修改输入以进行开发。例如,如何选择可靠的按键,如何使用 F12 等按键。在开发 mod 时,建议尽量避免使用 F1 到 F12 这些按键。这是因为很多玩家使用笔记本电脑,它们可能没有单独的功能按键行,而需要配合 FN 键才能触发 F1 到 F12 这些功能。如果你使用这些按键,可能导致玩家误解并向你反馈按键无效的情况,这样会增加沟通成本。
作为替代方案,你可以选择使用数字键盘上的按键,比如数字键盘的数字键或者其他少数使用频率的按键。这样既避免了与常用功能按键冲突,又可以更好地满足玩家的需求。
当调用 show 加速伤害数字函数时,我们需要确保正确引用命名空间和相关对象。在调试过程中,要注意将 AC(程序集文件)加载进来,以便正确地调用实例。由于它是一个单位,我们需要适当处理来确保调用正确。最后,记得保存位置并在重启游戏前再次检查代码。
让我们先进入材料,接着发现了一个红色的错误。这个事件实际上是关于浏览器 UI 的问题,暂时可以不予理会。之后尝试按下刚才提到的输出按键九,却没有反应。这可能是因为当前不在游戏界面上。
我们开始一局游戏,创建相同的环境,这样应该就能得到我之前提到的结果。总结一下我们代码的输出,然后结束这次代码分析学习。
对于更复杂的任务,通常也遵循类似思路。再分享一个小技巧,就是要善用搜索功能。比如,如果你想修改金钱,可以搜索关键词 "money" 或者相关术语,找到对应的方法或类名。
有些游戏中可能并非直接使用 "money" 这个词,而可能是 "tom" 或其他词汇。要改变血量可能用到 "hp" 这个缩写,或者其他类似的术语。注意到程序开发通常是规范的,因此根据你想要实现的效果来搜索时,通常都能找到相关信息。
以上就是我的一些建议和技巧,本期教程到此为止。