Почему средство рендеринга line в unity не обновляется?

Я пытаюсь провести линию от камеры к созданному объекту. Я использую сцену UnityARHitTest Example. Когда я касаюсь вертикальной плоскости, создается экземпляр объекта, и я хочу провести линию от камеры к объекту. Когда я перемещаю устройство, линия должна отображаться из центра камеры.. Средство визуализации строки причины не отображается, когда я вызываю его в Позднем обновлении.

    LineRenderer lins;
    public GameObject Lineprefab;

bool HitTestWithResultType (ARPoint point, ARHitTestResultType resultTypes)
{
    List<ARHitTestResult> hitResults = UnityARSessionNativeInterface.GetARSessionNativeInterface ().HitTest (point, resultTypes);
    if (hitResults.Count > 0 && check==true) 
    {
        foreach (var hitResult in hitResults) 
        {
            Debug.Log ("Got hit!");

            if (Select == 0)
            {
                Debug.Log("hit-zero!");
                Instantiate(Instaobj[0], ForSelect);
                check = false;
            }

            if (Select == 1)
            {
                Debug.Log("hit-one!");
                Instantiate(Instaobj[1], ForSelect);
                check = false;
            }

            if (Select == 2)
            {
                Debug.Log("hit-two!");
                Instantiate(Instaobj[2], ForSelect);
                check = false;
            }

            if (Select == 3)
            {
                Debug.Log("hit-three!");
                Instantiate(Instaobj[3], ForSelect);
                check = false;
            }

            if (Select == 4)
            {
                Debug.Log("hit-four!");
                Instantiate(Instaobj[4], ForSelect);
                check = false;
            }

            if (Select == 5)
            {
                Debug.Log("hit-five!");
                Instantiate(Instaobj[5], ForSelect);
                check = false;
            }

            m_HitTransform.position = UnityARMatrixOps.GetPosition (hitResult.worldTransform);
            m_HitTransform.rotation = UnityARMatrixOps.GetRotation (hitResult.worldTransform);
            Debug.Log (string.Format ("x:{0:0.######} y:{1:0.######} z:{2:0.######}", m_HitTransform.position.x, m_HitTransform.position.y, m_HitTransform.position.z));

            obj.StopPlaneTracking();
            if (GameObject.Find("debugPlanePrefab(Clone)"))
                GameObject.Find("debugPlanePrefab(Clone)").SetActive(false);
            else
                Debug.Log("no prefab");


            //lins.SetPosition(0, m_HitTransform.position);
            //lins.SetPosition(1, obj.m_camera.transform.position);

            return true;
        }
    }
    return false;
}

Когда я использую lins.setposition () в вышеупомянутом методе (который прокомментирован), в выводе отображается строка. Когда я использую lins.setposition () в приведенном ниже LateUpdate () вывод не отображается, ничего не приходит.

private void Start()
{
    spawngenerator();
}

void spawngenerator()
{
    GameObject newline = Instantiate(Lineprefab);
    lins = newline.GetComponent<LineRenderer>();
    //lins.SetPosition(0, m_HitTransform.position);
    //lins.SetPosition(1, obj.m_camera.transform.position);
}


private void LateUpdate()
{
    lins.SetPosition(0,obj.m_camera.transform.position );
    lins.SetPosition(1,m_HitTransform.position );
}

Куда прикреплен второй скрипт? Что такое lins в первом скрипте? Какие объекты в массиве Instaobj?

Draco18s no longer trusts SE 10.09.2018 19:01

@ Draco18s lins - это инициализированный рендерер строк. Lineprefab содержит игровой объект с компонентом Line Renderer. Instaobj содержит массив моделей, которые я мог выбрать нажатием кнопки.

zyonneo 11.09.2018 06:22

Да, но где второй скрипт прикреплен? Как это работает?

Draco18s no longer trusts SE 11.09.2018 16:57
1
3
637
0

Другие вопросы по теме