Add_Custom_TelePort_Point 是一个为游戏《Escape from Duckov》开发的模组,旨在为游戏添加自定义传送点功能。该模组允许玩家在不同地图之间快速传送,提高游戏体验的便利性。
默认为游戏添加2个传送点。
一个从J-Lab一层到农场镇,用于在找不到二级卡时,能够不回家重新进入J-Lab;
另一个从J-Lab的BOSS房到零号区,用于在打败boss后,能够不回家进入风暴区。
当前功能
- 创建自定义传送点
- 可配置传送点名称、位置
- 支持生成双向传送点
- 支持生成一次性传送点
- 支持json配置
未来计划
- 支持设定交互时间
- 生成类似游戏本身传送点的外观
- 支持其他模组调用
- 支持加载撤离收获统计
Duckov_Add_Custom_Teleport_Point/
├── ModAssembly/
│ ├── ModBehaviour.cs # 模组入口类
│ ├── TeleporterManager.cs # 传送点管理器
│ ├── CustomTeleporter.cs # 自定义传送组件
│ ├── CustomLocation.cs # 自定义位置类
│ ├── DataStructure.cs # 自定义数据结构定义
│ ├── Constant.cs # 常量定义
│ ├── HarmonyLoader.cs # Harmony 加载器
│ ├── Patch.cs # Harmony 补丁类
│ ├── RFH.cs # 反射辅助类
│ ├── Utils.cs # 工具类
│ ├── ModAssembly.csproj # 项目文件
│ ├── preview.png # 模组预览图片
│ ├── info.ini # 模组信息配置
│ └── Test.cs # 开发测试工具类,未使用
├── README.md
└── .gitignore
注册传送点配置
// csharp代码
TeleporterManager.registerTeleportPoint(
sourceSceneId: Constant.SCENE_ID_BASE, // 在该子场景下创建传送点
sourcePosition: new Vector3(-5f, 0f, -85f), // 在该坐标创建传送点
targetSceneId: Constant.SCENE_ID_BASE_2, // 传送目标的子场景名
targetPosition: new Vector3(95f, 0f, -40f), // 传送目标的坐标
interactName: "同地图传送", // 显示的名称
backTeleport: true, // 是否创建双向传送点
disposable: false // 是否是一次性传送点
);// json
[
{
"sourceSceneId": "Base_SceneV2",
"sourcePosition": [ -5.0, 0.0, -85.0 ],
"targetSceneId": "Level_JLab_1",
"targetPosition": [ -152.5, 1.0, 125.8 ],
"interactName": "测试用",
"backTeleport": true,
"disposable": true
},
// ...
]跨主场景使用SceneLoader.Instance.LoadScene函数。sceneReference参数需要是目标主场景的scene对象,location中需要是目标子场景的sceneid。
同主场景使用MultiSceneCore.Instance.LoadAndTeleport函数。
同子场景直接设置玩家坐标。
游戏场景加载时的事件有:
SceneLoader.LoadScene加载顺序为SceneLoader.onStartedLoadingSceneSceneLoader.onBeforeSetSceneActiveSceneLoader.onFinishedLoadingSceneLevelManager.OnLevelBeginInitializing- *
MultiSceneCore.OnSubSceneWillBeUnloaded MultiSceneCore.OnSubSceneLoadedLevelManager.OnLevelInitializedSceneLoader.onAfterSceneInitializeLevelManager.OnAfterLevelInitialized
MultiSceneCore.LoadAndTeleport加载顺序为- *
MultiSceneCore.OnSubSceneWillBeUnloaded MultiSceneCore.OnSubSceneLoaded
- *
本项目在开发过程中参考和使用了以下开源项目,特此致谢: