【ハルシオンブログ】Unityでボタンを押された際にメソッドを呼ぶ方法。基本なことなんだけど、AddListnerで呼んだ方がいいんじゃない?
こんにちは。坂内です。
暑い日が続きますねえ~
熱中症とかに気を付けてください。
Unityでボタンを押した時の処理を呼ぶときに、以前まではボタンのOnClickイベントに呼ばれる処理をアサインする形でやっていたけど、最近はAddListnerを使っているよという話。
皆さんどちらをお使いですか?
①ボタンのOnClickにアサインする方法

②コードからonClick.AddListnerをする方法
おすすめは②です。
①をやっている方は②に変えた方がいいかもしれません。
※勝手に思ってるだけで、正しいとは限りません。
なぜ?
なぜならば、そのメソッドを呼んでいる元が追えるからです。
OnClickButtonのメソッドがどこから呼ばれているか確認する際に、OnClickButtonのメソッド宣言のところでShift+F12(※Windowsの場合)って押しますよね?
そのメソッドを呼んでいる参考先を探すショートカットなんですが、これを押すとこうなります。

って感じで、呼んでいる元を探せます。
しかし①の場合はInspectorでアサインしているので、参照元を探せません。
その結果、「あれ?このメソッド使ってなかったっけ」となる可能性があります。
使われていないと勘違いしてそのメソッドを消してしまうと、実行時にエラーが出てしまいます。
よって②のAddListnerで押された処理を呼んだ方がいいと思っています。
ということで、ボタン押された時のアクションの書き方について簡単に書いてみました。
何が正しいかわかりませんけどね!
ってことで、あでゅ~ノシ
暑い日が続きますねえ~
熱中症とかに気を付けてください。
Unityでボタンを押した時の処理を呼ぶときに、以前まではボタンのOnClickイベントに呼ばれる処理をアサインする形でやっていたけど、最近はAddListnerを使っているよという話。
皆さんどちらをお使いですか?
①ボタンのOnClickにアサインする方法

②コードからonClick.AddListnerをする方法
using UnityEngine;
using UnityEngine.UI;
public class Blog20200824 : MonoBehaviour
{
public Button btnTest;
private void Start() {
btnTest.onClick.AddListener(OnClickButton);
}
public void OnClickButton() {
Debug.Log("ボタン押したよ");
}
}
おすすめは②です。
①をやっている方は②に変えた方がいいかもしれません。
※勝手に思ってるだけで、正しいとは限りません。
なぜ?
なぜならば、そのメソッドを呼んでいる元が追えるからです。
OnClickButtonのメソッドがどこから呼ばれているか確認する際に、OnClickButtonのメソッド宣言のところでShift+F12(※Windowsの場合)って押しますよね?
そのメソッドを呼んでいる参考先を探すショートカットなんですが、これを押すとこうなります。

って感じで、呼んでいる元を探せます。
しかし①の場合はInspectorでアサインしているので、参照元を探せません。
その結果、「あれ?このメソッド使ってなかったっけ」となる可能性があります。
使われていないと勘違いしてそのメソッドを消してしまうと、実行時にエラーが出てしまいます。
よって②のAddListnerで押された処理を呼んだ方がいいと思っています。
ということで、ボタン押された時のアクションの書き方について簡単に書いてみました。
何が正しいかわかりませんけどね!
ってことで、あでゅ~ノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ】Unity2020.1でDevice Simulatorが見つからなかった | 【ハルシオンブログ】Unity2020.1でオブジェクトのコピペメニューが増えてるんですね。 »
コメント
| h o m e |