示例#1
0
 private void InputControllerOnDragStart(Vector3 dragPosStart)
 {
     if (isDraggingSceneObject == false)
     {
         cameraScrollVelocity = Vector3.zero;
         dragStartCamPos      = Transform.position;
         IsDragging           = true;
         DragCameraMoveVector.Clear();
         SetTargetPosition(Transform.position);
     }
 }
示例#2
0
 private void InputControllerOnDragStop(Vector3 dragStopPos, Vector3 dragFinalMomentum)
 {
     if (isDraggingSceneObject == false)
     {
         cameraScrollVelocity = GetVelocityFromMoveHistory();
         if (cameraScrollVelocity.sqrMagnitude >= autoScrollVelocityMax * autoScrollVelocityMax)
         {
             cameraScrollVelocity = cameraScrollVelocity.normalized * autoScrollVelocityMax;
         }
         timeRealDragStop = Time.realtimeSinceStartup;
         IsDragging       = false;
         DragCameraMoveVector.Clear();
     }
 }
示例#3
0
        private void UpdatePosition(float deltaTime)
        {
            if (IsDragging == true || IsPinching == true)
            {
                Vector3 posOld = Transform.position;
                if (IsSmoothingEnabled == true)
                {
                    Transform.position = Vector3.Lerp(Transform.position, targetPositionClamped, Mathf.Clamp01(Time.deltaTime * camFollowFactor));
                }
                else
                {
                    Transform.position = targetPositionClamped;
                }
                DragCameraMoveVector.Add((posOld - Transform.position) / Time.deltaTime);
                if (DragCameraMoveVector.Count > momentumSamplesCount)
                {
                    DragCameraMoveVector.RemoveAt(0);
                }
            }

            Vector2 autoScrollVector = -cameraScrollVelocity * deltaTime;
            Vector3 camPos           = Transform.position;

            switch (cameraAxes)
            {
            case CameraPlaneAxes.XY_2D_SIDESCROLL:
                camPos.x += autoScrollVector.x;
                camPos.y += autoScrollVector.y;
                break;

            case CameraPlaneAxes.XZ_TOP_DOWN:
                camPos.x += autoScrollVector.x;
                camPos.z += autoScrollVector.y;
                break;
            }
            Transform.position = GetClampToBoundaries(camPos);
        }
示例#4
0
 private void InputControllerOnPinchStop()
 {
     IsPinching = false;
     DragCameraMoveVector.Clear();
 }