Exemplo n.º 1
0
 public void UpdateOpponentProjectile(RTPacket _packet)
 {
     // Loop through the projectile pool
     for (int i = 0; i < ProjectilePool.GetProjectilePool().Length; i++)
     {
         if (ProjectilePool.GetProjectilePool()[i].ownerPeerId == _packet.Data.GetInt(1))
         {
             ProjectilePool.GetProjectilePool()[i].Collide();
             break;
         }
     }
 }
Exemplo n.º 2
0
    public void Launch()
    {
        // Loop through all the projectiles in the projectile pool
        for (int i = 0; i < ProjectilePool.GetProjectilePool().Length; i++)
        {
            // Find one that is currently inactive
            if (!ProjectilePool.GetProjectilePool()[i].gameObject.activeSelf)
            {
                // Assign values to the projectile
                ProjectilePool.GetProjectilePool()[i].spawnPos    = gameObject.transform;
                ProjectilePool.GetProjectilePool()[i].trailColor  = projectileTrailColor;
                ProjectilePool.GetProjectilePool()[i].ownerPeerId = projectileOwnerPeerId;
                Physics.IgnoreCollision(ProjectilePool.GetProjectilePool()[i].gameObject.GetComponent <Collider>(), GetComponentInParent <PlayerManager>().bodyRoot.GetComponentInChildren <Collider>());

                // Initialize the projectile
                ProjectilePool.GetProjectilePool()[i].Reset();

                // Launch the projectile
                ProjectilePool.GetProjectilePool()[i].gameObject.GetComponent <Rigidbody>().AddForce(transform.forward * launchForce);

                break;
            }
        }
    }