/* * @author Valentin Simonov / http://va.lent.in/ */ using UnityEngine; using TouchScript.Gestures.TransformGestures; namespace TouchScript.Examples.CameraControl { /// public class CameraController : MonoBehaviour { public ScreenTransformGesture TwoFingerMoveGesture; public ScreenTransformGesture ManipulationGesture; public float PanSpeed = 200f; public float RotationSpeed = 200f; public float ZoomSpeed = 10f; private Transform pivot; private Transform cam; private void Awake() { pivot = transform.Find("Pivot"); cam = transform.Find("Pivot/Camera"); } private void OnEnable() { TwoFingerMoveGesture.Transformed += twoFingerTransformHandler; ManipulationGesture.Transformed += manipulationTransformedHandler; } private void OnDisable() { TwoFingerMoveGesture.Transformed -= twoFingerTransformHandler; ManipulationGesture.Transformed -= manipulationTransformedHandler; } private void manipulationTransformedHandler(object sender, System.EventArgs e) { var rotation = Quaternion.Euler(ManipulationGesture.DeltaPosition.y / Screen.height * RotationSpeed, -ManipulationGesture.DeltaPosition.x / Screen.width * RotationSpeed, ManipulationGesture.DeltaRotation); pivot.localRotation *= rotation; cam.transform.localPosition += Vector3.forward * (ManipulationGesture.DeltaScale - 1f) * ZoomSpeed; } private void twoFingerTransformHandler(object sender, System.EventArgs e) { pivot.localPosition += pivot.rotation * TwoFingerMoveGesture.DeltaPosition * PanSpeed; } } }