// Transfrom終了時に呼ばれる private void OnTransformComplete(object sender, System.EventArgs e) { ScreenTransformGesture gesture = (ScreenTransformGesture)sender; var touchPoint = gesture.ScreenPosition; //開始位置からの移動量をだす var moveVector = touchPoint - _touchStartPoint; // スワイプ方向判定 Direction dir = Vec2Dirction(moveVector); Debug.Log("Swipe " + dir + " End."); switch (dir) { case Direction.UP: swipeUpEnd.Invoke(); break; case Direction.DOWN: swipeDownEnd.Invoke(); break; case Direction.RIGHT: swipeRightEnd.Invoke(); break; case Direction.LEFT: swipeLeftEnd.Invoke(); break; case Direction.NONE: //何もしない break; } _swipeDir = Direction.NONE; }
public SphereGestureStrategy(TileController tileController, ScreenTransformGesture twoFingerMoveGesture, ScreenTransformGesture manipulationGesture, float radius) : base(tileController, twoFingerMoveGesture, manipulationGesture) { _radius = radius; }
protected GestureStrategy(TileController tileController, ScreenTransformGesture twoFingerMoveGesture, ScreenTransformGesture manipulationGesture) { TileController = tileController; TwoFingerMoveGesture = twoFingerMoveGesture; ManipulationGesture = manipulationGesture; }
public void StopMove(ScreenTransformGesture gesture) { MoveTool.StopMove(gesture.ScreenPosition - _startDragPosition); var debugController = ApplicationController.Instance.DebugController; debugController.DeleteDebugPoint(string.Format("{0} ScreenPos", GetInstanceID())); }
public void UpdateMove(ScreenTransformGesture gesture) { var debugController = ApplicationController.Instance.DebugController; debugController.DrawDebugPoint(string.Format("{0} ScreenPos", GetInstanceID()), gesture.ScreenPosition, Color.cyan); MoveTool.UpdateMove(gesture.ScreenPosition - _startDragPosition); }
// Transform開始時に呼ばれる private void OnTransformStart(object sender, System.EventArgs e) { Debug.Log("Transform Start."); //タッチ位置を記録する ScreenTransformGesture gesture = (ScreenTransformGesture)sender; _touchStartPoint = gesture.ScreenPosition; }
// Use this for initialization void Start() { boundariesLayer = 1 << LayerMask.NameToLayer("Boundaries"); cam = Camera.main; inputSource = GetComponent <ScreenTransformGesture>(); pivot = cam.transform.parent; inputSource.Transformed += CameraTransform; }
public static IObservable <float> DeltaScaleAsObservable(this ScreenTransformGesture gesture) { return(Observable .FromEvent <EventHandler <EventArgs>, EventArgs>( h => (sender, e) => h(e), h => gesture.Transformed += h, h => gesture.Transformed -= h) .Select(_ => gesture.DeltaScale)); }
// Transform中に呼ばれる private void OnTransform(object sender, System.EventArgs e) { //タッチ位置を取得する ScreenTransformGesture gesture = (ScreenTransformGesture)sender; var touchPoint = gesture.ScreenPosition; //開始位置からの移動量をだす var moveVector = touchPoint - _touchStartPoint; // スワイプ方向判定 Direction dir = Vec2Dirction(moveVector); // 方向が変わった if (_swipeDir != dir) { switch (_swipeDir) { case Direction.UP: swipeUpCancel.Invoke(); break; case Direction.DOWN: swipeDownCancel.Invoke(); break; case Direction.RIGHT: swipeRightCancel.Invoke(); break; case Direction.LEFT: swipeLeftCancel.Invoke(); break; } _swipeDir = dir; Debug.Log("Swipe " + moveVector + " (" + dir + ")"); switch (dir) { case Direction.UP: swipeUpStart.Invoke(); break; case Direction.DOWN: swipeDownStart.Invoke(); break; case Direction.RIGHT: swipeRightStart.Invoke(); break; case Direction.LEFT: swipeLeftStart.Invoke(); break; case Direction.NONE: break; } } }
private void Awake() { ScaleRange *= Camera.main.orthographicSize; HorizontalMoveGesture = GetComponent <ScreenTransformGesture>(); ScaleGesture = GetComponent <TransformGesture>(); PressGesture = GetComponent <PressGesture>(); ReleaseGesture = GetComponent <ReleaseGesture>(); FlickGesture = GetComponent <FlickGesture>(); }
protected virtual void StateChangedHandle(object sender, System.EventArgs e) { if (!IsActive()) { return; } if (!isTransform || !IsPressing()) { return; } Log("StateChangedHandle (isTransform =" + isTransform + " / IsPressing()=" + IsPressing() + ")"); // 変形中のタッチ時の処理 ScreenTransformGesture gesture = sender as ScreenTransformGesture; Vector2 nowPoint = gesture.ScreenPosition; if (Common.FUNC.IsNanVector(nowPoint)) { return; } if (gesture.NumPointers == 1) { if (dragBorder <= GetFixDistance(startPoint, nowPoint) || isDraging) { //ドラッグ isDraging = true; ActionInvoke(dragingAction); } } else if (gesture.NumPointers == 2) { totalPinch += gesture.DeltaScale - 1; totalTwist += gesture.DeltaRotation; if ((pinchBorder <= Mathf.Abs(totalPinch) || isPinching) && !isTwisting) { //ピンチイン・アウト isPinching = true; ActionInvoke(pinchingAction); } else if ((twistBorder <= Mathf.Abs(totalTwist) || isTwisting) && !isPinching) { //回転 isTwisting = true; ActionInvoke(twistingAction); } prePoint = point; point = nowPoint; IList <Pointer> pList = gesture.ActivePointers; SetPointerDouble(pList[0].Position, pList[1].Position); } }
protected override void OnEnable() { base.OnEnable(); _gesture = GetComponent <ScreenTransformGesture>(); if (_gesture != null) { _gesture.Transformed += Gesture_Transformed; _gesture.TransformCompleted += Gesture_TransformCompleted; _gesture.TransformStarted += Gesture_TransformStarted; } }
// ---------------------------------------------------------------- private void OnEnable() { // Setup Touchscript gestures tranGesture = GetComponent <ScreenTransformGesture>(); tranGesture.TransformStarted += TransformStartHandler; tranGesture.Transformed += TransformOngoingHandler; releaseGesture = GetComponent <ReleaseGesture>(); releaseGesture.Released += ReleaseHandler; pressGesture = GetComponent <PressGesture>(); pressGesture.Pressed += PressHandler; }
private void TransformedHandler(object sender, EventArgs e) { if (this.IsJoystick()) { return; } //Debug.LogError("TransformedHandler"); ScreenTransformGesture gesture = sender as ScreenTransformGesture; if (gesture != null) { Vector2 deltaPos = gesture.ScreenPosition - gesture.PreviousScreenPosition; this.Human.HandleTransform(deltaPos); } }
private void OnEnable() { _grid = FindObjectOfType <BulbGrid>(); _selectionController = ApplicationController.Instance.SelectionController; _tapGesture = transform.GetOrAddComponent <TapGesture>(); _tapGesture.Tapped += _tapGesture_Tapped; _transformGesture = transform.GetOrAddComponent <ScreenTransformGesture>(); _transformGesture.TransformStarted += _transformGesture_TransformStarted; _transformGesture.Transformed += _transformGesture_Transformed; _transformGesture.TransformCompleted += _transformGesture_TransformCompleted; GameState.CurrentState = GameStates.Game; }
private void OnEnable() { _tapGesture = transform.GetOrAddComponent <TapGesture>(); _tapGesture.Tapped += OnTapped; _transformGesture = transform.GetOrAddComponent <ScreenTransformGesture>(); _transformGesture.TransformStarted += OnDragStarted; _transformGesture.Transformed += OnDragUpdate; _transformGesture.TransformCompleted += OnDragCompleted; _transformGesture.Cancelled += (object sender, EventArgs e) => Debug.Log("Cancelled transformgesture"); ApplicationController.Instance.SelectionController.OnSelectionAreaDrawCompleted += OnSelectionAreaDrawCompleted; if (GridModeToggleGroup) { GridModeToggleGroup.OnToggleValueChanged += (GridMode mode) => { SetGridMode(mode); }; SetGridMode(GridModeToggleGroup.CurrentDrawMode); } }
private void Awake() { _grid = FindObjectOfType <BulbGrid>(); _selectionController = ApplicationController.Instance.SelectionController; _tapGesture = transform.GetOrAddComponent <TapGesture>(); _tapGesture.Tapped += _tapGesture_Tapped; _transformGesture = transform.GetOrAddComponent <ScreenTransformGesture>(); _transformGesture.TransformStarted += _transformGesture_TransformStarted; _transformGesture.Transformed += _transformGesture_Transformed; _transformGesture.TransformCompleted += _transformGesture_TransformCompleted; LevelController.OnLevelLoaded += (levelName, levelData) => LevelName.text = levelName; DataController.OnLevelSaved += (levelName) => LevelName.text = levelName; BuildVersionNumber.text = Application.version; GameState.CurrentState = GameStates.Editor; }
private void OnDisable() { _tapGesture = transform.GetOrAddComponent <TapGesture>(); _tapGesture.Tapped -= OnTapped; _transformGesture = transform.GetOrAddComponent <ScreenTransformGesture>(); _transformGesture.TransformStarted -= OnDragStarted; _transformGesture.Transformed -= OnDragUpdate; _transformGesture.TransformCompleted -= OnDragCompleted; if (ApplicationController.Instance.SelectionController != null) { ApplicationController.Instance.SelectionController.OnSelectionAreaDrawCompleted -= OnSelectionAreaDrawCompleted; } if (GridModeToggleGroup) { GridModeToggleGroup.OnToggleValueChanged -= (GridMode mode) => { SetGridMode(mode); }; SetGridMode(GridModeToggleGroup.CurrentDrawMode); } }
protected virtual void StateChangedHandle(object sender, System.EventArgs e) { // 変形中のタッチ時の処理 //Debug.Log("StateChangedHandle"); ScreenTransformGesture gesture = sender as ScreenTransformGesture; Vector2 nowPoint = gesture.ScreenPosition; if (gesture.NumPointers == 1) { //Debug.Log(point + " >> " + gesture.ScreenPosition + "## " + gesture.DeltaPosition); if (dragBorder <= Vector2.Distance(point, gesture.ScreenPosition) || isDraging) { //ドラッグ isDraging = true; Drag(gesture.DeltaPosition.x, gesture.DeltaPosition.y); } } else if (gesture.NumPointers == 2) { totalPinch += gesture.DeltaScale - 1; totalTwist += gesture.DeltaRotation; if ((pinchBorder <= Mathf.Abs(totalPinch) || isPinching) && !isTwisting) { //Debug.Log("Pinch"); //ピンチイン・アウト isPinching = true; Pinch(gesture.DeltaScale - 1); } else if ((twistBorder <= Mathf.Abs(totalTwist) || isTwisting) && !isPinching) { //Debug.Log("Twist"); //回転 isTwisting = true; Twist(gesture.DeltaRotation); } //Debug.Log(gesture.DeltaScale+" ## "+ gesture.DeltaRotation); } //Debug.Log(gesture.ScreenPosition + " ## " + gesture.PreviousScreenPosition); }
// ---------------------------------------------------------------- // Use this for initialization void Awake() { isUserLearnt = false; dragImg = GetComponent <RectTransform>(); if (maskImg == null) { maskImg = transform.parent.GetComponent <RectTransform>(); } gesture = GetComponent <ScreenTransformGesture>(); maskPos = maskImg.position; maskSize = maskImg.sizeDelta; maskTL = new Vector2(maskPos.x - maskSize.x / 2, maskPos.y + maskSize.y / 2); maskBR = new Vector2(maskPos.x + maskSize.x / 2, maskPos.y - maskSize.y / 2); startPos = dragPos = dragImg.position; Vector2 dragScale = dragImg.localScale; dragSize = new Vector2(dragImg.sizeDelta.x * dragScale.x, dragImg.sizeDelta.y * dragScale.y); dragTL = new Vector2(dragPos.x - dragSize.x / 2, dragPos.y + dragSize.y / 2); dragBR = new Vector2(dragPos.x + dragSize.x / 2, dragPos.y - dragSize.y / 2); }
private void RotateMap(ScreenTransformGesture gesture) { double lng1, lat1, lng2, lat2; control.GetCoords(gesture.ScreenPosition, out lng1, out lat1); Vector3 p = dmControl.center; p = control.transform.localToWorldMatrix.MultiplyPoint(p); Vector3 pos = control.transform.position - p; pos = Quaternion.Euler(0, -gesture.DeltaRotation * speed.y, 0) * pos + p; control.transform.position = pos; control.transform.Rotate(0, -gesture.DeltaRotation * speed.y, 0); control.GetCoords(gesture.ScreenPosition, out lng2, out lat2); double ox = lng2 - lng1; double oy = lat2 - lat1; control.map.GetPosition(out lng1, out lat1); control.map.SetPosition(lng1 - ox, lat1 - oy); }
public SurfaceGestureStrategy(TileController tileController, ScreenTransformGesture twoFingerMoveGesture, ScreenTransformGesture manipulationGesture) : base(tileController, twoFingerMoveGesture, manipulationGesture) { }
private void OnEnable() { transformGesture = Camera.main.GetComponent <ScreenTransformGesture>(); transformGesture.Transformed += TransformGesture_Transformed; }
private void OnEnable() { myCamera = GetComponent <Camera>(); PanGesture = GetComponent <ScreenTransformGesture>(); PanGesture.Transformed += Pan; }
public void StartMove(DrawableBase moveHandle, ScreenTransformGesture gesture) { _startDragPosition = gesture.ScreenPosition; MoveTool.StartMove(moveHandle, _startDragPosition, _selectedObjects.ToList()); }