【ハルシオンブログ】UnityのEventTrigger処理呼び出しをコードで書く方法。
こんにちは。坂内っす。
パラリンピックが明日から開催のようですね。
そういえば見たことなかったですね・・・まぁオリンピックもほぼ見ないんですけどね・・・
さて、ポケガ3の進捗ですが、難産に難産を重ねて難産中です。
可愛い女の子育てたいですよね?
ってことで、キャラデザのイラストレーターさんが現在4人目。
そしてシナリオライターさんもなんと3人目!
完成するのでしょうか??
完成させますけどね!
現状ですと、リリース予定は来年の4月ころ?
おかしいなぁ~ 今年の4月ころにはリリースしようとしてたんだけどねぇ・・
なにはともあれリリースまで頑張っていくしかありませんね。
2020年の8月からまともな収入がない現状、いつ死ぬかわかりませんが・・・
さて、UnityのuGUIでボタンがありますが、ボタンが"押される"という処理は"ボタンを押す+ボタンを離す"これでワンセットになってますよね。
"押したけど離さない"だと、ボタンのOnClickが呼ばれません。
"押した瞬間に処理"をさせたい場合はEventTriggerを使ったりします。
[EventTrigger]についてはリファレンスをどうぞ
https://docs.unity3d.com/ja/2018.4/ScriptReference/EventSystems.EventTrigger.html
EventTriggerを使えば、ドラッグアンドドロップの処理なんかもできますね。
今回はEventTriggerのPointerEnterの処理をコード側で呼ぶ方法のメモ。
ボタンの場合はこんな感じで処理を呼べます。
[Blog20210823.cs]
onClick.AddListenerでメソッドを呼ぶことができました。
しかしEventTriggerの場合は同じことをしようとすると、こんな感じになります。

OnPointerEnterにはAddListenerがありません。
ということで、こんな感じで書くことができます。
[Blog20210823.cs]
ボタンと比べるとちょっとめんどいけど、コードで書くと追いやすくていいですよね!
Inspectorで処理をアサインするのもいいけど、うちではコードで書くのが流行ってます。
ということで、EventTriggerの処理呼び出しをコードでやる方法でした!もちろんPointerEnterとかも使えますよ!
あでゅ~ノシ
パラリンピックが明日から開催のようですね。
そういえば見たことなかったですね・・・まぁオリンピックもほぼ見ないんですけどね・・・
さて、ポケガ3の進捗ですが、難産に難産を重ねて難産中です。
可愛い女の子育てたいですよね?
ってことで、キャラデザのイラストレーターさんが現在4人目。
そしてシナリオライターさんもなんと3人目!
完成するのでしょうか??
完成させますけどね!
現状ですと、リリース予定は来年の4月ころ?
おかしいなぁ~ 今年の4月ころにはリリースしようとしてたんだけどねぇ・・
なにはともあれリリースまで頑張っていくしかありませんね。
2020年の8月からまともな収入がない現状、いつ死ぬかわかりませんが・・・
さて、UnityのuGUIでボタンがありますが、ボタンが"押される"という処理は"ボタンを押す+ボタンを離す"これでワンセットになってますよね。
"押したけど離さない"だと、ボタンのOnClickが呼ばれません。
"押した瞬間に処理"をさせたい場合はEventTriggerを使ったりします。
[EventTrigger]についてはリファレンスをどうぞ
https://docs.unity3d.com/ja/2018.4/ScriptReference/EventSystems.EventTrigger.html
EventTriggerを使えば、ドラッグアンドドロップの処理なんかもできますね。
今回はEventTriggerのPointerEnterの処理をコード側で呼ぶ方法のメモ。
ボタンの場合はこんな感じで処理を呼べます。
[Blog20210823.cs]
using UnityEngine;
using UnityEngine.UI;
public class Blog20210823 : MonoBehaviour
{
[SerializeField] Button btnA;
private void Start() {
btnA.onClick.AddListener(OnClickA);
}
void OnClickA() {
// 処理
}
}
onClick.AddListenerでメソッドを呼ぶことができました。
しかしEventTriggerの場合は同じことをしようとすると、こんな感じになります。

OnPointerEnterにはAddListenerがありません。
ということで、こんな感じで書くことができます。
[Blog20210823.cs]
using UnityEngine;
using UnityEngine.EventSystems;
public class Blog20210823 : MonoBehaviour
{
[SerializeField] EventTrigger evtA;
private void Start() {
EventTrigger.Entry pDown = new EventTrigger.Entry();
pDown.eventID = EventTriggerType.PointerDown;
pDown.callback.AddListener((data) => OnClickA());
evtA.triggers.Add(pDown);
}
void OnClickA() {
// 処理
}
}
ボタンと比べるとちょっとめんどいけど、コードで書くと追いやすくていいですよね!
Inspectorで処理をアサインするのもいいけど、うちではコードで書くのが流行ってます。
ということで、EventTriggerの処理呼び出しをコードでやる方法でした!もちろんPointerEnterとかも使えますよ!
あでゅ~ノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ】Tupleを利用した変数の値の交換(スワップ) | 【ハルシオンブログ】stringからenumへの変換 »
コメント
| h o m e |