Unity LineRenderer - 无法获得参考

Posted

技术标签:

【中文标题】Unity LineRenderer - 无法获得参考【英文标题】:Unity LineRenderer - unable to get reference 【发布时间】:2020-10-08 15:33:14 【问题描述】:

我在顶层有一个带有 LineRenderer 的 Unity 场景(即不是某些组件的子组件),称为“LineOfFlight”。

我正在尝试以编程方式(而不是通过编辑器)获取对它的引用:

    LineRenderer
            lineOfFlight;
    GameObject
            tmp = GameObject.Find("LineOfFlight");

    if (tmp != null)
        lineOfFlight = tmp.GetComponent<LineRenderer>();

    Debug.Log("lineOfFlight=" + (lineOfFlight == null ? "null" : "not null") + ", tmp=" + (tmp == null ? "null" : tmp.ToString()));

在调试日志中,tmp 显示为“LineOfFlight (UnityEngine.GameObject)”,看起来不错,但 lineOfFlight 显示为“null”。即无法获取组件。

我在 Awake() 中做这一切。我做错了什么?

【问题讨论】:

能否请您在文件中包含完整的代码,而不需要编辑任何内容,包括它们所在的函数等。现在我们对您的问题的信息不完整,因为代码本身似乎为我工作。 【参考方案1】:

在您的问题中未包含的部分代码中存在错误,因为代码本身在正确格式化并在函数中设置时可以正常工作。

或者,您的名为“LineOfFlight”的GameObject 的名称可能有拼写错误,或者没有添加LineRenderer 组件。

using UnityEngine;

public class LineRendererText : MonoBehaviour


    LineRenderer lineOfFlight = null;

    private void Start()
    
        GameObject tmp = GameObject.Find("LineOfFlight");

        if (tmp != null)
            lineOfFlight = tmp.GetComponent<LineRenderer>();

        Debug.Log("lineOfFlight=" + (lineOfFlight == null ? "null" : "not null") + ", tmp=" + (tmp == null ? "null" : tmp.ToString()));
    

【讨论】:

以上是关于Unity LineRenderer - 无法获得参考的主要内容,如果未能解决你的问题,请参考以下文章

unity利用LineRenderer在两点之间生成抛物线

Unity之LineRenderer组件

<转载>Unity3D中LineRenderer的使用

Unity LineRenderer制作画版

Unity-Linerenderer画线功能

Unity实现绘制线断一 ————利用LineRenderer组件划线的两种方式