Esempio n. 1
0
    IEnumerator Whip(float finalRadius, GameObject danmakuObject)
    {
        float   turningSquareWidth = 25f;
        Vector3 turningPosition    = new Vector3(
            Random.Range(-turningSquareWidth, turningSquareWidth), Random.Range(-turningSquareWidth, turningSquareWidth), 0f);

        turningPosition  += gameObject.transform.position;
        turningPosition.z = 50f;
        float       t1            = Random.Range(0, Mathf.PI * 2);
        float       t2            = Random.Range(0, Mathf.PI * 2);
        Vector3     turningOffset = new Vector3(Mathf.Cos(t1), Mathf.Sin(t1), 0);
        Vector3     finalOffset   = new Vector3(Mathf.Cos(t2), Mathf.Sin(t2), 0);
        WhipDanmaku tip           = null;

        for (int i = 0; i < 20; i++)
        {
            Vector3     initialPosition = gameObject.transform.position;
            GameObject  instance        = Instantiate(danmakuObject);
            WhipDanmaku whip            = instance.AddComponent <WhipDanmaku>();
            if (tip == null)
            {
                tip = whip;
            }
            whip.InitializeWithPoints(
                initialPosition, turningPosition + i * 1.5f * turningOffset, finalOffset * (finalRadius + i * 3f), tip, 50f);
            yield return(new WaitForSeconds(0.1f));
        }
    }
Esempio n. 2
0
 public void InitializeWithPoints(Vector3 initialPosition, Vector3 turningPosition, Vector3 finalOffset, WhipDanmaku tip, float speed)
 {
     this.initialPosition = initialPosition;
     this.turningPosition = turningPosition;
     this.finalOffset     = finalOffset;
     if (tip == null)
     {
         tip = this;
     }
     this.tip   = tip;
     this.speed = speed;
     flag       = false;
 }