c# - 尝试从资源文件夹加载预制件时获取空值

标签 c# user-interface unity3d

我在 Resources 文件夹中加载了一个预制件,但是当我试图从代码中获取它时,它返回 NULL。我怎样才能做对?我只想获取预制件并访问位于预制件中的我的 UI 组件,然后从预制件对象更改 UI 值..

enter image description here

GameObject alertPrefab = (GameObject)Instantiate(Resources.Load("Prefabs/AlertPrefab"));

最佳答案

您还可以创建一个 public[SerializeField] 类型的 GameObject 变量并将 Prefab 拖到您想要使用,到 Inspector 中的 script

创建公共(public)变量

enter image description here

将预制件从预制件文件夹拖到脚本中

enter image description here

然后从脚本中的公共(public)变量实例化它

private void spawnNewFood () {
    float rand = Random.Range (2, 6);
    int factor = ((int)rand % 2 == 0) ? 1 : -1;
    float x = rand * factor;
    float z = rand * factor;

    Vector3 positionFood = new Vector3 (x, 0, z);
    Instantiate (_food, positionFood, Quaternion.identity);
}

关于c# - 尝试从资源文件夹加载预制件时获取空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25866493/

相关文章:

jquery - 更改 Jquery UI Accordion 的动画速度

c# - 用于多平台大型软件开发的编程语言?

linux - 下载没有集线器 Ubuntu 的 Unity3D 编辑器

android - LogCat android unity3d游戏崩溃

c# - WCF 中的消息无法处理异常

c# - ListView问题: it does not Jump to the selected item

c# - x :Bind StackOverflow when trying to x:Bind ListView. 使用 TwoWay 模式的 SelectedItem

c# - 使用电子表格设备将图像添加到 Excel 标题?

java - 如何在 javafx 中使用 Canvas 和文本

unity3d - 如何从脚本统一播放音频剪辑?