「MBSubModuleBase」修訂間的差異

出自 骑砍中文百科
前往: 導覽搜尋
复写
 
行 6: 行 6:
 
 在示例 [[SubModule|'''SubModule.xml''']] 中,'''ExampleMod.MySubModule''' 是继承 '''MBSubModuleBase''' 的类的完全限定名。</big><br>
 
 在示例 [[SubModule|'''SubModule.xml''']] 中,'''ExampleMod.MySubModule''' 是继承 '''MBSubModuleBase''' 的类的完全限定名。</big><br>
 
== <big>复写</big> ==
 
== <big>复写</big> ==
 +
<big>这是可用复写的完整列表,按它们(通常)调用的顺序排列。这是一个大概的指南,当你遇到执行顺序错误时不能用作debug的标准。</big>
 +
<big>
 +
* '''OnSubModuleLoad()''' - 在游戏首次加载时首先调用,这里应该是你的做初始设置的地方。
 +
* '''OnApplicationTick(float)''' - 这里每 Tick 调用一次,这里你应该避免做一些复杂的工作而着重考虑性能。
 +
** '''float''' - 毫秒为单位,去执行的时间
 +
* '''OnBeforeInitialModuleScreenSetAsRoot()''' - 主菜单出现前调用,如果你的模组有什么需要初始化的东西这会非常有用。
 +
* '''OnGameStart(Game, IGameStarter)''' - 主菜单选择游戏模式(子模组)后立即调用。
 +
** '''Game''' - 参阅 [https://docs.bannerlordmodding.com/_csharp-api/core/game.html Game]
 +
** '''IGameStarter''' - N/A
 +
* '''BeginGameStart(Game)''' - 加载选定的游戏模式(子模组)后立即调用。
 +
** Game - 参阅 [https://docs.bannerlordmodding.com/_csharp-api/core/game.html Game]
 +
* '''OnGameLoaded(Game, object)''' - 加载存档后立即调用。
 +
** '''Game''' - 参阅 [https://docs.bannerlordmodding.com/_csharp-api/core/game.html Game]
 +
** '''object''' - N/A
 +
* '''OnCampaignStart(Game, object)''' - 游戏模式一开始立即调用。
 +
** '''Game''' - 参阅 [https://docs.bannerlordmodding.com/_csharp-api/core/game.html Game]
 +
** '''object''' - N/A
 +
* '''OnGameInitializationFinished(Game)''' - 游戏模式初始化后开始调用。
 +
** '''Game''' - 参阅 [https://docs.bannerlordmodding.com/_csharp-api/core/game.html Game]
 +
* '''DoLoading(Game)''' - 不太确定,似乎是在加载结束时调用。
 +
** '''Game''' - 参阅 [https://docs.bannerlordmodding.com/_csharp-api/core/game.html Game]
 +
* '''OnNewGameCreated(Game, object)''' - 战役模式下开新存档时调用。
 +
** '''Game''' - 参阅 [https://docs.bannerlordmodding.com/_csharp-api/core/game.html Game]
 +
** '''object''' - N/A
 +
* '''OnMissionBehaviourInitialize(Mission)''' - 一旦一个任务开始并且行为初始化,就会被调用。
 +
** '''Mission''' - 参阅 [[Mission]]
 +
* '''OnGameEnd(Game)''' - 退出游戏/战役时调用。
 +
** '''Game''' - 参阅 [https://docs.bannerlordmodding.com/_csharp-api/core/game.html Game]
 +
* '''OnSubModuleUnloaded()''' - 完全退出游戏时调用。
 +
* '''OnMultiplayerGameStart(Game, object)''' - 多人游戏相关,尚未测试。
 +
** '''Game''' - 参阅 [https://docs.bannerlordmodding.com/_csharp-api/core/game.html Game]
 +
** '''object''' - N/A
 +
<br></big>

於 2020年4月25日 (六) 23:02 的最新修訂

訪問源文檔
返回目錄

你可以通過繼承 MBSubModuleBase 類來處理你的模組的加載,它本質上是你的代碼入口。這裡有幾種有用的複寫,例如你可以利用的 OnSubModuleLoad()OnApplicationTick()
不過需要注意的是,你必須在你的模組的 SubModule.xml 中引用這個類的完全限定名,才能夠正常工作。
在示例 SubModule.xml 中,ExampleMod.MySubModule 是繼承 MBSubModuleBase 的類的完全限定名。

複寫

這是可用複寫的完整列表,按它們(通常)調用的順序排列。這是一個大概的指南,當你遇到執行順序錯誤時不能用作debug的標準。

  • OnSubModuleLoad() - 在遊戲首次加載時首先調用,這裡應該是你的做初始設置的地方。
  • OnApplicationTick(float) - 這裡每 Tick 調用一次,這裡你應該避免做一些複雜的工作而着重考慮性能。
    • float - 毫秒為單位,去執行的時間
  • OnBeforeInitialModuleScreenSetAsRoot() - 主菜單出現前調用,如果你的模組有什麼需要初始化的東西這會非常有用。
  • OnGameStart(Game, IGameStarter) - 主菜單選擇遊戲模式(子模組)後立即調用。
    • Game - 參閱 Game
    • IGameStarter - N/A
  • BeginGameStart(Game) - 加載選定的遊戲模式(子模組)後立即調用。
  • OnGameLoaded(Game, object) - 加載存檔後立即調用。
    • Game - 參閱 Game
    • object - N/A
  • OnCampaignStart(Game, object) - 遊戲模式一開始立即調用。
    • Game - 參閱 Game
    • object - N/A
  • OnGameInitializationFinished(Game) - 遊戲模式初始化後開始調用。
  • DoLoading(Game) - 不太確定,似乎是在加載結束時調用。
  • OnNewGameCreated(Game, object) - 戰役模式下開新存檔時調用。
    • Game - 參閱 Game
    • object - N/A
  • OnMissionBehaviourInitialize(Mission) - 一旦一個任務開始並且行為初始化,就會被調用。
  • OnGameEnd(Game) - 退出遊戲/戰役時調用。
  • OnSubModuleUnloaded() - 完全退出遊戲時調用。
  • OnMultiplayerGameStart(Game, object) - 多人遊戲相關,尚未測試。
    • Game - 參閱 Game
    • object - N/A