C# 将纹理数组加载到Unity 4.6中的网格布局中的单个图像组件中(使用uGUI)

C# 将纹理数组加载到Unity 4.6中的网格布局中的单个图像组件中(使用uGUI),c#,arrays,image,unity3d,texture2d,C#,Arrays,Image,Unity3d,Texture2d,我在尝试开发一个加载程序时遇到了很多麻烦,该加载程序可以获取数组中的一组纹理,并将它们填充到网格布局中。任何人都可以分享一些代码洞察或一段代码片段来实现这一目的吗?假设您希望以下面的格式显示图像。你能做的就是把你的图像合并成一个大的纹理2D(但我知道图像大小不应该超过2048x2048) 以下功能应完成以下工作: private Texture2D ConcatTexture(Texture2D[,] textures, int imageWidth, int imageHeight) {

我在尝试开发一个加载程序时遇到了很多麻烦,该加载程序可以获取数组中的一组纹理,并将它们填充到网格布局中。任何人都可以分享一些代码洞察或一段代码片段来实现这一目的吗?

假设您希望以下面的格式显示图像。你能做的就是把你的图像合并成一个大的纹理2D(但我知道图像大小不应该超过2048x2048)

以下功能应完成以下工作:

private Texture2D ConcatTexture(Texture2D[,] textures, int imageWidth, int imageHeight)
{
    int rowCount = textures.GetLength(0);
    int columnCount = textures.GetLength(1);

    //Space allocation for the final texture
    Texture2D finalTexture = new Texture2D(columnCount * imageWidth, rowCount * imageHeight);

    for (int i = 0; i < rowCount; i++)
        for(int j=0 ; j < columnCount ; j++)
            finalTexture.SetPixels(j * imageWidth, (rowCount-i-1) * imageHeight, imageWidth, imageHeight, textures[i, j].GetPixels());

    return finalTexture;
}
private Texture2D concatterxture(Texture2D[,]纹理,int-imageWidth,int-imageHeight)
{
int rowCount=textures.GetLength(0);
int columnCount=textures.GetLength(1);
//最终纹理的空间分配
Texture2D finalTexture=新的Texture2D(columnCount*图像宽度,rowCount*图像高度);
对于(int i=0;i

您还可以编辑此代码,并在图像之间放置一些空格(如果这是您要查找的内容)。

是否使用Unity Canvas UI网格布局组?我正在使用网格布局组。还有一点额外的信息——这些图像是用于拖放益智游戏的,用户可以在游戏中组装动物。有6个按钮(角、头、眼睛、身体、腿、尾巴)当它们单击按钮时,会将不同的图像组加载到网格布局组中(并删除上一组)。这方面的任何帮助都是一个救命稻草。我建议先看这个视频(布局),然后再看这个视频(拖放)。我认为这对我来说不起作用,因为每个图像都需要是一个单独的对象,这样才能将其从网格布局中拖出并放到播放区域。