Beispiel #1
0
    IEnumerator delayBullet1()
    {
        int count = 10;

        for (int i = 0; i < count; i++)
        {
            GameObject   obj    = GameObject.Instantiate(rbullet);
            RotateBullet bullet = obj.GetComponent <RotateBullet>();
            bullet.player    = transform;
            bullet.effectObj = damageEffect1;
            bullet.bulleting();
            bullet.y    = 0.7f;
            bullet.flag = -1f;
            yield return(new WaitForSeconds(0.1f));

            if (i % 9 == 0)
            {
                AttackedController c = GameObject.Find("bigzhangjiao (1)").GetComponent <AttackedController>();
                c.attacked();
                if (damageEffect2 != null)
                {
                    GameObject      obj1   = GameObject.Instantiate(damageEffect2);
                    ParticlesEffect effect = obj1.AddComponent <ParticlesEffect>();
                    Transform       target = GameObject.Find("bigzhangjiao (1)").transform;
                    effect.transform.position = MathUtil.findChild(target, "attackedPivot").position;
                    effect.play();
                }
            }
        }
    }
Beispiel #2
0
    /// <summary>
    /// 弾丸を発射する
    /// </summary>
    public void Enter(bool isTestScene = false)
    {
        isTest = isTestScene;

        if (abnState == null)
        {
            bulletObj = Instantiate(prefab.GetComponent <Bullet>().bulletObj, transform);
            if (!bulletObj.GetComponent <BulletObject>())
            {
                BulletObject bulObj = bulletObj.AddComponent <BulletObject>();
                bulObj.parent = this;
            }
        }
        else
        {
            ChangeElement(abnState);
        }

        //弾道を自身の子にする
        //bulletObj.transform.SetParent(transform);
        //bulletObj.transform.localPosition = GetDefaultPos ();
        ReturnToDefaultPos();

        switch (bulletType)
        {
        case BulletType.beam:
            StartCoroutine(WaitShotEndTime(moveTime));
            break;

        case BulletType.fixe:
            StartCoroutine(WaitShotEndTime(moveTime));
            //StartCoroutine(WaitShotEndTime(moveTime));
            RotateBullet rotate = bulletObj.AddComponent <RotateBullet>();
            rotate.SetTarget(GameObject.FindGameObjectWithTag(Tags.Player));
            rotate.speed = 600;
            rotate.SetTime(moveTime);
            break;

        default:
            Hashtable hash = new Hashtable();
            switch (movePath.GetLength(0))
            {
            case 0:
                Debug.LogAssertion("経路が設定されていません");
                return;

            case 1:
                hash.Add("position", transform.position + Rotate(movePath[0]));
                break;

            default:
                Vector3[] path = new Vector3[movePath.Length];
                for (int i = 0; i < path.GetLength(0); i++)
                {
                    path[i] = transform.position + Rotate(movePath[i]);
                }
                hash.Add("path", path);
                break;
            }
            hash.Add("time", moveTime);
            hash.Add("easetype", type);
            hash.Add("oncompletetarget", gameObject);
            hash.Add("oncomplete", "MoveEnd");

            iTween.MoveTo(bulletObj, hash);

            //弾道を親から外す
            bulletObj.transform.parent = null;
            break;
        }

        switch (bulletType)
        {
        case BulletType.beam:
            break;

        default:
            //経路予測線を消去
            DeleteDrawLine();

            //if (!isDraw)
            if (isTest)
            {
                StartCoroutine(MovePathDraw());
            }
            break;
        }


        bulletObj.GetComponent <BulletObject>().ShotStart();

        if (pairBullet)
        {
            pairBullet.Enter(isTestScene);
        }
    }