【3DM Mod站】《太吾绘卷(The Scroll Of Taiwu)》太吾绘卷 脚本调试引擎
太吾绘卷 脚本调试引擎
作者:◕小莫◕版本: 1.0游戏:太吾绘卷下载
授权:本Mod由3DM作者『◕小莫◕』制作并发布,未经允许,禁止任何人以任何形式转载! **** Hidden Message *****
如果你对Mod制作感兴趣,可以考虑加入3DM Mod组
介绍:
太吾绘卷脚本调试引擎
源码:https://github.com/GlossMod/ScriptEngine_TaiWu
主要功能
太吾绘卷已经官方支持Mod, 我觉得美中不足的地方就是脚本调试不太方便, 所以我写了这个调试引擎, 用来调试脚本.
以方便Mod开发者来调试自己的脚本
使用方法
- 将 "ScriptEngine" 解压到游戏目录的 "Mod"文件夹中
- 进入游戏后找到"模组选择"
- 启用"太吾绘卷 脚本调试器",然后应用
- 将你的脚本放入 "Mod/scirpts" 文件夹中
- 按F6会自动重新加载文件夹中的脚本
main
若要使用 ScriptEngine 来调试脚本,你需要在你的脚本中添加一个 main 类, 并继承 MonoBehaviour 类, 由于继承了 MonoBehaviour 类,所以 MonoBehaviour 的所有事件函数都可以使用, 例如 Start Update OnGUI OnDisable 等等
例子
csharp
using System;
using HarmonyLib;
using UnityEngine;
namespace ScriptTrainer
{
public class main: MonoBehaviour
{
void Start()
{
// 在启动时做些事情
Debug.Log("ScriptTrainer Start 启动");
}
void OnDisable()
{
// 脚本在卸载时做些事情
Debug.Log("ScriptTrainer OnDisable 卸载");
}
void Update()
{
// 在每一帧做些事情
if (Input.GetKeyDown(KeyCode.F9))
{
Debug.Log("你按下了 F9 键");
}
}
}
}
下面这个是游戏调用的方法
csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TaiwuModdingLib.Core.Plugin;
using UnityEngine;
using HarmonyLib;
using Object = UnityEngine.Object;
namespace ScriptTrainer
{
public class ScriptTrainer : TaiwuRemakePlugin
{
private static GameObject gameObject;
public override void Dispose()
{
//// 销毁
Object.Destroy(gameObject);
Debug.Log("ScriptTrainer 销毁");
}
public override void Initialize()
{
// 加载时调用
// 创建一个空物体
gameObject = new GameObject($"taiwu.ScriptTrainer{DateTime.Now.Ticks}");
// 将 main 类挂载到 gameObject 上
// 游戏会自动调用 Start、Update 方法
gameObject.AddComponent<main>();
Debug.Log("ScriptTrainer 初始化完成");
}
}
}
这里的 public class ScriptTrainer : TaiwuRemakePlugin 是作为Mod时, 游戏调用的类型, 这个是游戏要用的, 记得加上, 不然游戏不会读取你的脚本
而 public class main: MonoBehaviour 是调试引擎 用到的类,至于为什么要这么做, 你翻一翻源码就明白了,我本身是想模拟游戏加载Mod一样来调试脚本,但不管怎么折腾,都无法达到我想要的效果,所以只能这么做了,稍微麻烦了一点, 如果你有更好的方法的话, 欢迎推送你修改的代码
原理
- 创建一个空的 GameObject ,
- 使用 AddComponent 就可以将继承了 MonoBehaviour 的类挂载到 GameObject 上
- 挂载之后, 游戏会帮你调用它(MonoBehaviour)的所有事件函数
- 这个方法适用于所有Unity游戏,
截图:
https://mod.3dmgame.com/static/upload/mod/202209/MOD632b4f6f01b3a.png
看看
厉害了!先收藏,再回复!谢谢!好东西,拿走了,临走顶个贴感谢一下楼主! 都要开始出手了吗... 感谢楼主分享
66666666666
566456465
这个有啥用的呀?
{:3_90:}{:3_90:}:)
牛逼牛逼:o “艹,你们游戏玩家不睡觉的嘛?” 谢谢分享~谢谢分享~ 谢谢楼主!!!!!!!!!!!!!!!!!!!!!!!!
谢谢分享
111111111111111111111111
三百九十九,如果您要查看本帖隐藏内容请回复
666666666666666666666666666
楼主太棒了!我先下为敬!楼主一生平安!好人一生平安! 不能把v那边
6666666666 ..........................................
感谢分享
研究研究
大佬辛苦了,感谢大佬
https://user.3dmgame.com/data/avatar/010/01/62/35_avatar_middle.jpg 66666666666666 66666666666 66666666666666
66666666666666666666666
楼主太棒了!我先下为敬!你说的观点我也很支持!