在 Unity 中制作矩形

Make rectangle in Unity

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

我尝试制作一个 GameObject Image,"registering" 它作为 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 () {

    }
}

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

您的继承体系中可能没有 Canvas。以下是如何以编程方式创建 CanvasImage 及其包含的 GameObject

    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 设置,您应该能够弄清楚如何正确调整它们的大小。