Exemple #1
0
    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>());
    }
Exemple #2
0
    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);
    }
Exemple #4
0
    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;
        }
    }