1

我坚持使用 Unity 的基础知识。我想为手机制作一个场景,其中有四个不同颜色的矩形,每个矩形占据屏幕的 25%。

移动场景

我尝试制作一个 GameObject 图像,将其“注册”为 Inspector 中的预制件。下面的代码是我如何尝试制作单个红色矩形并将其放置在场景中的 (x,y,z) => (0,0,0) 坐标上的示例。存在几个问题:

  • 矩形没有出现
  • 我不知道如何以编程方式指定矩形的宽度和高度

这是它的外观:

public class SceneScript : MonoBehaviour {

    public GameObject prefab;

    void Start () {
        Vector3 pos = new Vector3(0, 0, 0);

        GameObject gameObject = Instantiate(prefab);
        Image image = gameObject.GetComponent<Image>();
        image.color = new Color(1.0F, 0.0F, 0.0F);

        gameObject.transform.position = new Vector3(0, 0, 0);
    }

    // Update is called once per frame
    void Update () {

    }
}

有没有更简单的解决方案,或者这是最佳实践+您能否给我一些提示,我应该怎么做?

4

1 回答 1

1

你的层次结构中可能没有一个Canvas。以下是您如何以编程方式创建您的Canvas、您Image的及其包含GameObject的 s:

    Vector3 pos = new Vector3(0, 0, 0);

    GameObject parentGameObject = new GameObject();
    Canvas canvas = parentGameObject.AddComponent<Canvas>();

    GameObject imageGameObject = new GameObject();
    imageGameObject.transform.SetParent(canvas.transform);

    Image image = imageGameObject.AddComponent<Image>();
    image.color = new Color(1.0F, 0.0F, 0.0F);

    imageGameObject.transform.position = pos;

这将创建一个全屏的红色矩形。创建这些设置后,在检查器中进行RectTransform设置,您应该能够弄清楚如何正确调整它们的大小。

于 2017-03-08T19:25:37.843 回答