为什么 public 纹理在 Monobehaviour 中不可用?

Why isn't a public texture available in a Monobehavior?

我有一个简单的 class 有一个纹理:

using UnityEngine;
public class RayTracingMaster : MonoBehaviour
{
    
    public Texture SkyboxTexture;
    
    private void Awake()
    {  
        // This is null?
        Debug.Log(SkyboxTexture);
    }
}

我已将图像拖放到 Unity 中并将其链接到 SkyboxTexture UI 元素。 但无论我在哪里尝试在脚本(上方)中引用它,它都是 null.

您所看到和编辑的是脚本文件本身的Inspector!

您将纹理和着色器引用为此脚本的任何新实例的“默认引用”

请注意,这只会对之后创建的实例有任何影响,不会影响已经存在的实例。


而是使用 "t:RayTracingMaster"(我想你的 MainCamera)搜索附加到场景中任何游戏对象或预制件的组件的现有实例,并确保你也有正确引用了纹理等!