コード例 #1
0
    IEnumerator complexeAction(float delay, int typeCA)
    {
        Manoeuvre lastManoeuvre;
        Formation currFormation;
        int       i, len;

        yield return(new WaitForSeconds(delay));

        while (true)
        {
            playerShip = GameObject.FindGameObjectWithTag("Player");

            switch (typeCA)
            {
            case 1:
                lastManoeuvre = PatternFactory.SpiralPattern(32, 1, 0.01f, transform.position);
                break;

            case 2:
                lastManoeuvre = PatternFactory.CirclePattern(32, 1, 0.1f, transform.position);
                break;

            case 3:
                lastManoeuvre = PatternFactory.HalfCirclePattern(32, 1, 1f, transform.position, playerShip.transform.position);
                break;

            default:
                lastManoeuvre = PatternFactory.QuarterCirclePattern(32, 1, 1f, transform.position, playerShip.transform.position);
                break;
            }
            lastManoeuvre.StartManoeuvre();

            while ((currFormation = lastManoeuvre.GetNextFormation()) != null && currFormation.formation != null)
            {
                i   = 0;
                len = currFormation.formation.Length;

                for (; i < len; ++i)
                {
                    GameObject   shot    = arsenal.Fire(transform, fireType, gameObject.tag);
                    SpecialMover spScrip = shot.GetComponent <SpecialMover> ();
                    spScrip.SetTrajectory(currFormation.formation[i].GetClone());
                }

                yield return(new WaitForSeconds(currFormation.timer));
            }

            yield return(new WaitForSeconds(1f));
        }
    }