FSM 检查器 v1.0

创作者: bluedevil555
已更新:2026-01-18 22:14:41
2KB

前置 MOD

使用 FSM 检查器 v1.0 时将自动安装

关于此 MOD

此模组能在控制台查看游戏内数据。
我觉得这算是个调试工具,希望能帮你制作模组。

基本上,你在游戏中用鼠标左键点击的任何内容,都会在控制台日志中显示相关信息,包括游戏对象坐标(xyz)、有限状态机(FSM)、ID等。你可以借助ChatGPT,或者凭自己的能力自由修改这个模组的代码,为其增加更多功能,或许还能为《机甲战士5:雇佣兵》解锁更多模组开发的可能性——前提是你知道怎么用它。

该模组仅支持MSC加载器(用于《我的冬季汽车》):https://www.nexusmods.com/mywintercar/mods/3

安装 = 解压至:Steam\steamapps\common\My Winter Car\Mods

using System
使用 HutongGames.PlayMaker;
using MSCLoader;
using UnityEngine;

public class FSMInspector : Mod
{
    public override string ID => "FSMInspector";
    版本号 = "1.0"
    bluedevil555
    public override MSCLoader.Game SupportedGames => MSCLoader.Game.MyWinterCar;

    public override void ModSetup()
    {
        [FSM检查器] 模组已加载!点击游戏对象即可查看FSM及其唯一ID。

        FSM检查器更新器
        UnityEngine.Object.DontDestroyOnLoad(obj);
        obj.AddComponent<InspectorUpdater>();
    }

    `InspectorUpdater` 私有类 : MonoBehaviour
    {
        void Update()
        {
            if (!Input.GetMouseButtonDown(0)) return;

            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            if (!Physics.Raycast(ray, out RaycastHit hit, 10f)) return;

            游戏对象 target = hit.collider.gameObject

            // 记录对象名称、唯一实例ID及位置
            Vector3 pos = target.transform.position;
            int instanceID = target.GetInstanceID();
            ModConsole.Log($"[FSM状态机检查器] 命中对象:'{target.name}'(ID={instanceID}),位置:X={pos.x:F1},Y={pos.y:F1},Z={pos.z:F1}")

            // 记录此对象上的所有FSM
            var fsms = target.GetComponents<PlayMakerFSM>();
            如果状态机数量为零
            {
                ModConsole.Log("[FSM检查器] 此对象上无FSM。")
            }
            否则
            {
                遍历所有有限状态机
                    ModConsole.Log($"[FSM检查器] 状态机:'{fsm.FsmName}'")
            }
        }
    }
}

My Winter Car 的热门 MOD

探索适用于 My Winter Car 的最佳MOD,带来新功能、升级画面,以及令人兴奋的方式来改变您的游戏体验。

使用 Xmod 解锁 My Winter Car 的全部潜力 — 今天就探索这些顶级 MOD!