Exemplo n.º 1
0
 public void AddGrassView(Grass grass, GridLayout gridLayout)
 {
     GameObject instance;
     if (grassPool.transform.childCount > 0)
         instance = grassPool.transform.GetChild(0).gameObject;
     else
         instance = Object.Instantiate(grassPrototype) as GameObject;
     Random.seed = (grass.row * 7457) ^ (grass.column * 89);
     var grassTransform = instance.transform.GetChild(0).transform;
     grassTransform.localRotation =
         Quaternion.Euler(0f, 180f, Random.Range(0f, 360f) + grass.row * 97);
     var grassSize = Mathf.Clamp(grass.age * 0.2f, 0, 1);
     grassTransform.localScale = new Vector3(grassSize, grassSize, grassSize);
     gridLayout.AddItem(grass.row, grass.column, 0, instance, grassPool);
 }
Exemplo n.º 2
0
 public void ShowIslandOnGrid(Island island, GridLayout gridLayout, MeshFilter meshFilter)
 {
     gridLayout.size = islandsSize;
     gridLayout.Clear();
     meshFilter.transform.localScale = Vector3.one;
     meshFilter.mesh = IslandBuilder.Build(island);
     foreach (var animal in island.animals) {
         var pool = animal.type == AnimalType.Sheep ? sheepPool : humanPool;
         GameObject instance;
         if (pool.transform.childCount > 0) {
             instance = pool.transform.GetChild(0).gameObject;
         } else {
             var prototype = animal.type == AnimalType.Sheep ? sheepPrototype : humanPrototype;
             instance = Object.Instantiate(prototype) as GameObject;
         }
         var animalView = instance.GetComponent<AnimalView>();
         animalView.gridLayout = gridLayout;
         animalView.animal = animal;
         gridLayout.AddItem(animal.row, animal.column, 0, instance, pool);
     }
     foreach (var harbor in island.harbors) {
         GameObject instance;
         if (harborPool.transform.childCount > 0)
             instance = harborPool.transform.GetChild(0).gameObject;
         else
             instance = Object.Instantiate(harborPrototype) as GameObject;
         gridLayout.AddItem(harbor.row, harbor.column, 0, instance, harborPool);
     }
     foreach (var grass in island.grasses)
         AddGrassView(grass, gridLayout);
 }