public void RaiseManipulationStarted(IInputSource source, uint sourceId, object[] tags = null) { // Create input event manipulationEventData.Initialize(source, sourceId, tags, Vector3.zero); // Pass handler through HandleEvent to perform modal/fallback logic HandleEvent(manipulationEventData, OnManipulationStartedEventHandler); }
public IEnumerator ManipulateObject() { yield return(null); var targetObject = GameObject.Find("TestTarget"); var manipulationDataProvider = targetObject.GetComponent <ManipulationDataProvider>(); var moveByManipulate = targetObject.GetComponent <MoveByManipulate>(); Assert.That(targetObject, Is.Not.Null); Assert.That(manipulationDataProvider, Is.Not.Null); Assert.That(moveByManipulate, Is.Not.Null); yield return(null); // マニピュレーションの開始 manipulationDataProvider.OnManipulationStarted(null); yield return(null); // マニピュレーションのダミーデータ var dummyData = new ManipulationEventData(EventSystem.current); dummyData.Initialize( inputSource: null, sourceId: 0, tag: null, cumulativeDelta: Vector3.one * 0.1f); // マニピュレーションのアップデート manipulationDataProvider.OnManipulationUpdated(dummyData); yield return(null); // オブジェクトが移動したことを確認する Assert.That(targetObject.transform.position, Is.Not.EqualTo(Vector3.zero)); yield return(null); // マニピュレーションの終了 manipulationDataProvider.OnManipulationCompleted(null); // マニピュレーション終了後のオブジェクトの位置 var completedPos = targetObject.transform.position; // 少し待機 yield return(new WaitForSeconds(1f)); // マニピュレーション終了後はオブジェクトの位置が変化しないことを確認する Assert.That(targetObject.transform.position, Is.EqualTo(completedPos)); }