【发布时间】:2016-06-06 18:42:28
【问题描述】:
我尝试过使用通用列表,但我的研究表明无法重置列表的枚举器,因此不会这样做,因为我需要不断迭代浮点 [,] 列表。
我本质上想缓存 10 个不同的 perlin 噪声图,游戏循环会遍历这些图。每个 perlin 映射都是一个浮点数 [,]。所有地图的宽度和高度都相同。
我想将这些存储在一些我可以不断迭代的数据结构中,无论是通用列表还是数组:
void BuildCache() {
cache = new float[cacheSize][,];
for(int i = 0; i < cacheSize; i++) {
float[,] noiseMap = Noise.GenerateNoiseMap (width, height, seed, noiseScale, octaves, persistence, lacunarity, offset);
cache [i] [0] = noiseMap;
offset += speed;
}
}
这会导致此错误:Assets/Scripts/FogGenerator.cs(51,36): error CS0022: Wrong number of indices 1' inside [], expected2'
这似乎是一件基本的事情,在 Java 中我会使用通用列表,但由于我无法重置 C# 的通用列表,所以我在这里不知所措。
【问题讨论】:
-
cache[i] = noiseMap,删除[0] -
你的意思是你不能重置列表的枚举数?
-
Arturo 那么如何声明缓存呢?因为我仍然得到错误。我的定义是这样的:float[][,] cache;
-
juharr List
in System.Collections.Generic 只能使用枚举器进行迭代,这是我的信念。这个枚举器没有重置实现,我无法创建一个新的枚举器,因为它仍然从列表的末尾开始?
标签: c# unity3d perlin-noise procedural-generation