示例#1
0
//render Tree
    public void RenderStuffs()
    {
        for (int i = 0; i < zoneDiv; i++)
        {
            for (int j = 0; j < zoneDiv; j++)
            {
                GameObject tree_parent = new GameObject();
                tree_parent.name = "Trees";
                GameObject item_parent = new GameObject();
                item_parent.name = "Items";
                GameObject mogwaiSpawners = new GameObject();
                mogwaiSpawners.name = "MogwaiSpawners";

                tree_parent.transform.SetParent(mapZones[i, j].transform);
                item_parent.transform.SetParent(mapZones[i, j].transform);
                mogwaiSpawners.transform.SetParent(mapZones[i, j].transform);



                for (int x = 0; x < unitX / zoneDiv; x++)
                {
                    for (int y = 0; y < unitY / zoneDiv; y++)
                    {
                        //Debug.Log("check the units");
                        float rand  = Random.value;
                        int   unitx = unitX * i / zoneDiv + x;
                        int   unity = unitY * j / zoneDiv + y;
                        int   id    = units[unitx, unity].ID;


                        //Render Tree
                        for (int w = 0; w < biomes[id].trees.Count; w++)
                        {
                            float val = Random.value;
                            if (val < biomes[id].trees[w].bornChance && units[unitx, unity].isOccupied == false)
                            {
                                units[unitx, unity].Tree       = biomes[id].trees[w];
                                units[unitx, unity].isOccupied = true;

                                GameObject tree_go = Instantiate(worldPrefabDictionary["Tree"], Vector3.zero, Quaternion.identity);
                                tree_go.name = units[unitx, unity].Tree.name;
                                tree_go.transform.SetParent(tree_parent.transform);
                                tree_go.transform.position = new Vector3(unitx * 4, 0.9f, unity * 4);

                                TreeObject treeObject = tree_go.GetComponent <TreeObject>();

                                treeObject.destroyableObject = units[unitx, unity].Tree;
                                treeObject.Setup();

                                tree_go.GetComponentInChildren <SpriteRenderer>().sprite       = treeObject.sprites[tree_go.name][Random.Range(0, treeObject.sprites[tree_go.name].Count)];
                                tree_go.GetComponentInChildren <SpriteRenderer>().sortingOrder = 1000 - units[unitx, unity].Y * 2;
                            }
                        }
                        //Render Items
                        if (biomes[id].items.Count > 0)
                        {
                            for (int w = 0; w < biomes[id].items.Count; w++)
                            {
                                float val = Random.value;
                                if (val < biomes[id].items[w].dropChance && units[unitx, unity].isOccupied == false)
                                {
                                    units[unitx, unity].Item = biomes[id].items[w];

                                    units[unitx, unity].isOccupied = true;

                                    GameObject item_go = Instantiate(worldItemDictionary["ItemPickup"], Vector3.zero, Quaternion.identity);
                                    item_go.name = units[unitx, unity].Item.name;
                                    item_go.transform.SetParent(item_parent.transform);
                                    item_go.transform.position = new Vector3(unitx * 4, 0f, unity * 4);

                                    ItemPickup itemPickup = item_go.GetComponent <ItemPickup>();
                                    itemPickup.item = units[x * i, y *j].Item;
                                    itemPickup.Setup();

                                    itemPickup.item = units[unitx, unity].Item;

                                    item_go.GetComponentInChildren <SpriteRenderer>().sprite       = itemPickup.sprites[item_go.name][Random.Range(0, itemPickup.sprites[item_go.name].Count)];
                                    item_go.GetComponentInChildren <SpriteRenderer>().sortingOrder = 1000 - units[unitx, unity].Y * 2;
                                }
                            }
                        }

                        //Render mogwaiSpanwers

                        /*if(biomes[id].mogwaispawner.Count > 0){
                         *
                         * } */
                    }
                }
            }
        }
    }