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);  //関数を使うときenemytargetにいれて考える

 

public int at;

void Damage(int damage) //関数の設定

target.Damage(at);   //関数を使うときatdamageに入れて考える

 

分からなくなったらもう一度これを見て自分!!

 

勉強時間合計:16.5h