我一直在尝试制作自己的关卡生成器,它根据我制作的小地图中的颜色生成一个带有正确精灵的预制件。
更具体地说,我制作了这张小地图。
如果其中一种颜色与颜色数组中找到的颜色之一匹配,它将使用正确的精灵实例化预制件,依此类推其他颜色。到目前为止,它使用正确的sprite实例化对象。
然而,这就是我玩游戏时的样子。
这就是它的假设
我不知道为什么会这样做,因为根据我的代码,
public Texture2D needColors;
public Texture2D tiles;
public Texture2D level;
public GameObject tile;
public Transform parent;
public Color32[] colors;
public Sprite[] sprites;
void Start(){
for(int x = 0; x < level.width; x++){
for(int y = 0; y < level.height; y++){
GenerateLevel(x, y);
}
}
}
void GenerateLevel(int x, int y){
Color32 pixelColor = level.GetPixel(x, y);
if(pixelColor.a == 0){
return;
}
for(int i = 0; i < colors.Length; i++){
if(pixelColor.Equals(colors[i])){
Vector2 position = new Vector2(x, y);
Instantiate(tile, position, Quaternion.identity, parent);
tile.GetComponent<SpriteRenderer>().sprite = sprites[i];
}
}
}
应该跳过透明像素。
我真的很感激这个问题的解决方案,我想我还应该提一下,我已经使用了一段时间的团结,但我没有经验丰富,所以如果有人能提供详细的答案,那么我就能理解问题是什么,我真的很感激。谢谢你提前。