При движении мышки или пальца в право камера движется влево. По Y аналогично. Как инвертировать движение?
if (Input.GetMouseButtonDown(0))
{
touch = Camera.main.ScreenToWorldPoint(Input.mousePosition);
}
if (Input.GetMouseButton(0))
{
Vector3 direction = touch - Camera.main.ScreenToWorldPoint(Input.mousePosition);
Camera.main.transform.position += direction;
}
Я немного модифицировал ваш код. В direction вы получаете именно направление в которое должен двигаться какой-то объект с определенной скоростью
if (Input.GetMouseButtonDown(0))
{
touch = Camera.main.ScreenToWorldPoint(Input.mousePosition);
}
if (Input.GetMouseButton(0))
{
Vector3 direction = Camera.main.ScreenToWorldPoint(Input.mousePosition) - touch;
transform.position += direction.normalized * speed * Time.deltaTime;
}
Проблему решил вот так:
if (Input.GetMouseButtonDown(0))
{
lastPosition = Input.mousePosition;
}
if (Input.GetMouseButton(0))
{
Vector3 dir = Input.mousePosition - lastPosition;
Camera.main.transform.position += dir * Time.deltaTime * speed;
Vector3 camPos = Camera.main.transform.position;
Camera.main.transform.position = new Vector3(Mathf.Clamp(camPos.x, -limitX, limitX), Mathf.Clamp(camPos.y, -limitY, limitY), camPos.z);
lastPosition = Input.mousePosition;
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости