私は自分のコンポーネントをUnityで作成しました。これはIBeginDragHandler、IDragHandler、IDropHandlerを実装しています。 UnityEngine.UIに付属しているEventTriggerコンポーネントを追加したいのですが、追加するときにコンポーネント上でOnDropへの呼び出しを停止します。 OnBeginDragとOnDragは通常どおり呼び出されます。Unity EventTriggerはOnDragをスチールしますが、OnDragを盗みません
マイ部品コード:
public class MyComponent : MonoBehaviour, IBeginDragHandler, IDragHandler, IDropHandler
{
public void OnBeginDrag(PointerEventData eventData)
{
Debug.Log("OnBeginDrag!");
}
public void OnDrag(PointerEventData eventData)
{
Debug.Log("OnDrag!");
}
public void OnDrop(PointerEventData eventData)
{
Debug.Log("OnDrop!");
}
}
私は添付このコンポーネントをゲームオブジェクトに私のシーンを開始し、予想されるログ出力は次のとおりです。
OnBeginDrag!
OnDrag!
...
OnDrag!
OnDrop!
これは私限りケースですデフォルトのコンポーネントと私のコンポーネントだけを持っています。私はイベントを追加した場合でも、 - >イベントトリガーコンポーネントは、同じゲームオブジェクトにして、再度実行します(でも、それには何も指定せずに)、出力は次のようになります。
OnBeginDrag!
OnDrag!
...
OnDrag!
OnDropが呼び出されることはありません。コンポーネントの順序は何にも影響しません。
EventTriggerがOnDrop呼び出しを使い果たしてしまうのを防ぐ方法はありますか?
代わりにEndDragを使用して問題を解決しました。ありがとうございます! Unity開発チームにこれについて通知されているかどうかは分かりますか? – Helena
@Helena 100%は確かではありませんが、デベロッパがこれについて回答したUnityフォーラムのスレッドを見たので、彼らはこれを認識していると思います。しかし、バグ報告がすでに満たされているかどうかはわかりません。 – Kardux