示例#1
0
    // Update is called once per frame
    void Update()
    {
        transform.position += new Vector3(0, -0.01f * vitesse, 0);
        if (Time.fixedTime - temps >= ecart)
        {
            temps = Time.fixedTime;
            // gob = (GameObject)(Instantiate (obj, transform.position, new Quaternion ()));
            gob = SimplePool.Spawn(obj, transform.position, new Quaternion());

            ProjectileFrag proj = gob.GetComponent <ProjectileFrag> ();
            proj.setVitesse(vitesseProj);
            proj.setDirection(new Vector2(0, -1));
            proj.setDuree(2);
            proj.setnbproj(nbproj);
        }
    }
    protected override void OnWallHit()
    {
        Deflect();

        if (splitsRemaining > 0)
        {
            splitsRemaining--;
            rb.position += direction * 2;

            for (float angle = -spread / 2; angle < spread / 2; angle += spread / numFragments)
            {
                ProjectileFrag newFragment = Instantiate(gameObject).GetComponent <ProjectileFrag>();

                newFragment.direction       = (direction + Vector2FromAngle(angle)).normalized;
                newFragment.splitsRemaining = splitsRemaining;
            }
        }

        base.OnWallHit();
    }