C# 创建二维矩形并对其应用纹理

C# 创建二维矩形并对其应用纹理,c#,2d,textures,unity5,C#,2d,Textures,Unity5,我想创建一个彩色矩形,我通常的方法是创建一个所需大小的矩形精灵,将其导入unity,将其附加到游戏对象,然后附加物理、碰撞控制等内容 但是,我想创建一个随机大小的矩形,然后给它一个纹理。我不能用老办法,因为那样我就必须创建几千个精灵,然后随机创建一个 如何在不使用任何精灵的情况下创建任意大小的二维矩形 老实说,我不知道这个问题是否有意义,我可能认为这一切都错了,我只需要知道我应该使用什么方法,我在这里完全不知所措。方法是在项目中添加一个精灵,然后在精灵上附加一个脚本,生成两个随机数,一个是长度,

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

但是,我想创建一个随机大小的矩形,然后给它一个纹理。我不能用老办法,因为那样我就必须创建几千个精灵,然后随机创建一个

如何在不使用任何精灵的情况下创建任意大小的二维矩形


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

方法是在项目中添加一个精灵,然后在精灵上附加一个脚本,生成两个随机数,一个是长度,一个是宽度

void Awake(){

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

您可以实例化一个立方体,因为它是一个二维环境,除非旋转,否则立方体渲染为矩形。最简单的方法是对你想要的立方体进行预制,然后实例化它,a
instantiate(myCube,newvector3(0,0),Quaternion.Euler(0,0,0),myParent)

您还可以尝试创建一个基本多维数据集,然后手动分配其属性,尽管这非常复杂。我现在不在家,所以它未经测试,但以下方法应返回位置、比例和颜色以外的立方体(但可以编辑以接受材质):

GameObject NewCube(矢量3位置、矢量3比例、颜色){
GameObject cubePrototype=GameObject.CreatePrimitive(PrimitiveType.Cube);
cubePrototype.transform.position=pos;
cubePrototype.transform.localScale=scale;
Material materialPrototype=新材质(Shader.Find(“unlight/Color”);
materialPrototype.color=颜色;
Renderer cuberender=新的渲染器(cubePrototype.GetComponent());
cuberender.material=材料原型;
返回立方体原型;
}

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

我能够使用您的类创建一个黑色立方体,并使用以下参数初始化它:
test=NewCube(新向量3(0,0),新向量3(2,3,0),Color.black)谢谢!(如果您还有其他想法,请告诉我!)
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;
}