11日目 Unity 関数の使用方法、クリック検出

関数についてもう一度おさらいします

 

Aスクリプトにある関数をBで使いたいとき

<A>

public class PlayerUIManager : MonoBehaviour

{

public void UpdateUI(Player player) //使いたい関数

 

 

<B>

public PlayerUIManager playerUI//これにより、使いたい関数のあるスクリプトを取得する

 void EnemyAttack()
    {    
        playerUI.UpdateUI(player);  //関数の使用
    }

 

少しはわかりやすくまとめられたかな。。。?

 

クリック検出

これはUIのボタンではなく、Imageで作ったPrefabなどに対してクリックするというときに使います。

 

PrefabをOpenPrefab

②PrehabにColliderとEvent Triggerを追加する。Prefabに使う関数が入っているスクリプトを貼り付ける。

③Event Triggerでタイミングを設定(Pointer Click等)し、そこに②のPrefabを貼り付け、さらに使いたいスクリプト、その中の関数を設定する

④カメラにRaycaster(例えば2Dの場合はPhysics 2D Raycaster)を追加する

 

これで敵が出現した際に、敵のPrefabをクリックすると攻撃等できるようになります。

 

現時点での、スクリプトの全体像

 

①クエスト全体を管理するもの(ステージの進行と敵とのエンカウント)

②ステージのUIを管理するもの(ボタンやステージ進行度)

③バトルを管理するもの(④~⑦のタイミング等をまとめて管理する)

④プレイヤーのUI(攻撃時のHP反映)

⑤プレイヤーのステータス(HPやATの設定と攻撃、ダメージ)

⑥エネミーのUI(攻撃時のHP反映)

⑦エネミーのステータス(HPやATの設定と攻撃、ダメージ)

 

感想

本日はクリック検出、攻撃した際にプレイヤーとエネミーのUI(HPやAT、名前)に反映させるということを行いました。いきなりスクリプトとオブジェクトの数が多くなり、それぞれどこに結びついているのかが分かりづらくなりました。作成していく中では、関数の出発点(クリックした時)などを明確にしておくことで全体の順序を把握することが重要ですね( ´∀` )

あともう一つ、関数を設定するときは、初めにvoid Startでデバッグし、ミスがないかをその都度確認することが大切だと学びました!

 

勉強時間合計:21h