无法在Android上运行

时间:2017-01-09 21:44:45

标签: c# unity3d unity5

我正在制作这款游戏​​,并认为我应该尝试在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上不支持或我做错了什么?

0 个答案:

没有答案