Unity: Как я могу перемещаться по сцене только по оси Y? - PullRequest
1 голос
/ 13 марта 2020

У меня есть этот код, который перемещает мою сцену с помощью камеры по осям X и Y. Я передумал и хочу только перемещаться вниз и вверх по оси Y, но оставить ту же ось X такой же, как я могу отредактировать скрипт для этого? Спасибо! :)

void LateUpdate () {
    if (Input.GetMouseButtonDown(0)){
        touchStart = GetWorldPosition(groundZ);
    }
    if (Input.GetMouseButton(0)){
        Vector3 direction = touchStart - GetWorldPosition(groundZ);
        cam.transform.position += direction;
    }
}
private Vector3 GetWorldPosition(float z){
    Ray mousePos = cam.ScreenPointToRay(Input.mousePosition);
    Plane ground = new Plane(Vector3.forward, new Vector3(0,0,z));
    float distance;
    ground.Raycast(mousePos, out distance);
    return mousePos.GetPoint(distance);
}

1 Ответ

1 голос
/ 13 марта 2020

Прошло много времени с тех пор, как я использовал единство, и я могу ошибаться. Но я думаю, что вы можете просто удалить компоненты x и z из вектора направления.

void LateUpdate () {
    if (Input.GetMouseButtonDown(0)){
        touchStart = GetWorldPosition(groundZ);
    }
    if (Input.GetMouseButton(0)){
        Vector3 direction = touchStart - GetWorldPosition(groundZ);
        direction.x = 0;
        direction.z = 0;
        cam.transform.position += direction;
    }
}
private Vector3 GetWorldPosition(float z){
    Ray mousePos = cam.ScreenPointToRay(Input.mousePosition);
    Plane ground = new Plane(Vector3.forward, new Vector3(0,0,z));
    float distance;
    ground.Raycast(mousePos, out distance);
    return mousePos.GetPoint(distance);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...