Beispiel #1
0
    void Start()
    {
        ObjectFactory.CreateRigibody(this);

        gravityForce = new GravityForce(this, gravity);
        gameControl  = FindObjectOfType <GameControl>();
    }
Beispiel #2
0
        private void CalculateGravityForce()
        {
            GravityForce force = GravityForceCalculator.GetGravityForce(
                jumpValues.height, jumpValues.time, jumpValues.jumpApexOverTime
                );

            gravityValues.upwards   = Vector2.down * force.Upwards;
            gravityValues.downwards = Vector2.down * force.Downwards;
        }
Beispiel #3
0
    private void Attract(GravityForce objectToAttract)
    {
        Rigidbody rigidBodyToAttract = objectToAttract.rigidBody;

        Vector3 direction      = rigidBody.position - rigidBodyToAttract.position;
        float   distance       = direction.magnitude;
        float   forceMagnitude = G * (rigidBody.mass * rigidBodyToAttract.mass) / Mathf.Pow(distance, 2);
        Vector3 force          = direction.normalized * forceMagnitude * _forceDirectionChanger;

        rigidBodyToAttract.AddForce(force);
    }
Beispiel #4
0
    private IEnumerator DeactivateCollider(GameObject ball, float deactivationTime)
    {
        SphereCollider ballCollider     = ball.GetComponent <SphereCollider>();
        GravityForce   ballGravityForce = ball.GetComponent <GravityForce>();

        ballCollider.enabled     = false;
        ballGravityForce.enabled = false;
        yield return(new WaitForSeconds(deactivationTime));

        ballCollider.enabled     = true;
        ballGravityForce.enabled = true;
        yield break;
    }
    public void CreateScenario(ParticleSystem a_ParticleSystem)
    {
        int max  = 10;
        int max1 = max - 1;

        for (int i = 0; i < max; i++)
        {
            int   y = i >= max / 2 ? 0 : 4;
            float x = i >= max / 2 ? 3 * (i - max / 2) - 6 : 3 * i - 6;
            createPendulum(a_ParticleSystem, x, y, .5f, i + 2);
        }
        Force f = new GravityForce(1f);

        a_ParticleSystem.AddForce(f);
        f = new ViscousDragForce(.05f);
        a_ParticleSystem.AddForce(f);
    }
    public void CreateScenario(ParticleSystem a_ParticleSystem)
    {
        ViscousDragForce drag = new ViscousDragForce(0.1f);

        a_ParticleSystem.AddForce(drag);

        GravityForce gravity = new GravityForce(0.1f);

        a_ParticleSystem.AddForce(gravity);

        Particle p1 = new Particle(1f);

        p1.Position = new Vector2(-3f, 0f);
        a_ParticleSystem.AddParticle(p1);

        Particle p2 = new Particle(1f);

        p2.Position = new Vector2(3f, 0f);
        a_ParticleSystem.AddParticle(p2);

        HooksLawSpring spring1 = new HooksLawSpring(p1, p2, 3f, 10f, 10f);

        a_ParticleSystem.AddForce(spring1);
    }
    public void CreateScenario(ParticleSystem a_ParticleSystem)
    {
        Particle particle1 = new Particle(1000f);

        particle1.Position = new Vector2(-2f, 0f);
        a_ParticleSystem.AddParticle(particle1);
        Particle particle2 = new Particle(1f);

        particle2.Position = new Vector2(0f, 5f);
        a_ParticleSystem.AddParticle(particle2);
        Particle particle3 = new Particle(1f);

        particle3.Position = new Vector2(4f, 4f);
        a_ParticleSystem.AddParticle(particle3);

        Force angleforce = new AngularSpringForce(particle2, particle1, particle3, Mathf.PI / 2, 1f, 0.1f);

        a_ParticleSystem.AddForce(angleforce);
        Force spring1 = new HooksLawSpring(particle1, particle2, 2, 1, .1f);
        Force spring2 = new HooksLawSpring(particle3, particle2, 2, 1, .1f);

        a_ParticleSystem.AddForce(spring1);
        a_ParticleSystem.AddForce(spring2);
        Force gravityForce = new GravityForce(.001f);

        a_ParticleSystem.AddForce(gravityForce);

        Particle p6 = new Particle(.5f);

        p6.Position = new Vector2(0, -4);
        a_ParticleSystem.AddParticle(p6);
        Particle p7 = new Particle(1);

        p7.Position = new Vector2(0, -5f);
        a_ParticleSystem.AddParticle(p7);
        new RodConstraint(p6, p7, a_ParticleSystem);


        Particle p5 = new Particle(500f);

        p5.Position = new Vector2(2, 2);
        a_ParticleSystem.AddParticle(p5);
        new CircularWireConstraint(p5, p5.Position + Vector2.right, a_ParticleSystem);

        Particle p8 = new Particle(0.5f);

        p8.Position = new Vector2(-3, -1);
        a_ParticleSystem.AddParticle(p8);
        new FixedPointConstraint(p8, a_ParticleSystem);


        Particle p9 = new Particle(.5f);

        p9.Position = new Vector2(-3, -2);
        a_ParticleSystem.AddParticle(p9);
        new HLineConstraint(p9, a_ParticleSystem);

        Particle p10 = new Particle(.5f);

        p10.Position = new Vector2(5, -2);
        a_ParticleSystem.AddParticle(p10);
        new VLineConstraint(p10, a_ParticleSystem);


        Particle q1 = new Particle(.5f);

        q1.Position = new Vector2(-3, 3);
        a_ParticleSystem.AddParticle(q1);
        new EllipticalWireConstraint(q1, q1.Position + new Vector2(1f, -.3f), q1.Position + new Vector2(-1f, -1f), a_ParticleSystem);

        Force dragForce = new ViscousDragForce(.2f);

        a_ParticleSystem.AddForce(dragForce);
    }
 private void Awake()
 {
     m_gravityForce = transform.parent.parent.GetComponent(typeof(GravityForce)) as GravityForce;
 }
Beispiel #9
0
 void Start()
 {
     ObjectFactory.CreateRigibody(this);
     gravityForce = new GravityForce(this, gravity);
 }