Aetheria/Assets/Scripts/UI/MapViewDragHandler.cs

42 lines
1.4 KiB
C#
Raw Normal View History

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
2020-03-29 04:19:24 +01:00
using static Unity.Mathematics.math;
public class MapViewDragHandler : MonoBehaviour
{
public Camera Camera;
public float Scaling;
public ClickCatcher Background;
private Vector2 _previousPosition;
private bool _isDragging;
void Update()
{
var newPosition = Camera.ScreenToWorldPoint(Input.mousePosition);
if (!Input.GetMouseButton(0)) _isDragging = false;
if (_isDragging) Camera.transform.position -= (Vector3) ((Vector2) newPosition - _previousPosition);
if (Background.PointerIsInside)
{
if (Input.GetMouseButtonDown(0))
{
_previousPosition = newPosition;
_isDragging = true;
}
if (abs(Input.mouseScrollDelta.y) > .01f)
{
var previousPosition = Camera.ScreenToWorldPoint(Input.mousePosition);
Camera.orthographicSize *= 1 + Input.mouseScrollDelta.y * Scaling;
Camera.transform.position -= Camera.ScreenToWorldPoint(Input.mousePosition) - previousPosition;
}
2020-03-29 04:19:24 +01:00
}
}
}