Example #1
0
    // 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);
 }