Добрый день
Я пытаюсь ограничить движение своей камеры, используя функцию, которую я использую для ограничения других элементов в 2D-игре.Когда я вызываю эту функцию с помощью моей камеры, она делает что-то странное.
По какой-то причине она ничего не отображает, как только я вызываю функцию.Я проверил положение камеры с помощью Debug.log, и она, кажется, находится в том же месте.Кажется, что ограничения также работают, но это бесполезно, если ничего не отображается.
Я использую функцию Mathf.Clamp, чтобы попытаться ограничить карту.Я знаю, что есть много обучающих программ, показывающих, как ограничить движение карты, и, честно говоря, мой подход кажется похожим.
Я хочу знать, почему эта функция не работает.Я пытаюсь сохранить общий характер и уже использую эту функцию для ограничения перемещения других игровых элементов.
Мой код выглядит следующим образом:
int cameraSpeed = 10;
GameObject camera;
int maxX = 20;
int minX = -20;
int maxY = 20;
int minY = -20;
// Use this for initialization
public void constrain(GameObject obj)
{
Vector2 pos = obj.transform.position;
pos.x = Mathf.Clamp(pos.x, -maxX, maxX);
pos.y = Mathf.Clamp(pos.y, -maxY, maxY);
obj.transform.position = pos;
}
void Start () {
camera = GameObject.Find("Main Camera");
}
// Update is called once per frame
void Update()
{
if (Input.GetKey(KeyCode.RightArrow))
{
camera.transform.Translate(new Vector2(cameraSpeed * Time.deltaTime, 0));
}
if (Input.GetKey(KeyCode.LeftArrow))
{
camera.transform.Translate(new Vector2(-cameraSpeed * Time.deltaTime, 0));
}
if (Input.GetKey(KeyCode.DownArrow))
{
camera.transform.Translate(new Vector2(0, -cameraSpeed * Time.deltaTime));
}
if (Input.GetKey(KeyCode.UpArrow))
{
camera.transform.Translate(new Vector2(0, cameraSpeed * Time.deltaTime));
}
Debug.Log(camera.transform.position.x);
Debug.Log(camera.transform.position.y);
constrain(camera);
}
Снимок экрана игры без ограничений:![enter image description here](https://i.stack.imgur.com/3ZsZH.jpg)
Снимок экрана игры с ограничениями: ![enter image description here](https://i.stack.imgur.com/DTiyt.jpg)
Я новичок в Unity и пытаюсь полностью понять его.Любой совет будет очень уместным.