UIの表示と非表示

 

ボス戦の時だけボスのゲージを表示させたい。
ボス戦のエリアに入った時に表示し抜けると非表示にする。

 

空のオブジェクトを作り、名前をBossAreaにした。
スプリクトの名称はBossGateにした。

 

ボス戦のエリアをBoxColliderで囲み、BoxColliderにPlatform Effector2Dを追加する。
Platform Effector2DのSurfaceArcを0にする。
BoxColliderのisTriggerとUsed By Effectorにチェックを入れる。

 

UIのCanvasに右クリックでPalelを追加。
そのPanelにボス用のテキストやスライダーを入れ、子にする。
名前はBossPanelにした。

 

public class BossGate : MonoBehaviour 
{
  private string playerTag = "player"; //プレイヤーのタグ
  [SerializeField] GameObject BossPanel; //表示非表示いるUI

 

  private void Start()
  {
    BossPanel.SetActive(false); //はじめは非表示
  }

 

  private void OnTriggerEnter2D(Collider2D collision) //エリア内に入ったか確認
  {
    if (collision.tag == playerTag) //入ったものがプレイヤーの場合
    {
      BossPanel.SetActive(true); //表示する
      Debug.Log("入った");
    }
  }

 

  private void OnTriggerExit2D(Collider2D collision) //エリアから抜けたか確認
  {
    if (collision.tag == playerTag) //抜けた者がプレイヤーの場合
    {
      BossPanel.SetActive(false); //非表示にする
      Debug.Log("抜けた");
    }
  }
}

 

このページの先頭へ戻る