Exemplo n.º 1
0
    // Update is called once per frame
    void Update()
    {
        var field = MagnetSource.getMagneticTotalMagneticField(transform.position);
        var force = Vector3.Cross(field, realVelocity) * forceMultiplier;

        var hor = Input.GetAxis("Horizontal");
        var ver = Input.GetAxis("Vertical");
        var up  = Input.GetAxis("Up");

        var userForce = new Vector3(hor, up, ver);

        userForce *= userSpeed * Time.unscaledDeltaTime;

        //rb.AddForce(force+userForce);



        if (Input.GetKey(KeyCode.Space))
        {
            realVelocity += ((userForce) / rb.mass) * Time.deltaTime;
            rb.velocity   = Vector3.Lerp(rb.velocity, realVelocity * timeFreezeVelocity, Time.deltaTime * timeLerpSpeed);
        }
        else
        {
            realVelocity += ((force + userForce) / rb.mass) * Time.deltaTime;
            rb.velocity   = Vector3.Lerp(rb.velocity, realVelocity, Time.deltaTime * timeLerpSpeed);
        }


        forceVector.setVector(force, true);
        velocityVector.setVector(realVelocity, true);
    }