Exemple #1
0
    protected override void Awake()
    {
        base.Awake();

        _Loader      = new SampleChunkLoader();
        _Unloader    = new SimpleUnloader();
        _MeshBuilder = new SimpleMeshBuilder();

        _Navigators = new List <WorldNavigator>();
        _Pool       = GetComponent <ObjectPool>();


        // Ensure the prefab has required components
        if (_Pool == null)
        {
            _Pool.Prefab.AddComponent <ObjectPool>();
        }

        _LogSizeX = SetLogSize(ChunkSizeX);
        _LogSizeY = SetLogSize(ChunkSizeY);
        _LogSizeZ = SetLogSize(ChunkSizeZ);
        _MaskX    = ChunkSizeX - 1;
        _MaskY    = ChunkSizeY - 1;
        _MaskZ    = ChunkSizeZ - 1;
    }
Exemple #2
0
    protected override void Awake()
    {
        base.Awake();

        _Loader      = new MVLoader();
        _Unloader    = new SimpleUnloader();
        _MeshBuilder = new GreedyMeshBuilder();
    }
    private void Start()
    {
        pool = GetComponent <ObjectPool>();

        MVLoader loader = new MVLoader();

        loader.Layers.Add(new MVModelLayer(@"Z:\Fab\Programmation\Voxel\MagicaVoxel\vox\Head3.vox"));
        loader.Layers.Add(new MVAlphaLayer(@"Z:\Fab\Programmation\Voxel\MagicaVoxel\vox\Head3_AM.vox"));

        //Texture2D tex = new Texture2D(256, 1);
        //tex.LoadImage(System.IO.File.ReadAllBytes(@"Z:\Fab\Programmation\Voxel\MagicaVoxel\export\AlternatePalette.png"));

        ChunkMeshBuilder builder = new GreedyMeshBuilder();

        _Loader      = loader;
        _Unloader    = new SimpleUnloader();
        _MeshBuilder = builder;

        chunk = new MVChunk(this);
        Load(chunk);
        //chunk.LoadPalette(tex);
        Build(chunk);

        List <GameObject> GOs = new List <GameObject>();

        for (int i = 0; i < chunk.MeshData.Length; i++)
        {
            GameObject go = pool.NextObject();

            if (go == null)
            {
                Debug.LogError("Pool has no GameObject available");
                break;
            }
            AttachMesh(go, chunk, chunk.MeshData[i]);

            go.transform.localPosition = Vector3.zero;
            GOs.Add(go);
        }

        chunk.GameObjects = GOs.ToArray();
    }