在 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
。以下是如何以编程方式创建 Canvas
、Image
及其包含的 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
设置,您应该能够弄清楚如何正确调整它们的大小。
我坚持使用 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
。以下是如何以编程方式创建 Canvas
、Image
及其包含的 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
设置,您应该能够弄清楚如何正确调整它们的大小。