Мысль такая. что игрок может перемешать камеру простыми свайпами , но как только камера доходит до пределе карты- она плавно замедляется и возвращается в крайнее положение. И я не могу додумать как можно реализовать это самое ограничение и плавную остановку.
Пока что смог научить камеру лишь передвижению.
Синтаксис:
Используется csharp
if (Input.GetMouseButtonDown(0)) startPos = cam.ScreenToWorldPoint(Input.mousePosition);
else if (Input.GetMouseButton(0))
{
posX = cam.ScreenToWorldPoint(Input.mousePosition).x - startPos.x +transform.position.x;
posY = cam.ScreenToWorldPoint(Input.mousePosition).y - startPos.y +transform.position.y;
targetPos = new Vector3(posX, posY, transform.position.z);
}
transform.position = Vector3.Lerp(transform.position, targetPos, currentSpeed * Time.deltaTime);
else if (Input.GetMouseButton(0))
{
posX = cam.ScreenToWorldPoint(Input.mousePosition).x - startPos.x +transform.position.x;
posY = cam.ScreenToWorldPoint(Input.mousePosition).y - startPos.y +transform.position.y;
targetPos = new Vector3(posX, posY, transform.position.z);
}
transform.position = Vector3.Lerp(transform.position, targetPos, currentSpeed * Time.deltaTime);
Может кто уже делал что-то подобное или может знает в какую сторону думать.
Знаю про "Mathf.Clamp()" но он резко ограничивает все контуры, а меня это расстраивает.
Заранее спасибо за помощь.