◕小莫◕ 发表于 2022-9-22 01:53

【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





zss123321 发表于 2022-9-22 01:56

看看               

Αιι 发表于 2022-9-22 02:04

厉害了!先收藏,再回复!谢谢!好东西,拿走了,临走顶个贴感谢一下楼主!

mengjing 发表于 2022-9-22 02:06

都要开始出手了吗...

shun0830 发表于 2022-9-22 02:10

感谢楼主分享

冷月无情丶 发表于 2022-9-22 02:15

66666666666

海丶参 发表于 2022-9-22 02:30

566456465

猝死的二喵子 发表于 2022-9-22 02:41

这个有啥用的呀?

新骑士 发表于 2022-9-22 02:42

{:3_90:}{:3_90:}:)

小虎GO 发表于 2022-9-22 02:43

牛逼牛逼:o

videogame 发表于 2022-9-22 03:04

“艹,你们游戏玩家不睡觉的嘛?”

嫑吔饺子皮 发表于 2022-9-22 03:10

谢谢分享~谢谢分享~

尼玛玛 发表于 2022-9-22 03:13

谢谢楼主!!!!!!!!!!!!!!!!!!!!!!!!

jaskdjn 发表于 2022-9-22 03:13

谢谢分享

justeric11 发表于 2022-9-22 03:37

111111111111111111111111

三百九十九 发表于 2022-9-22 03:44

三百九十九,如果您要查看本帖隐藏内容请回复

晴空sama 发表于 2022-9-22 03:48

666666666666666666666666666

SecretZero 发表于 2022-9-22 03:48

楼主太棒了!我先下为敬!楼主一生平安!好人一生平安!

兲芐※ωō鵟 发表于 2022-9-22 03:51

不能把v那边

1450933404 发表于 2022-9-22 03:51

6666666666

将神 发表于 2022-9-22 04:07

..........................................

3dm_14307655 发表于 2022-9-22 04:08

感谢分享

3dm_14741905 发表于 2022-9-22 04:45

研究研究

guo3dm 发表于 2022-9-22 05:36

大佬辛苦了,感谢大佬

a2536357 发表于 2022-9-22 06:31

https://user.3dmgame.com/data/avatar/010/01/62/35_avatar_middle.jpg

gxusatan 发表于 2022-9-22 06:44

66666666666666

采loli的蘑菇 发表于 2022-9-22 06:46

66666666666

lgfxhzq 发表于 2022-9-22 06:50

66666666666666

3dm_13473669 发表于 2022-9-22 06:57

66666666666666666666666

荣耀丶的恏人 发表于 2022-9-22 07:25

楼主太棒了!我先下为敬!你说的观点我也很支持!
页: [1] 2 3 4 5 6 7
查看完整版本: 【3DM Mod站】《太吾绘卷(The Scroll Of Taiwu)》太吾绘卷 脚本调试引擎