今回は、UnityのC#で使うDelegateとActionとFuncについて自己流解説を行います。
なぜ、いきなりDelegateの話を始めたのかは下記動画をご覧ください。
YouTube
https://youtu.be/KaNKg7zJFgo
ニコニコ動画
https://www.nicovideo.jp/watch/sm38134287
進捗報告動画で、敵の移動処理変更を行った時、DelegateとActionについての説明を省き、ここで説明するようにしました。
Delegate(デリゲート)とは
デリゲートの意味を調べると、メソッドを変数のように扱う機能と書かれることが多いです。
デリゲートの使いどころを、自分の制作に当てはめると以下のコードのようになります。
上記の書き方で何がいいのかを、ゲーム制作の進捗動画内容にあわせると、
・移動処理のパターンを敵の種類ごとに作れる
・修正や不具合の発見が行いやすく、影響範囲が小さくできる
個人で制作する上で、見やすくなって移動処理を作りやすくなるメリットになります。
ActionとFunc
ActionとFunc機能は、デリゲートの宣言を簡略化できるものと説明される事が多いです。
下記のサンプルコードをご覧ください
基本となる移動処理
エネミーの場合
プレイヤーの場合
大まかには、Actionは戻り値が無く、Funcは戻り値があるという違いがあります。
制作のコードではActionを良く利用しています。
終わりに
今回は動画内容の補完としてブログでコード解説を書いてみました。
自分で解説出来る範囲での記述ですので、間違いなどがあれば教えていただければ幸いです。
今後も、動画の補完解説を行っていければと思います。
コメント