public ForceGenerator2D CreateBuoyancyForceGenerator(float liquidDensity, float surfaceLevel, float maxDepth) { GameObject forceGenerator = new GameObject("BuoyancyForceGenerator"); BuoyancyForceGenerator newGenerator = forceGenerator.AddComponent <BuoyancyForceGenerator>(); newGenerator.Initialize(liquidDensity, surfaceLevel, maxDepth); AddForceGenerator(newGenerator); return(forceGenerator.GetComponent <ForceGenerator2D>()); }
void CreateProjectile_Simple(GameObject projectile) { projectile.transform.position = transform.position; projectile.GetComponent <Particle2D>().CreateParticle2D(2.0f, 0.99f, 10.0f, transform.right, projGravity, true); projectile.GetComponent <Particle2D>().setShouldIgnoreForces(false); BuoyancyForceGenerator buoyancy = new BuoyancyForceGenerator(projectile, projectile.transform.localScale.y / 2.0f, 1.0f, WaterObject.waterTopPos.y, 80.0f); ForceManager.instance.AddForceGen(buoyancy); projectile.GetComponent <Particle2D>().setParticleInstantiated(true); }
private void Start() { BuoyancyForceGenerator buoyancy = new BuoyancyForceGenerator(target, target.transform.localScale.y / 2.0f, 1.0f, WaterObject.waterTopPos.y, 15.0f); ForceManager.instance.AddForceGen(buoyancy); }
void CreateProjectile(Projectiles projectileType, GameObject projectile) { switch (projectileType) { case Projectiles.PISTOL: projectile.transform.position = transform.position; projectile.GetComponent <Particle2D>().CreateParticle2D(2.0f, 0.99f, 10.0f, transform.right, projGravity, true); projectile.GetComponent <Particle2D>().setShouldIgnoreForces(false); BuoyancyForceGenerator buoyancy = new BuoyancyForceGenerator(projectile, projectile.transform.localScale.y / 2.0f, 1.0f, WaterObject.waterTopPos.y, 80.0f); ForceManager.instance.AddForceGen(buoyancy); projectile.GetComponent <Particle2D>().setParticleInstantiated(true); Debug.Log(currentProjectileType); break; case Projectiles.SPRINGSHOT: projectile.transform.position = transform.position; GameObject secondShot = Instantiate(projectile); Vector3 newPos = new Vector3(0.0f, 2.0f, 0.0f); secondShot.transform.position = newPos; projectile.GetComponent <Particle2D>().CreateParticle2D(2.0f, 0.99f, 10.0f, transform.right, projGravity, true); secondShot.GetComponent <Particle2D>().CreateParticle2D(2.0f, 0.99f, 25.0f, transform.right, projGravity, true); projectile.GetComponent <Particle2D>().setShouldIgnoreForces(false); secondShot.GetComponent <Particle2D>().setShouldIgnoreForces(false); SpringForceGenerator springGen = new SpringForceGenerator(projectile, secondShot, 2.0f, 0.5f); ForceManager.instance.AddForceGen(springGen); BuoyancyForceGenerator springBuoy1 = new BuoyancyForceGenerator(projectile, projectile.transform.localScale.y / 2.0f, 1.0f, WaterObject.waterTopPos.y, 80.0f); ForceManager.instance.AddForceGen(springBuoy1); BuoyancyForceGenerator springBuoy2 = new BuoyancyForceGenerator(projectile, projectile.transform.localScale.y / 2.0f, 1.0f, WaterObject.waterTopPos.y, 80.0f); ForceManager.instance.AddForceGen(springBuoy2); projectile.GetComponent <Particle2D>().setParticleInstantiated(true); secondShot.GetComponent <Particle2D>().setParticleInstantiated(true); Debug.Log(currentProjectileType); break; case Projectiles.RODSHOT: projectile.transform.position = transform.position; GameObject connectedShot = Instantiate(projectile); Vector3 changePos = new Vector3(0.0f, 2.0f, 0.0f); connectedShot.transform.position = changePos; projectile.GetComponent <Particle2D>().CreateParticle2D(2.0f, 0.99f, 10.0f, transform.right, projGravity, true); connectedShot.GetComponent <Particle2D>().CreateParticle2D(2.0f, 0.99f, 25.0f, transform.right, projGravity, true); projectile.GetComponent <Particle2D>().setShouldIgnoreForces(false); connectedShot.GetComponent <Particle2D>().setShouldIgnoreForces(false); ParticleRod newRod = new ParticleRod(); newRod.InstantiateVariables(projectile.GetComponent <Particle2D>(), connectedShot.GetComponent <Particle2D>(), 10.0f); particleLinks.Add(newRod); BuoyancyForceGenerator rodBuoy1 = new BuoyancyForceGenerator(projectile, projectile.transform.localScale.y / 2.0f, 1.0f, WaterObject.waterTopPos.y, 80.0f); ForceManager.instance.AddForceGen(rodBuoy1); BuoyancyForceGenerator rodBuoy2 = new BuoyancyForceGenerator(projectile, projectile.transform.localScale.y / 2.0f, 1.0f, WaterObject.waterTopPos.y, 80.0f); ForceManager.instance.AddForceGen(rodBuoy2); projectile.GetComponent <Particle2D>().setParticleInstantiated(true); connectedShot.GetComponent <Particle2D>().setParticleInstantiated(true); Debug.Log(currentProjectileType); break; } }