コード例 #1
0
    public void OnGrow()
    {
        //Elegir uno que este vacio...si no esta vacio eligo cualquiera

        bool emptySpawns = spawnPoints.Exists(x => !x.HasChilds());

        if (emptySpawns)
        {
            foreach (var sp in spawnPoints)
            {
                if (!sp.HasChilds())
                {
                    CreateBuilding(sp, prefabst1[Random.Range(0, prefabst1.Count)]);
                    break;
                }
            }
        }
        else
        {
            int minLevel = CheckAllLevels();

            BuildingSpawnPoint sp = spawnPoints[Random.Range(0, spawnPoints.Count)];
            CreateBuilding(sp, minLevel == 2 ? prefabst2[Random.Range(0, prefabst2.Count)] : prefabst3[Random.Range(0, prefabst3.Count)]);
        }
    }
コード例 #2
0
    public void CreateBuilding(BuildingSpawnPoint spawn, GameObject prefab)
    {
        if (spawn.GetChild() != null)
        {
            Destroy(spawn.GetChild());
        }

        GameObject go = GameObject.Instantiate(prefab, spawn.transform.position, Quaternion.identity);

        go.transform.eulerAngles = spawn.transform.eulerAngles * -1;
        go.transform.SetParent(spawn.transform);
        if (go.GetComponent <Animation>() == null)
        {
            Animation anim = go.AddComponent <Animation>();
            anim.AddClip(clip, "Grow");

            anim.clip = clip;
        }

        spawn.AddLevel();

        go.GetComponent <Animation>().Play();
    }