コード例 #1
0
ファイル: BulletPooling.cs プロジェクト: JuIsa/BulletDodger
    public BulletContent GetFromPool()
    {
        BulletContent bullet = Main.BulletMain.bulletsPool.Dequeue();

        bullet.gameObject.SetActive(true);
        return(bullet);
    }
コード例 #2
0
ファイル: BulletMove.cs プロジェクト: JuIsa/BulletDodger
    private void MoveBullet(BulletContent bullet)
    {
        var step     = 2 * Time.deltaTime;
        var position = bullet.gameObject.transform.forward * Time.deltaTime;

        bullet.rb.AddForce(bullet.gameObject.transform.forward * 0.07f, ForceMode.Impulse);
    }
コード例 #3
0
ファイル: BulletSpawner.cs プロジェクト: JuIsa/BulletDodger
    private static void GetBulletFromPool(Vector3 positionForBullet)
    {
        BulletContent bullet = Main.BulletMain.bulletPooling.GetFromPool();

        bullet.transform.position = positionForBullet;
        bullet.transform.LookAt(Main.EnemyMain.player.transform);
    }
コード例 #4
0
ファイル: BulletPooling.cs プロジェクト: JuIsa/BulletDodger
 private void AddToPool(BulletContent bullet)
 {
     bullet.rb.velocity = Vector3.zero;
     bullet.gameObject.transform.position = UtilityCustom.GetRandomPosition();
     Main.BulletMain.bulletsPool.Enqueue(bullet);
     bullet.gameObject.SetActive(false);
 }
コード例 #5
0
ファイル: BulletSpawner.cs プロジェクト: JuIsa/BulletDodger
    private static void SpawnNewBullet(Vector3 positionForBullet)
    {
        BulletContent bullet = Instantiate(Main.BulletMain.bulletRef.bulletToSpawn, positionForBullet, Quaternion.identity);

        bullet.transform.LookAt(Main.EnemyMain.player.transform);

        bullet.transform.parent = Main.BulletMain.bulletsKeeper;

        Main.BulletMain.bullets.Add(bullet);

        Main.BulletMain.BulletSpawned(bullet);
    }
コード例 #6
0
 private void BulletCollected(Collision other, BulletContent bullet)
 {
     if (other.gameObject.CompareTag("Wall"))
     {
         Main.BulletMain.BulletHitWall(bullet);
     }
     else if (other.gameObject.CompareTag("Player"))
     {
         Main.EnemyMain.GameOver();
     }
     else
     {
         bullet.gameObject.SetActive(false);
     }
 }
コード例 #7
0
 private void AddCatcherToBullet(BulletContent bullet)
 {
     bullet.collisionCatcher.OnCollisionEnterEvent += collis => BulletCollected(collis, bullet);
 }
コード例 #8
0
 public void BulletHitWall(BulletContent bullet)
 {
     onBulletHitWall?.Invoke(bullet);
 }
コード例 #9
0
 public void BulletSpawned(BulletContent bullet)
 {
     onBulletSpawned?.Invoke(bullet);
 }