11 public float zoomingSpeed = 1;
12 public float maxZoom = 2f;
13 public float minZoom = 0.2f;
15 private Vector3 targetZoom;
16 private Vector3 zoomVelocity;
18 public float autoZoomSpeed = 0.5f;
19 private float scaleTime = 0.3f;
21 private bool zooming =
false;
22 private float originalDist = 0;
23 private Vector3 mOriginalZoom;
27 targetZoom = transform.localScale;
33 if (UI.Core.instance.layoutSystem.activeScreen == UI.Screen.center) {
35 InputDevice inputDevice = InputDeviceManager.instance.currentInputDevice;
36 if (inputDevice.getDeviceType () == InputDeviceManager.InputDeviceType.Mouse) {
38 if (!UI.Core.instance.pointerIsOverPlatformUIObject) {
39 if (Input.GetAxis (
"Mouse ScrollWheel") != 0) {
41 float inputScroll = Input.GetAxis (
"Mouse ScrollWheel");
43 float zoom = transform.localScale.x + inputScroll / (1 / zoomingSpeed);
45 zoom = Mathf.Clamp (zoom, minZoom, maxZoom);
47 transform.localScale =
new Vector3 (zoom, zoom, zoom);
48 targetZoom = transform.localScale;
51 }
else if (inputDevice.getDeviceType () == InputDeviceManager.InputDeviceType.ViveController) {
56 UnityEngine.EventSystems.PointerEventData.FramePressState triggerState = lc.triggerButtonState;
57 if (triggerState == UnityEngine.EventSystems.PointerEventData.FramePressState.Pressed && zooming ==
false) {
59 originalDist = (lc.transform.position - transform.position).magnitude;
60 mOriginalZoom = transform.localScale;
61 }
else if (triggerState == UnityEngine.EventSystems.PointerEventData.FramePressState.Released && zooming ==
true) {
67 float dist = (lc.transform.position - transform.position).magnitude;
69 float distDiff = dist - originalDist;
71 Vector3 newScale = mOriginalZoom + mOriginalZoom * distDiff;
73 setTargetZoom (newScale);
81 transform.localScale = Vector3.SmoothDamp(transform.localScale, targetZoom, ref zoomVelocity, scaleTime);
84 public void setTargetZoom( Vector3 zoom,
float timeForScaling = 0f )
87 zoomVelocity =
new Vector3 (0, 0, 0);
88 if (timeForScaling == 0) {
90 transform.localScale = targetZoom;
92 scaleTime = timeForScaling;