예제 #1
0
    public MolotovController GetMolotov()
    {
        MolotovController molotov = poolMolotov.Dequeue();

        ResetPoolObject(molotov, true, gameSceneParent);
        return(molotov);
    }
예제 #2
0
 private void ThrowMolotov()
 {
     if (numMolotovs > 0)
     {
         numMolotovs--;
         UpdateHUD();
         MolotovController molotov = bulletPoolController.GetMolotov();
         molotov.transform.position = transform.position + transform.forward * 2 + Vector3.up + transform.right / 2;
         molotov.SetDirectionOfMoving(transform.rotation, mainCamera.transform.rotation);
         bottleThrowAudio.Play();
     }
 }
예제 #3
0
    // Start is called before the first frame update
    void Start()
    {
        poolBullets = new Queue <BulletController>(kBulletsNumber);
        for (int i = 0; i < kBulletsNumber; ++i)
        {
            BulletController bullet = (BulletController)Instantiate(bulletPrefab, farAwayVector, Quaternion.Euler(0, 0, 90), poolSceneParent);
            bullet.name = System.String.Format("Bullet {0:D2}", i);
            bullet.Init();
            bullet.gameObject.SetActive(false);
            bullet.SetPoolController(this);
            poolBullets.Enqueue(bullet);
        }

        poolMolotov = new Queue <MolotovController>(kMolotovNumber);
        for (int i = 0; i < kMolotovNumber; ++i)
        {
            MolotovController molotov = (MolotovController)Instantiate(molotovPrefab, farAwayVector, Quaternion.identity, poolSceneParent);
            molotov.name = System.String.Format("Molotov {0:D2}", i);
            molotov.gameObject.SetActive(false);
            molotov.SetPoolController(this);
            poolMolotov.Enqueue(molotov);
        }
    }
예제 #4
0
 public void ReturnMolotov(MolotovController molotov)
 {
     ResetPoolObject(molotov, false, poolSceneParent);
     poolMolotov.Enqueue(molotov);
 }