Game Maker Language リファレンス > 組み込み関数 用途別 > リソース操作・ルーム > 一般的なレイヤー関数 > instance_activate_layer()
この関数を使用すると、以前に非アクティブ化されたレイヤーをアクティブ化できます。 引数にはレイヤーIDを指定する必要があります。これは、コードエディターで記述されたレイヤーの名前(文字列として)または layer_create() によって返される実際のレイヤーID値のいずれかであり、そのレイヤーで非アクティブ化されたすべてのインスタンスが再度アクティブ化されます 。 永続インスタンスを持つレイヤーを非アクティブ化した場合は、部屋を変更する前に、この機能を使用してレイヤーを再度アクティブ化する必要があります。そうしないと、永続インスタンスは引き継がれず、破棄されます。 また、アクティブ化は瞬時ではなく、この方法でアクティブ化されたインスタンスは、関数が呼び出されたイベントが終了するまでアクティブであるとは見なされないことにも注意してください。
instance_activate_layer(layer_id);
instance_activate_all(); var _vx = camera_get_view_x(view_camera[0]); var _vy = camera_get_view_y(view_camera[0]); instance_deactivate_region(view_xview[0] - 64, view_yview - 64, _vx + 128, _vy + 128, false, false); instance_activate_layer("Player_Layer");
上記のコードは、部屋内のすべてのインスタンスをアクティブにしてから、現在のカメラビューの制限外にあるインスタンスを非アクティブにします。ただし、最後に再びアクティブになるレイヤー "Player_Layer" 上のインスタンスは除きます。