Beispiel #1
0
    IEnumerator Kongxi(AirWave wave)
    {
        yield return(new WaitForSeconds(wave.firstTime));

        float waveInterval = Random.Range(wave.waveInterval[0], wave.waveInterval[1]);

        while (true)
        {
            int        count       = Random.Range(wave.crowNum[0], wave.crowNum[1] + 1);
            bool       isToRight   = Random.value <= 0.5f;
            FightGroup targetGroup = isToRight ? (FightGroup)FightManager.GetInstance().enemyGroup : (FightGroup)FightManager.GetInstance().mineGroup;
            while (targetGroup.fightUnits.Count == 0)
            {
                yield return(null);
            }
            Vector3 from, to;
            if (isToRight)
            {
                from = left.localPosition;
                to   = right.localPosition;
            }
            else
            {
                to   = left.localPosition;
                from = right.localPosition;
            }
            for (int i = 0; i < count; i++)
            {
                GameObject obj = Instantiate(wuya) as GameObject;
                obj.transform.parent     = transform;
                obj.transform.localScale = Vector3.one;
                if (isToRight)
                {
                    obj.transform.localRotation = Quaternion.Euler(0, 180, 0);
                }
                obj.SetActive(true);
                KongxiWuya kongxiWuya = obj.GetComponent <KongxiWuya>();
                Vector3    target     = GetOneTarget(targetGroup);
                kongxiWuya.from   = from;
                kongxiWuya.to     = to;
                kongxiWuya.target = target;
                kongxiWuya.speed  = 100f;
                yield return(new WaitForSeconds(wave.interval));
            }
            yield return(new WaitForSeconds(waveInterval));
        }
    }
Beispiel #2
0
    public void Init(string config)
    {
        index = -1;
        JsonData dt = JsonMapper.ToObject(config);

        for (int i = 0; i < dt.Count; i++)
        {
            JsonData waveDt = dt[i];

            if (waveDt != null && waveDt.Count > 0)
            {
                AirWave w = new AirWave();
                w.firstTime = float.Parse(waveDt[0].ToString());
                JsonData waveInterval = waveDt[1];
                w.waveInterval = new float[2] {
                    float.Parse(waveInterval[0].ToString()), float.Parse(waveInterval[1].ToString())
                };
                w.interval = float.Parse(waveDt[2].ToString());
                JsonData crowID = waveDt[3];
                w.crowID = new int[crowID.Count];
                for (int j = 0; j < crowID.Count; j++)
                {
                    w.crowID[j] = (int)crowID[j];
                }
                JsonData crowNum = waveDt[4];
                w.crowNum = new int[2] {
                    int.Parse(crowNum[0].ToString()), int.Parse(crowNum[0].ToString())
                };

                waves.Add(w);
            }
            else
            {
                waves.Add(null);
            }
        }
        StartKongxi(null);
    }