Пример #1
0
 void Update()
 {
     if (Input.GetKeyDown(KeyCode.Space))
     {
         engenOn = true;
     }
     if (Input.GetKeyDown(KeyCode.Escape))
     {
         Cursor.visible = true;
         FinishLine.LoadNextScene();
         engenOn = false;
         landed  = false;
     }
 }
Пример #2
0
    void FixedUpdate()
    {
        if (!destroyed)
        {
            Cursor.visible = false;
            float roll  = Input.GetAxis("Mouse X") * Time.deltaTime;
            float pitch = Input.GetAxis("Mouse Y") * Time.deltaTime;
            if (engenOn)
            {
                Destroy(runway);
                landed = false;
                prop.SetActive(false);
                propBlured.SetActive(true);
                propBlured.transform.Rotate(1000 * Time.deltaTime, 0, 0);

                r.useGravity = false;
                ms          -= transform.forward.y * Time.deltaTime * 5.0f;
                r.AddRelativeForce(0, 0, Mathf.Clamp(ms, limitMS - 100, limitMS));
                r.AddRelativeTorque(Vector3.back * Mathf.Clamp(roll, -0.9f, 0.9f) * rollTorque * Time.deltaTime, ForceMode.Force);
                r.AddRelativeTorque(Vector3.right * Mathf.Clamp(pitch, -0.1f, 0.1f) * pitchTorque * Time.deltaTime, ForceMode.Force);


                var projection = -gameObject.transform.InverseTransformDirection(Vector3.up);
                //if (projection.x < 0)
                //{

                //    r.AddRelativeTorque(-gameObject.transform.up * projection.x * limitMS * virage * Time.deltaTime, ForceMode.Force);
                //}
                //else
                //{
                //    r.AddRelativeTorque(-gameObject.transform.up * projection.x * limitMS * virage * Time.deltaTime, ForceMode.Force);
                //}

                r.AddTorque(0, projection.x * limitMS * virage * Time.deltaTime, 0, ForceMode.Force);

                if (bonusPicked)
                {
                    var controlMS = Input.mouseScrollDelta;
                    if ((limitMS - 100) < 50 && controlMS.y < 0)
                    {
                        limitMS -= controlMS.y;
                    }
                    else if (limitMS > 500 && controlMS.y > 0)
                    {
                        limitMS -= controlMS.y;
                    }
                    else
                    {
                        limitMS += controlMS.y;
                    }
                }
            }
            else
            {
                prop.SetActive(true);
                propBlured.SetActive(false);
                r.useGravity = true;
                if (landing)
                {
                    r.AddRelativeForce(0, 0, (limitMS - 100) / 50);
                    r.AddRelativeTorque(Vector3.back * Mathf.Clamp(roll, -0.09f, 0.9f) * rollTorque * Time.deltaTime, ForceMode.Force);
                    r.AddRelativeTorque(Vector3.right * Mathf.Clamp(pitch, -0.01f, 0.1f) * pitchTorque * Time.deltaTime, ForceMode.Force);
                }
            }
        }
        else
        {
            Cursor.visible = true;
            FinishLine.LoadNextScene();
            bonusPicked = false;
            engenOn     = false;
            landed      = false;
        }
    }