创建一个2d矩形并对其应用纹理

时间:2017-09-05 10:06:28

标签: c# 2d textures unity5

我想创建一个彩色矩形,我的常规方法是创建一个所需大小的矩形精灵,将其导入统一,将其附加到游戏对象,然后附加物理,碰撞控制等内容不

但是,我想创建一个随机大小的矩形,然后给它一个纹理。我不能用旧的方式做,因为那时我必须创建几千个精灵然后随机一个。

如何在不使用任何精灵的情况下创建随机大小的2d矩形?

老实说,我不知道这个问题是否有意义,我可能会认为这一切都错了,我只需知道我应该采用什么方法,我在这里完全不知所措。

2 个答案:

答案 0 :(得分:1)

您可以实例化一个立方体,因为它是一个2D环境立方体渲染为矩形,除非旋转。最简单的方法是制作所需多维数据集的预制件然后实例化它,例如Instantiate(myCube, new Vector3(0, 0), Quaternion.Euler(0, 0, 0), myParent);

你也可以尝试制作一个原始立方体,然后手动分配它的属性,尽管这是非常复杂的。我现在不在家,因此未经测试,但以下方法应该从位置,比例和颜色返回一个立方体(但可以编辑以接受材料):

GameObject NewCube(Vector3 pos, Vector3 scale, Color color) {

    GameObject cubePrototype = GameObject.CreatePrimitive(PrimitiveType.Cube);
    cubePrototype.transform.position = pos;
    cubePrototype.transform.localScale = scale;

    Material materialPrototype = new Material(Shader.Find("Unlit/Color"));
    materialPrototype.color = color;

    Renderer cubeRenderer = new Renderer(cubePrototype.GetComponent<Renderer>());
    cubeRenderer.material = materialPrototype;

    return cubePrototype;
}

在您自己的情况下,只需为scale参数传递三个随机数。

答案 1 :(得分:0)

解决这个问题的方法是在项目中添加一个精灵,然后将一个脚本附加到该精灵上,该精灵生成两个随机数,一个用于长度,然后一个用于宽度。

void Awake(){

    Vector3 scale = new Vector3( width, height, 1f );
}