Задача: Необходимо реализовать возможность перемещения положения камеры нажатием на дисплей телефона (компьютера). Это на Unity делается очень очень просто. Создается скрипт CameraMove и вешается на Камеру.
using UnityEngine; using System.Collections; using Assets.Scripts; public class CameraMove : MonoBehaviour { private float dragSpeed = 0.01f; private float timeDragStarted; private Vector3 previousPosition = Vector3.zero; // Update is called once per frame void Update() { //тут может быть какое то условие, например на проверку состояния игры. //if (GameManager.CurrentGameState == GameState.Playing) //{ //Нажимаем на экран if (Input.GetMouseButtonDown(0)) { timeDragStarted = Time.time; dragSpeed = 0f; previousPosition = Input.mousePosition; } //перемещение else if (Input.GetMouseButton(0) && Time.time - timeDragStarted > 0.05f) { //Вычисляем расстояние между начальными и текущими координатам Vector3 input = Input.mousePosition; float deltaX = (previousPosition.x - input.x) * dragSpeed; float deltaY = (previousPosition.y - input.y) * dragSpeed; //Смотрим границы по X float newX = Mathf.Clamp(transform.position.x + deltaX, 0, 13.36336f); //Смотрим границы по Y float newY = Mathf.Clamp(transform.position.y + deltaY, -2, 4.715f); //Задаем новые координаты для камеры transform.position = new Vector3( newX, newY, transform.position.z); previousPosition = input; //для маленьких изменений увеличиваем if(dragSpeed < 0.1f) dragSpeed += 0.002f; } // } } }
Комментариев нет:
Отправить комментарий