我正在制作这款游戏,并认为我应该尝试在Android上构建它。但当我这样做,然后按下我的开始页面上的按钮(开始页面工作正常,按钮就像它应该消失)然后什么也没发生。在编辑器中运行时没有问题。
不起作用的脚本从png图像中实例化我的预制件,然后将其转换为字节数组,然后用于制作列表。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LevelGenerate : MonoBehaviour {
public int[] Levels;
public byte[] mapByte;
public List<int> MapData;
public int Num;
public Texture2D map;
public GameObject ParentObject;
public GameObject obj;
public GameObject[] prefabs;
public Texture2D[] maps;
public float Spacing;
public int LevelNR;
public GameObject wonCanvas;
public GameObject lostCanvas;
public void Restart(){
foreach (Transform childTransform in ParentObject.transform) Destroy(childTransform.gameObject);
createLevel(LevelNR);
wonCanvas.SetActive(false);
lostCanvas.SetActive(false);
}
public void Next(){
foreach (Transform childTransform in ParentObject.transform) Destroy(childTransform.gameObject);
LevelNR++;
createLevel(LevelNR);
wonCanvas.SetActive(false);
lostCanvas.SetActive(false);
}
public void dead(){
lostCanvas.SetActive(true);
}
public void won(){
wonCanvas.SetActive(true);
}
public void createLevel(int levelNumber){
LevelNR=levelNumber;
map=maps[levelNumber];
mapByte=map.GetRawTextureData();
Debug.Log(mapByte.Length/3);
for(int i=0;i<=mapByte.Length-3;i+=3){
if(mapByte[i]==255){
MapData.Add(0);
}else if(mapByte[i]==205){
MapData.Add(1);
}else if(mapByte[i]==155){
MapData.Add(4);
}else if(mapByte[i]==105){
MapData.Add(3);
}else if(mapByte[i]==55){
MapData.Add(5);
}else if(mapByte[i]==0){
MapData.Add(2);
}else{
MapData.Add(0);
}
}
Levels=MapData.ToArray();
for(int i=0;i<map.height;i++){
for(int j=0;j<map.width;j++){
Debug.Log(Num);
if(Levels[Num]!=0)
obj=Instantiate(prefabs[Levels[Num]], new Vector3(i *Spacing, 0, j*Spacing), Quaternion.identity);
obj.transform.SetParent(ParentObject.transform);
Num++;
}
}
}
}
有没有我的代码在Android上不支持或我做错了什么?