16番目のパズルで、パズル専用ビューではなく、プレイヤー移動ビューでパズルを解く方式をとった。このパズルを解く間は他の場所に行けないよう、パズル開始/終了時に移動制限をつける/外すという処理が必要となった。
従来、プレイヤー移動ビューでは、パズルに関し完了のイベントのみ受け、それを次のステージへのアンロック処理(アンロック用の専用関数呼び出し)としていた。
パズル開始/終了というイベントに対し、同様に専用処理を個別に作る方法もあるが、統一したイベント処理とすることにした。
このため従来登録された専用コンポーネントの専用関数呼びだしを、UnityEventを使用しインスペクターで設定した任意のコンポーネントの任意の関数を呼び出す処理に変更。この変更の過程で一部コールバック処理が必要となり、あわせて Delegateの仕組みも導入。
UnityEventも Delegateもシステムパッケージなどで使うことはあったが、自身で実装するのは初。