Example #1
0
    public IEnumerator Init2()
    {
        yield return(Yielders.WaitSecond(delayYuLei));

        for (int i = 0; i < yuLeiAngle.Length; i++)
        {
            float   posAngle    = startAngle + (i * 360 / yuLeiAngle.Length);
            float   x1          = radius * Mathf.Cos(posAngle * Mathf.PI / 180);
            float   z1          = radius * Mathf.Sin(posAngle * Mathf.PI / 180);
            Vector3 setPosition = new Vector3(x1, 0, z1);

            float   lookAngle = startAngle + yuLeiAngle[i];
            float   x2        = radius * Mathf.Cos(lookAngle * Mathf.PI / 180);
            float   z2        = radius * Mathf.Sin(lookAngle * Mathf.PI / 180);
            Vector3 moveDir   = new Vector3(x2, 0, z2).normalized;

            if (parent != null && target != null && target.isLive)
            {
                GameObject obj = Common.Generate(prefab2, transform);
                obj.transform.position  = parent.transform.position;
                obj.transform.position += setPosition;
                //obj.transform.eulerAngles = new Vector3(0, 0, startAngle + yuLeiAngle[i]);
                BulletMove bMove = obj.GetComponent <BulletMove>();
                bMove.SetEulerAngle(new Vector3(0, 0, lookAngle));
                Tag   myTag = Tag.Bullet;
                float atk   = 0;
                if (cardInfo != null)
                {
                    myTag = cardInfo.myTag;
                    atk   = cardInfo.Atk;
                }
                bMove.Init(myTag, atk, moveDir * moveSpeed2);
            }
        }
    }
Example #2
0
    public IEnumerator Init1()
    {
        transform.localEulerAngles = new Vector3(0, startAngle, 0);
        for (int i = 0; i < angleSpan.Length; i++)
        {
            yield return(Yielders.WaitSecond(delaySpan));

            float   tempAngle = (startAngle + angleSpan[i]);
            float   x1        = 1 * Mathf.Cos(tempAngle * Mathf.PI / 180);
            float   z1        = 1 * Mathf.Sin(tempAngle * Mathf.PI / 180);
            Vector3 moveDir   = new Vector3(x1, 0, z1).normalized;

            if (parent != null && target != null && target.isLive)
            {
                GameObject obj = Common.Generate(prefab, transform);
                obj.transform.position = parent.transform.position;
                //obj.transform.eulerAngles = new Vector3(0, 0, tempAngle);
                BulletMove bMove = obj.GetComponent <BulletMove>();
                bMove.SetEulerAngle(new Vector3(0, 0, startAngle + angleSpan[i]));
                Tag   myTag = Tag.Bullet;
                float atk   = 0;
                if (cardInfo != null)
                {
                    myTag = cardInfo.myTag;
                    atk   = cardInfo.Atk;
                }
                bMove.Init(myTag, atk, moveDir * moveSpeed);
            }
        }
    }
Example #3
0
    public IEnumerator Init2()
    {
        yield return(null);

        float startFix = (startAngle - 0.5f * (count - 1) * angleSpan);

        for (int i = 0; i < count; i++)
        {
            float   tempAngle = (startFix + i * angleSpan);
            float   x1        = 1 * Mathf.Cos(tempAngle * Mathf.PI / 180);
            float   z1        = 1 * Mathf.Sin(tempAngle * Mathf.PI / 180);
            Vector3 moveDir   = new Vector3(x1, 0, z1).normalized;

            if (parent != null && target != null && target.isLive)
            {
                GameObject obj = Common.Generate(prefab, transform);
                obj.transform.position = parent.transform.position;
                //obj.transform.eulerAngles = new Vector3(0, 0, tempAngle);
                BulletMove bMove = obj.GetComponent <BulletMove>();
                bMove.SetEulerAngle(new Vector3(0, 0, tempAngle));
                Tag   myTag = Tag.Bullet;
                float atk   = 0;
                if (cardInfo != null)
                {
                    myTag = cardInfo.myTag;
                    atk   = cardInfo.Atk;
                }
                bMove.Init(myTag, atk, moveDir * moveSpeed);
            }
        }
    }
Example #4
0
    private IEnumerator YuLeiSpan()
    {
        yield return(Yielders.WaitSecond(yuStartDelay));

        for (int i = 0; i < yuLeiCount; i++)
        {
            yield return(Yielders.WaitSecond(yuSpanDelay));

            float   angle    = Random.Range(0, 360);
            float   x1       = fightRadius * Mathf.Cos(angle * Mathf.PI / 180);
            float   z1       = fightRadius * Mathf.Sin(angle * Mathf.PI / 180);
            Vector3 endPoint = fightPoint + new Vector3(x1, 0, z1) * Random.Range(0f, 1f);

            float tempAngle = -90;
            //
            GameObject obj = Common.Generate(prefab, transform);
            obj.transform.SetParent(transform.parent);
            obj.transform.position = endPoint;

            BulletMove bMove = obj.GetComponent <BulletMove>();
            bMove.SetEulerAngle(new Vector3(0, 0, tempAngle));
            Tag   myTag = Tag.Bullet;
            float atk   = 0;
            if (cardInfo != null)
            {
                myTag = cardInfo.myTag;
                atk   = cardInfo.Atk;
            }
            bMove.Init(myTag, atk, Vector3.down * moveSpeed);
        }
    }
Example #5
0
    public static void SetBullet(Tag ownTag, int bulletType, int index, float atk, Vector3 pos, float angle, Vector3 moveDir)
    {
        GameObject obj = null;

        obj = Common.Generate(DataController.prefabPath_Bullet + bulletType, GameManager.instance.transBullet);
        BulletMove bullet = obj.GetComponent <BulletMove>();

        bullet.SetEulerAngle(new Vector3(0, 0, angle));
        //
        obj.transform.position   = pos;
        obj.transform.localScale = Vector3.one;

        bullet.Init(ownTag, atk, moveDir);
    }