8日目 Unity ターン制バトルのスクリプト1
今回は、ボタンをクリックしたら相手に攻撃、そのまま相手のターンに切り替わり相手の攻撃まで行います。
A バトルを管理するスクリプト
B キャラクターを管理するスクリプト(ステータスや攻撃、ダメージの関数)
A バトルを管理するスクリプト
public UnitManager player; // Bの情報をPlayerとして取得する
public UnitManager enemy; // Bの情報をEnemyを取得する
public void OnAttackButton() //ボタンを押したら攻撃する関数
ボタンのOnClickにAを付けたオブジェクトを貼り付け、その右の関数をOnAttackButton() に
{
player.Attack(enemy); //Bの public void Attack(UnitManager target)
Enemyturn(); //ターン変更
}
void Enemyturn() //相手のターン(相手の攻撃)
{
enemy.Attack(player); //Bの public void Attack(UnitManager target)
}
B キャラクターを管理するスクリプト(ステータスや攻撃、ダメージの関数)
public int hp; //フィールドにステータス
public int at;
public void Attack(UnitManager target) //攻撃の関数
{
target.Damage(at); //targetにat分攻撃する
}
void Damage(int damage) //ダメージの関数
{
hp -= damage; //at分のダメージを受ける
Debug.Log(name + "は" + damage + "ダメージを受けた");
}
感想
関数の引数がどのように動作しているのか曖昧だった部分が、今回はっきりとわかった気がします!!
public void Attack(UnitManager target) //関数の設定
player.Attack(enemy); //関数を使うときenemyをtargetにいれて考える
public int at;
void Damage(int damage) //関数の設定
target.Damage(at); //関数を使うときatをdamageに入れて考える
分からなくなったらもう一度これを見て自分!!
勉強時間合計:16.5h