【Unity】 Captulionの捕獲処理に伴うゲームオブジェクトのレイヤー変更について
Captulionでは昔ナムコからリリースされていたギャラガというゲームに出てくる時期を捕獲してくる敵キャラのように、キャプチャービームを敵に当てることで捕獲することができます。その際に敵キャラのゲームオブジェクトのレイヤーを変えることで、敵機と区別するための処理を加えています。
レイヤーの変更方法について
Captulionでは以下のような記述で捕獲した敵をSlaveというレイヤーに設定しています。これにより捕獲した敵のゲームオブジェクトのレイヤーを変更することができ、レイヤーによって特定の攻撃に対しての当たり判定などが設定することがしやすくなります。
gameObject.layer = LayerMask.NameToLayer("Slave");
捕獲キャラの判定について
捕獲した敵はレイヤーの変更と共に、slaveというフラグを立てて、捕獲状態を判定しています。slaveがついている場合は、捕獲状態として、
自機と同様に敵キャラの攻撃を受けるようにして、反対に敵キャラを攻撃した時はダメージを与えられるようにします。捕獲キャラの攻撃が当たらないように自機に対しても接触をしないようにしています。
Captulionでは以下のようなレイヤーを作りました。今回のバージョンでは導入はしなかったのですが、捕獲した敵のレイヤーも作ることで、後に捕獲した敵のみが攻撃できるような仕組みも取り入れることも考えていました。
ゲームオーバー時の捕獲キャラの自爆について
ゲームオーバー時はslaveキャラを自爆させるために以下のような記述で、ダメージを与えることで自爆させています。
void FixedUpdate ()
{
if (gameController.GetGameOver() == true)
{
if (slave)
{
Damage (9999);
}
return;
}
}
以下iOSシューティングゲームCaptulionになります。よかったらプレイしていただけますととても嬉しいです。