【问题标题】:Text in Prefabs is Empty预制件中的文本为空
【发布时间】:2017-04-14 16:17:04
【问题描述】:

我创建了一个文本,在文本下有两个输入字段。然后我创建了它们的预制件并通过代码实例化。及其工作,但问题是实例化的对象是空的并且不显示任何东西只是一个盒子,我面临的问题有什么解决方案吗?

这是我的代码

using UnityEngine;

using System.Collections; 

using System.Collections.Generic;

public class SubmitButton : MonoBehaviour {

public GameObject objects;

public void Start () {

 //        Debug.Log ("ok");
}

 public void InstantiateButton () {
 objects.transform.position = new Vector3 (57.4f, 381.58f, 0f);    
 Instantiate (Resources.Load ("Prefabs/Bupivacaine"), new Vector3 (57.4f, 
 381.58f, 0f), Quaternion.identity);
}
}

【问题讨论】:

  • 你的 Prefabs 文件夹在 Resources 文件夹中吗?
  • 是的,先生,它就像资源文件夹然后是预制文件夹然后是预制

标签: unity3d


【解决方案1】:

如果您尝试在 Canvas 上显示 UI,那么您需要将您的 prefab 设置为 Canvas 的父级。

go.transform.SetParent(canvasGo.transform, false);

【讨论】:

  • 我已将我的预制件放在画布上的面板中
  • @MohassanNoon 尝试将 localScale 设置为 Vector.one
  • 先生,它只显示 4 条矩形线及其 2d 应用程序,我创建了一个按钮,当它按下时会生成预制件,每个预制件都将在滚动视图中,但问题是我不能当第一个预制件为空时走得更远
  • 每个预制件都有一个简单的文本和两个输入字段,
  • @MohassanNoon 您提供的代码不会将实例化对象作为画布的父对象,而是将其留在场景根目录下。要么将实例化转换传递给父级,要么之后使用SetParent 设置父级(前者对资源更友好)。
【解决方案2】:

要实例化 UI 对象,您必须确保它是 Canvas 的根子对象。 所以你应该改变你的实例化方法:

Instantiate(Resources.Load("Prefabs/Bupivacaine"), GameObject.Find("parentNamehere").transform);

在“parentNamehere”中输入父游戏对象的名称并记住:它必须是画布的子对象或画布本身。

【讨论】:

  • 如果可以避免,请不要使用GameObject.Find。实例化返回实例化的对象。
猜你喜欢
  • 2020-04-13
  • 1970-01-01
  • 1970-01-01
  • 2015-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-16
  • 2017-06-15
相关资源
最近更新 更多