ширина строки рендерера - PullRequest
0 голосов
/ 07 ноября 2018

Я сейчас разрабатываю игру в единстве, где планеты вращаются вокруг Солнца. Мне нужно нарисовать круг, который показывает путь по орбите. Вот код, который я сделал, чтобы нарисовать круги с помощью LineRenderer

        LineRenderer line = moonOrbitTracks[ii].GetComponent<LineRenderer>();

        line.SetVertexCount(segments + 1);
        line.useWorldSpace = false;
        line.SetWidth(1, 1);
        line.widthMultiplier = trackWidth;


        float x;
        float z;

        float angle = 20f;

        for (int i = 0; i < (segments + 1); i++)
        {
            x = Mathf.Sin(Mathf.Deg2Rad * angle) * 
            (float)childMoons[ii].OrbitRadius;
            z = Mathf.Cos(Mathf.Deg2Rad * angle) * 
            (float)childMoons[ii].OrbitRadius;

            line.SetPosition(i, new Vector3(x, z, 0));

            angle += (360f / segments);
        }

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

// Update is called once per frame
void Update () {

    if (Input.GetAxis("Mouse ScrollWheel") > 0f) // forward
    {
        if (MainCamera.orthographicSize > 20)
        {
            MainCamera.orthographicSize = MainCamera.orthographicSize - (MainCamera.orthographicSize * 0.2f);
            Star.trackWidth -= Star.trackWidth * 0.2f;
            Planet.trackWidth -= Planet.trackWidth*0.2f;
        }
    }
    else if (Input.GetAxis("Mouse ScrollWheel") < 0f) // backwards
    {

        MainCamera.orthographicSize = MainCamera.orthographicSize + (MainCamera.orthographicSize*0.2f);
        Star.trackWidth += Star.trackWidth * 0.2f;
        Planet.trackWidth += Planet.trackWidth * 0.2f;
    }
}

проблема в том, что некоторые линии масштабируются с увеличением камеры, а некоторые - нет. но если я перейду на «сцену», строки будут иногда обновляться. как будто он должен был изменить размер, но забыл, пока не будет обновлен.

Я могу прислать вам, ребята, игровые файлы, если это необходимо. Тем не менее, я чувствую, что есть более очевидный способ сделать это ... есть ли другой способ, чтобы линии, нарисованные linerenderer, были постоянной ширины независимо от масштаба камеры

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