「Unity/UniRx/EventTrigger」の版間の差分
ナビゲーションに移動
検索に移動
編集の要約なし |
|||
| 6行目: | 6行目: | ||
using UniRx.Triggers; | using UniRx.Triggers; | ||
GameObject eventTextObj = GameObject.Find("EventText"); | public class EventScene : MonoBehaviour | ||
var eventTrigger = eventTextObj.AddComponent<ObservableEventTrigger>(); | { | ||
void Start() | |||
eventTrigger.OnPointerEnterAsObservable() | { | ||
GameObject eventTextObj = GameObject.Find("EventText"); | |||
eventTrigger.OnPointerExitAsObservable() | var eventTrigger = eventTextObj.AddComponent<ObservableEventTrigger>(); | ||
eventTrigger.OnDragAsObservable() | eventTrigger.OnPointerEnterAsObservable() | ||
.Subscribe(pointerEventData => Debug.Log("PointerEnter " + pointerEventData.position)); // 触れた時 PointerExit (666.0, 1013.0) | |||
eventTrigger.OnPointerDownAsObservable() | eventTrigger.OnPointerExitAsObservable() | ||
.Subscribe(pointerEventData => Debug.Log("PointerExit " + pointerEventData.position)); // 外れた時 | |||
eventTrigger.OnPointerClickAsObservable() | eventTrigger.OnDragAsObservable() | ||
.Subscribe(pointerEventData => Debug.Log("Drag " + pointerEventData.position)); | |||
eventTrigger.OnPointerUpAsObservable() | eventTrigger.OnPointerDownAsObservable() | ||
.Subscribe(pointerEventData => Debug.Log("PointerDown " + pointerEventData.position)); // downした時 | |||
eventTrigger.OnBeginDragAsObservable() | eventTrigger.OnPointerClickAsObservable() | ||
.Subscribe(pointerEventData => Debug.Log("PointerClick " + pointerEventData.position)); // upした時だが、PointerUpの後に実行 | |||
eventTrigger.OnEndDragAsObservable() | eventTrigger.OnPointerUpAsObservable() | ||
.Subscribe(pointerEventData => Debug.Log("PointerUp " + pointerEventData.position)); // upした時 | |||
eventTrigger.OnDropAsObservable() | eventTrigger.OnBeginDragAsObservable() | ||
.Subscribe(pointerEventData => Debug.Log("BeginDrag " + pointerEventData.position)); | |||
eventTrigger.OnInitializePotentialDragAsObservable() | eventTrigger.OnEndDragAsObservable() | ||
.Subscribe(pointerEventData => Debug.Log("EndDrag " + pointerEventData.position)); | |||
eventTrigger.OnScrollAsObservable() | eventTrigger.OnDropAsObservable() | ||
.Subscribe(pointerEventData => Debug.Log("Drop " + pointerEventData.position)); // EndDragとほぼ同じで、EndDragより早い。 | |||
// 以下は、反応しない | eventTrigger.OnInitializePotentialDragAsObservable() | ||
eventTrigger.OnDeselectAsObservable() | .Subscribe(pointerEventData => Debug.Log("Initialize " + pointerEventData.position)); // downした時とほぼ同じで、少し後 | ||
eventTrigger.OnScrollAsObservable() | |||
eventTrigger.OnSelectAsObservable() | .Subscribe(pointerEventData => Debug.Log("Scroll " + pointerEventData.position)); // オブジェクト上でscrollした時 | ||
// 以下は、反応しない | |||
eventTrigger.OnSubmitAsObservable() | eventTrigger.OnDeselectAsObservable() | ||
.Subscribe(baseEventData => Debug.Log("Deselect " + baseEventData.selectedObject)); | |||
eventTrigger.OnCancelAsObservable() | eventTrigger.OnSelectAsObservable() | ||
.Subscribe(baseEventData => Debug.Log("Select " + baseEventData.selectedObject)); | |||
eventTrigger.OnUpdateSelectedAsObservable() | eventTrigger.OnSubmitAsObservable() | ||
.Subscribe(baseEventData => Debug.Log("Submit " + baseEventData.selectedObject)); | |||
eventTrigger.OnMoveAsObservable() | eventTrigger.OnCancelAsObservable() | ||
.Subscribe(baseEventData => Debug.Log("Cancel " + baseEventData.selectedObject)); | |||
eventTrigger.OnUpdateSelectedAsObservable() | |||
.Subscribe(baseEventData => Debug.Log("UpdateSelected " + baseEventData.selectedObject)); | |||
eventTrigger.OnMoveAsObservable() | |||
.Subscribe(axisEventData => Debug.Log("Move " + axisEventData.moveVector)); | |||
} | |||
} | |||
</pre> | </pre> | ||
==反応しない場合== | ==反応しない場合== | ||
Scene内に、EventSystemのゲームオブジェクトがあるか確認。 | Scene内に、EventSystemのゲームオブジェクトがあるか確認。 | ||
2021年9月29日 (水) 10:03時点における版
サンプル
オブジェクトに、触れたときとか、外れたときとかのイベントを取得できる。 ObservableEventTriggerを、オブジェクトに、事前にAddComponentしておいても良い。
using UniRx;
using UniRx.Triggers;
public class EventScene : MonoBehaviour
{
void Start()
{
GameObject eventTextObj = GameObject.Find("EventText");
var eventTrigger = eventTextObj.AddComponent<ObservableEventTrigger>();
eventTrigger.OnPointerEnterAsObservable()
.Subscribe(pointerEventData => Debug.Log("PointerEnter " + pointerEventData.position)); // 触れた時 PointerExit (666.0, 1013.0)
eventTrigger.OnPointerExitAsObservable()
.Subscribe(pointerEventData => Debug.Log("PointerExit " + pointerEventData.position)); // 外れた時
eventTrigger.OnDragAsObservable()
.Subscribe(pointerEventData => Debug.Log("Drag " + pointerEventData.position));
eventTrigger.OnPointerDownAsObservable()
.Subscribe(pointerEventData => Debug.Log("PointerDown " + pointerEventData.position)); // downした時
eventTrigger.OnPointerClickAsObservable()
.Subscribe(pointerEventData => Debug.Log("PointerClick " + pointerEventData.position)); // upした時だが、PointerUpの後に実行
eventTrigger.OnPointerUpAsObservable()
.Subscribe(pointerEventData => Debug.Log("PointerUp " + pointerEventData.position)); // upした時
eventTrigger.OnBeginDragAsObservable()
.Subscribe(pointerEventData => Debug.Log("BeginDrag " + pointerEventData.position));
eventTrigger.OnEndDragAsObservable()
.Subscribe(pointerEventData => Debug.Log("EndDrag " + pointerEventData.position));
eventTrigger.OnDropAsObservable()
.Subscribe(pointerEventData => Debug.Log("Drop " + pointerEventData.position)); // EndDragとほぼ同じで、EndDragより早い。
eventTrigger.OnInitializePotentialDragAsObservable()
.Subscribe(pointerEventData => Debug.Log("Initialize " + pointerEventData.position)); // downした時とほぼ同じで、少し後
eventTrigger.OnScrollAsObservable()
.Subscribe(pointerEventData => Debug.Log("Scroll " + pointerEventData.position)); // オブジェクト上でscrollした時
// 以下は、反応しない
eventTrigger.OnDeselectAsObservable()
.Subscribe(baseEventData => Debug.Log("Deselect " + baseEventData.selectedObject));
eventTrigger.OnSelectAsObservable()
.Subscribe(baseEventData => Debug.Log("Select " + baseEventData.selectedObject));
eventTrigger.OnSubmitAsObservable()
.Subscribe(baseEventData => Debug.Log("Submit " + baseEventData.selectedObject));
eventTrigger.OnCancelAsObservable()
.Subscribe(baseEventData => Debug.Log("Cancel " + baseEventData.selectedObject));
eventTrigger.OnUpdateSelectedAsObservable()
.Subscribe(baseEventData => Debug.Log("UpdateSelected " + baseEventData.selectedObject));
eventTrigger.OnMoveAsObservable()
.Subscribe(axisEventData => Debug.Log("Move " + axisEventData.moveVector));
}
}
反応しない場合
Scene内に、EventSystemのゲームオブジェクトがあるか確認。