Unity 13日 後半 バトル終了後にボタンの再表示、敵のステータスの表示方法

<バトル終了後にボタンの再表示>

 

A(バトルの管理)

public class BattleManager : MonoBehaviour

public QuestManager questManager; //Bを持つオブジェクトをインスペクターで貼り付け

void EndBattle()
    {
        questManager.EndBattle(); //BのEndBattleを行う
    }

 

B(クエストの進行などの管理)

public class QuestManager : MonoBehaviour

public StageUIManager stageUI; //Cを持つオブジェクトをインスペクターで貼り付け

public void EndBattle()
    {
        stageUI.ShowButtons(); //CのShowButtonsを行う
    }

 

C(ステージUIを管理)

public class StageUIManager : MonoBehaviour
{
    public Text stageText;   
    public GameObject nextButton;  //インスペクターでボタンの取得
    public GameObject goBackButton;

public void ShowButtons() 
    {
        nextButton.SetActive(true); //ボタンの再表示
        goBackButton.SetActive(true);
    } 

 

<敵のステータスUIの表示>

エスト開始時には表示せず、エンカウントしたときに表示するには

public class BattleManager : MonoBehaviour

public EnemyUIManager enemyUI;

private void Start() //スタート時は非表示に
    {
        enemyUI.gameObject.SetActive(false); //enemyUIがついているゲームオブジェクトを非表示にするためgameObjectが必要
    }

 

public void Setup(EnemyManager enemyManager) //エンカウント時に表示
    {
        enemyUI.gameObject.SetActive(true);         
    }

 

 void PlayerAttack() //倒したときに非表示に
    {
        player.Attack(enemy);
        enemyUI.UpdateUI(enemy);
        if(enemy.hp == 0)
        {
            Destroy(enemy.gameObject);
            enemyUI.gameObject.SetActive(false);
            EndBattle();
        }
        else
        {
            EnemyTurn();
        }
    }

 

感想

ここまできてやっとゴールが見えてきました!ゲームのシステムでいえば、残りはクエストクリア時の切り替えだけですね。とはいえ、画面演出の部分やサウンドなど、ゲームをよりクオリティの高いものにするために必要なことはこれから学ぶので、キリの良いところで今までの復習をするか先に進むかを決めたいと思います。

このブログに書ききれていないところもあるので不安ではありますが、C#スクリプトに関して言えば8割程度理解はできるようになりました。やっぱり書籍で読むよりも、手を実際に動かしながらまねして進めるほうが効率がいいですね( ´∀` )

 

勉強時間合計:24h