// Update is called once per frame void Update() { cooldownTimer.Duration = cooldownDuration; float y = CrossPlatformInputManager.GetAxis("Vertical"); if (y != 0) { rb2d.velocity = new Vector2(0, y) * speed; } else { rb2d.velocity = Vector2.zero; } if (canShoot && CrossPlatformInputManager.GetAxisRaw("Fire1") != 0) { cooldownTimer.Run(); canShoot = false; Vector2 projectilePos = transform.position; projectilePos += projectileOffset; GameObject projectile = PlayerProjectilePool.GetProjectile(); projectile.transform.position = projectilePos; projectile.SetActive(true); projectile.GetComponent <PlayerProjectile>().StartMoving(); } }
private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.TryGetComponent <Player>(out Player player)) { Debug.Log("Heart someone"); PlayerProjectilePool.ReturnProjectile(gameObject); } StopMoving(); anim.SetBool("PlayerProjectileExplosion", true); }
// Start is called before the first frame update void Awake() { if (!PlayerProjectilePool.Initialized) { PlayerProjectilePool.Initialize(); } if (!ExplosionPool.Initialized) { ExplosionPool.Initialize(); } }
private void OnBecameInvisible() { PlayerProjectilePool.ReturnProjectile(gameObject); }