// 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(); }