onLoadとonSave

onLoad関数

onLoad関数に書いたスクリプトは、テーブルが読み込み完了した時、またはコンテナから取り出されてロードされた時に実行されます。
オブジェクトやスクリプトの初期化処理などは、この関数内で行うと良いでしょう。

ただし変数の宣言などはnilエラーを防ぐためにonLoadの外側で行うことを推奨します。

onLoadは引数をとる

素直に function onLoad() と入力してもLuaは実行されますが、onLoadには引数をとることができます。

  • 引数
    1. string: オブジェクトに保存されたluaステータス。

luaステータスとはオブジェクト内に保存された隠し情報のようなものです。
ゲームがセーブされた時やオブジェクトがコンテナに仕舞われた後、再びロードされた時にデータを引き継ぐために用いることができます。
luaステータスはscript_stateに直接値を代入するかonSaveの返り値指定で設定することができます。

onSave関数

onSave関数はゲームがセーブされた際に実行されます。

onSaveに返り値を指定した場合。

onSave内でreturn記述をし、返り値を指定するとscript_stateにデータが保存されます。
データはstring型に変換されます。

onSaveの注意点

onSaveはゲームセーブ時に呼び出されますが、コンテナに入った時は呼び出されません
頻繁にコンテナへ仕舞われるようなオブジェクトの場合は、値の更新のたびにscript_stateへ値の代入をすると良いでしょう。

タグ:

+ タグ編集
  • タグ:
最終更新:2018年10月24日 00:48