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