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; } } }
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; } } }