void Start() { particle = GetComponent <Particle2D>(); float volume = transform.localScale.sqrMagnitude; float maxDepth = transform.lossyScale.y; BouyancyForceGenerator2D floatForce = new BouyancyForceGenerator2D(particle, volume, maxDepth, 0, 30); ForceManager.instance.Add(floatForce); setRandomPos(); }
void Fire() { if (weaponChoice < particlePrefabs.Count) { GameObject projectile = Instantiate(particlePrefabs[weaponChoice], transform.position, transform.rotation); projectile.GetComponent <Particle2D>().mpPhysicsData.vel = projectile.transform.up * projectile.GetComponent <Particle2D>().mpPhysicsData.vel.magnitude; BouyancyForceGenerator2D bfg = new BouyancyForceGenerator2D(projectile.GetComponent <Particle2D>(), .5f, .25f, 0, 1.5f); ForceManager.AddForceGenerator(bfg); } else if (weaponChoice == particlePrefabs.Count) { GameObject projectile1 = Instantiate(particlePrefabs[0], transform.position, transform.rotation); projectile1.GetComponent <Particle2D>().mpPhysicsData.vel = projectile1.transform.up * projectile1.GetComponent <Particle2D>().mpPhysicsData.vel.magnitude; GameObject projectile2 = Instantiate(particlePrefabs[0], transform.position, transform.rotation); projectile2.GetComponent <Particle2D>().mpPhysicsData.vel = projectile2.transform.up * projectile2.GetComponent <Particle2D>().mpPhysicsData.vel.magnitude; Vector3 tmp = (projectile2.transform.up * projectile2.GetComponent <Particle2D>().mpPhysicsData.vel.magnitude); projectile2.GetComponent <Particle2D>().mpPhysicsData.pos = projectile2.transform.position; projectile2.GetComponent <Particle2D>().mpPhysicsData.pos += new Vector2(tmp.x, tmp.y).normalized * 4.0f; projectile2.transform.position = projectile2.GetComponent <Particle2D>().mpPhysicsData.pos; SpringForceGenerator2D fg = new SpringForceGenerator2D(projectile1.GetComponent <Particle2D>(), projectile2.GetComponent <Particle2D>(), 1, 2); ForceManager.AddForceGenerator(fg); BouyancyForceGenerator2D bfg1 = new BouyancyForceGenerator2D(projectile1.GetComponent <Particle2D>(), .5f, .25f, 0, 1.5f); ForceManager.AddForceGenerator(bfg1); BouyancyForceGenerator2D bfg2 = new BouyancyForceGenerator2D(projectile2.GetComponent <Particle2D>(), .5f, .25f, 0, 1.5f); ForceManager.AddForceGenerator(bfg2); } else { GameObject projectile1 = Instantiate(particlePrefabs[0], transform.position, transform.rotation); projectile1.GetComponent <Particle2D>().mpPhysicsData.vel = projectile1.transform.up * projectile1.GetComponent <Particle2D>().mpPhysicsData.vel.magnitude; GameObject projectile2 = Instantiate(particlePrefabs[0], transform.position, transform.rotation); projectile2.GetComponent <Particle2D>().mpPhysicsData.vel = projectile2.transform.up * projectile2.GetComponent <Particle2D>().mpPhysicsData.vel.magnitude; Vector3 tmp = projectile2.transform.up * projectile2.GetComponent <Particle2D>().mpPhysicsData.vel.magnitude; projectile2.GetComponent <Particle2D>().mpPhysicsData.pos = projectile2.transform.position; projectile2.GetComponent <Particle2D>().mpPhysicsData.pos += new Vector2(tmp.x, tmp.y).normalized * 3.0f; projectile2.transform.position = projectile2.GetComponent <Particle2D>().mpPhysicsData.pos; //<<<<<<< Updated upstream RodForceGenerator2D fg = new RodForceGenerator2D(projectile1.GetComponent <Particle2D>(), projectile2.GetComponent <Particle2D>(), 10, 3); ForceManager.AddForceGenerator(fg); //======= // RodForceGenerator2D fg = new RodForceGenerator2D(); // fg.startingObject1 = projectile1.GetComponent<Particle2D>(); // fg.startingObject2 = projectile2.GetComponent<Particle2D>(); // //ForceManager.AddForceGenerator(fg); //>>>>>>> Stashed changes BouyancyForceGenerator2D bfg1 = new BouyancyForceGenerator2D(projectile1.GetComponent <Particle2D>(), .5f, .25f, 0, 1.5f); ForceManager.AddForceGenerator(bfg1); BouyancyForceGenerator2D bfg2 = new BouyancyForceGenerator2D(projectile2.GetComponent <Particle2D>(), .5f, .25f, 0, 1.5f); ForceManager.AddForceGenerator(bfg2); } }
void CheckForTarget() { if (target == null) { Vector3 pos = new Vector3(Random.Range(xRange.x, xRange.y), Random.Range(yRange.x, yRange.y), 0); target = Instantiate(targetPrefab, pos, Quaternion.identity); ForceManager.DeleteForceGenerator(bfg); bfg = new BouyancyForceGenerator2D(target.GetComponent <Particle2D>(), 1.0f, 0.5f, 0, 1.5f); ForceManager.AddForceGenerator(bfg); } }
public void GenerateRandomParticle() { float x = Random.Range(-Camera.main.orthographicSize, Camera.main.orthographicSize); float y = Random.Range(-Camera.main.orthographicSize * Camera.main.aspect, Camera.main.orthographicSize * Camera.main.aspect); GameObject newPar = Instantiate(particlePrefab, new Vector3(x, y, 0), Quaternion.identity); float angle = Random.Range(0.0f, 360.0f); newPar.GetComponent <Particle2D>().mpPhysicsData.vel = new Vector3(Mathf.Cos(angle), Mathf.Sin(angle), 0.0f) * newPar.GetComponent <Particle2D>().mpPhysicsData.vel.magnitude; BouyancyForceGenerator2D bfg = new BouyancyForceGenerator2D(newPar.GetComponent <Particle2D>(), .5f, .25f, 0, 1.5f); ForceManager.AddForceGenerator(bfg); AddParticle(newPar.GetComponent <Particle2D>()); Vector2.Dot(new Vector2(), new Vector2()); }
static public void DeleteForceGenerator(BouyancyForceGenerator2D fg) { bouyancyToDelete.Add(fg); }
static public void AddForceGenerator(BouyancyForceGenerator2D fg) { bouyancyForceGenerators.Add(fg); }