【问题标题】:Multidimensional array of texture in Unity3dUnity3d中的多维纹理数组
【发布时间】:2013-09-06 06:37:59
【问题描述】:

我有一些textures 需要动态显示在不同的scrollviews 中。 对于命名约定,我使用以下方法
texturename24
texturename - 此前缀与每个纹理相关联。
2-这代表了一个特定类别的纹理,即点。条纹等
4 - 这是纹理的序列号

使用以下代码行,我正在从资源文件夹中获取 textures
var 纹理:对象 [];
纹理 = Resources.LoadAll("TextureFolder");

我需要为每个模式创建数组假设texturename00,01,02,03 应该在一个数组中,texturename10,11,12,13 应该是另一个数组,这里我需要根据模式计数创建动态数组。

【问题讨论】:

  • :如果你尝试,它非常简单。下次发布任何问题之前,请确保你尝试过一些东西。
  • 这不是你想的那么简单。

标签: arrays multidimensional-array unity3d unityscript


【解决方案1】:

过去几天我一直在考虑这个问题,基本上我想不出一个单一的用例来解决你正在做的事情,通过实施一个简单的精灵表解决方案不能更好地解决这个问题。您还可以获得数百种可用的解决方案中的任何一种,这些解决方案实施了针对此问题的基于工作表的解决方案。

加载纹理对于引擎来说不是一项简单的任务,并且您希望尽可能限制您的 inode 访问。使用将所有子图像定期放置的单个 Atlas 纹理将是一种简单的解决方案。然后,您将遍历地图并为使用相同图像的每个材质分配 mainTextureOffsets。您也可以使用不规则放置,但为此您需要某种瞬态介质来存储偏移值。

在这个解决方案中,不是将texture2d存储在内存中;相反,您将存储内存密集程度低得多的 Vector2 结构。如果您的用例超出了您可以使用精灵表(Atlas 地图)执行的参数,您必须在此处完整详细说明,以便我们可以进一步帮助您,但我相当肯定这会让您获得以最有效的方式解决。

【讨论】:

  • 抱歉回复晚了。我已经更新了我的问题,我暂时完成了这项任务,但我想知道一个更好的方法来做到这一点。
【解决方案2】:

FIDDLE DEMO

var outer_array = [];
 var inner_array = [];

 for (var i = 0; i < 35; i++) {
     inner_array.push(i);
     if (inner_array.length == 4) {
         outer_array.push(inner_array);//push the array[0,1,2,3] and so on in to outer array.
         inner_array = [];//this will empty my array
         i = i + 6;//to jump from 4 to 10,14 to 20 and so on..
     }
 }

 console.log(outer_array)

【讨论】:

  • 您需要更明确地处理您遇到的问题。
  • 因为我需要存储 textures,这是 Texture2d 的统一类型。为此,我需要创建纹理数组。
【解决方案3】:

我找到了一种方法来做到这一点。 声明一个二维数组并将行和列设置为 100 并使用下面的代码行。 noOfPattern 和 noOfColors 是整数,用于获取二维数组的行数和列数。

var arrAll = new Texture2D[100,100];

for(var p=0 ; p<100 ; p++){

TextureP = Resources.Load("FolderName/"+"ImageName"+p+0);
if(TextureP !=null){
for(var q=0 ; q<100 ; q++){
TextureQ = Resources.Load("FolderName/"+"ImageName"+p+q);
if(TextureQ !=null){
arrAll[p,q] = TextureQ;
noOfColors = q;
}
}
noOfPattern = p;
}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-13
    • 2017-12-09
    • 2014-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多