Синтаксис:
Используется csharp
public class SwipeCamera : MonoBehaviour
{
[SerializeField]
[Header("Скорость перемещения камеры")]
private float Speed = 5;
private Vector3 startPos;
private Camera cam;
private float targetPos;
private GameObject[] Wall;
private float min = 0;
private float max = 0;
void Start()
{
cam = GetComponent<Camera>();
Wall = GameObject.FindGameObjectsWithTag("BoundingWall");
targetPos = transform.position.x;
if (Wall[0].transform.position.x < 0)
{
min = Wall[1].transform.position.x;
max = Wall[0].transform.position.x;
}
else
{
min = Wall[1].transform.position.x;
max = Wall[0].transform.position.x;
}
}
void Update()
{
if (Input.GetMouseButtonDown(0))
startPos = cam.ScreenToWorldPoint(Input.mousePosition);
else if(Input.GetMouseButton(0))
{
float pos = cam.ScreenToWorldPoint(Input.mousePosition).x - startPos.x;
targetPos = Mathf.Clamp(transform.position.x - pos, min, max);
}
transform.position = new Vector3(Mathf.Lerp(transform.position.x, targetPos, Speed * Time.deltaTime), transform.position.y, transform.position.z);
}
}
{
[SerializeField]
[Header("Скорость перемещения камеры")]
private float Speed = 5;
private Vector3 startPos;
private Camera cam;
private float targetPos;
private GameObject[] Wall;
private float min = 0;
private float max = 0;
void Start()
{
cam = GetComponent<Camera>();
Wall = GameObject.FindGameObjectsWithTag("BoundingWall");
targetPos = transform.position.x;
if (Wall[0].transform.position.x < 0)
{
min = Wall[1].transform.position.x;
max = Wall[0].transform.position.x;
}
else
{
min = Wall[1].transform.position.x;
max = Wall[0].transform.position.x;
}
}
void Update()
{
if (Input.GetMouseButtonDown(0))
startPos = cam.ScreenToWorldPoint(Input.mousePosition);
else if(Input.GetMouseButton(0))
{
float pos = cam.ScreenToWorldPoint(Input.mousePosition).x - startPos.x;
targetPos = Mathf.Clamp(transform.position.x - pos, min, max);
}
transform.position = new Vector3(Mathf.Lerp(transform.position.x, targetPos, Speed * Time.deltaTime), transform.position.y, transform.position.z);
}
}
min = -18, max = 22
Кликах и смещение мышки, камера стоит на месте.
если изменить поменять min и max местами то камера двигается к max, но не двигается к min
Синтаксис:
Используется csharp
targetPos = Mathf.Clamp(transform.position.x - pos, max, min);
Игра 3D