Постоянная ось Y с ошибкой попадания raycast - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь исправить некоторые ошибки в своем проекте, и я столкнулся с проблемой с механикой, когда я хочу, чтобы объект перемещался к моему курсору мыши при щелчке и оставался на 3 единицы выше, где я щелкнул.

Вот мой код:

private void Update()
{
    if (Input.GetMouseButtonDown(0))
    {
        RaycastHit hit;
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        if (Physics.Raycast(ray, out hit))
        {
            var newPosition = hit.point;
            currentDestination = newPosition + new Vector3(0, 3.0f, 0);//mainly this
            notAtDestinationYet = true; 
        }
    }

Однако, используя лучевые трансляции, если я попаду на что-нибудь над своей местностью, например на вершину здания или что-то в этом роде, объект с этим сценарием всегда будет перемещаться на 3 единицы выше, где попадает лучевая трансляция.

Как мне заставить его оставаться на постоянном значении оси Y, равном 3 единицам (или любой другой сумме), несмотря ни на что? Скажи, используя public int.

1 Ответ

0 голосов
/ 11 сентября 2018

Просто измените строку, в которой вы установите currentDestination, чтобы использовать значения x и z из newPosition и постоянное значение y, вместо добавления 3f к значению y newPosition.

currentDestination = new Vector3(newPosition.x, 3.0f, newPosition.z);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...