Unity Vector Raycast Debug - PullRequest
       1

Unity Vector Raycast Debug

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

Я пытаюсь нарисовать мой raycast на экране в 2D

RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector3.down, 2f, layerMask);
        Debug.DrawRay(transform.position, (transform.position + new Vector3(transform.position.x, transform.position.y+250, transform.position.z)), Color.green);
        Debug.DrawLine(transform.position, (transform.position + new Vector3(transform.position.x, transform.position.y+250, transform.position.z)), Color.magenta);
        Debug.DrawLine(transform.position, (transform.position + new Vector3(hit.normal.x, hit.normal.y, -10)), Color.magenta);
        Debug.DrawLine(transform.position, (transform.position + new Vector3(hit.normal.x, hit.normal.y, 10)), Color.magenta);

Лучник работает, но я бы хотел его увидеть. В данный момент я ничего не вижу. Я бы подумал, что мне нужно просто оригинальное трехмерное векторное преобразование + смещение от него. Но, похоже, ничего не работает.

1 Ответ

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

Без указания продолжительности, я почти уверен, что Debug.DrawRay сохраняется только в одном кадре .Так что либо попробуйте указать продолжительность:

Debug.DrawRay(transform.position, (transform.position + new Vector3(transform.position.x, transform.position.y+250, transform.position.z)), Color.green, 2.0f);

, либо нарисуйте ее внутри Update или, предпочтительно, OnDrawGizmos:

private void OnDrawGizmos()
{
    Debug.DrawRay(transform.position, (transform.position + new Vector3(transform.position.x, transform.position.y + 250, transform.position.z)), Color.green);
}

Приведенный выше код отображал зеленую линию, которая была видна в каждом кадре.В основном то, что вы ожидаете, что он сделает.

В 101D нет никакого способа быть в OnDrawGizmos любыми средствами, но преимущество в OnDrawGizmos заключается в том, что вы аккуратно разделяете код отладки.из другого кода, поэтому я склонен пойти с этим решением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...