Ejemplo n.º 1
0
    // Use this for initialization
    void Start()
    {
        //Creating your Vechicle (Load section)
        //Download model data  (or model)
        //Build Model,parts,paint...
        //Download engine,wheelbase data...
        //DownloadData();
        //Build Wheelbase
        MyWheelBase = new WheelBase();
        MyWheelBase.AdjustSuspension();

        //
        GearRatio = new float[] { -3.382f, 3.321f, 1.902f, 1.308f, 1f, 0.759f };
    }
Ejemplo n.º 2
0
    // Update is called once per frame
    void Update()
    {
        //Obsługa
        //Wciskasz gaz to jedzie
        Throttle = Input.GetAxis("Throttle");
        Clutch   = Input.GetAxis("Clutch");
        Steering = Input.GetAxis("Steering");
        //Torque current rpm (curve value) current gear
        //Wykres torque dla obrotów
        //Zakres obrotów dla biegu i przełozenie
        // Throttle =0.5 wtedy dajemy 0.5  * Max torque dla tych obrotów
        //Torque = Throttle * wykres(rpmSilnika);
        //rpmSilnika  na podstawie rpmKol i  przełożenia aktualnego biegu
        //Odcinanie  zapłonu  /  wybuch silnika(bardziej skomplikowane...)
        //Gaśnięcie przy  zbyt niskich obrotach (samo się zrobi =>)(+ brak torque na niskich obrotach wykresu....)
        //Torque = differential_type = wheels

        //WheelsRPM zwykła średnia dla napędowych(pominiemy w ten sposób różnice między dyferencjałami różnego typu)

        //EngineRPM
        //Na podstawie WheelsRPM  * GearRatio[CurrentGear];

        /*
         * SR20DET (5 speed)
         * 1st: 3.321
         * 2nd: 1.902
         * 3rd: 1.308
         * 4th: 1.000
         * 5th: 0.759
         * Reverse : 3.382
         * Final Drive: 4.083 (S13)
         */
        if (MyWheelBase != null && GearRatio != null && GearRatio.Length > 0)
        {
            if (Clutch > 0.9)
            {
                ClutchPressed = true;
            }
            else
            {
                ClutchPressed = false;
            }

            if (!ClutchPressed || ClutchIsSlipping)
            {
                WheelsRPM = MyWheelBase.AVGRPM();
                EngineRPM = WheelsRPM * GearRatio[CurrentGear];
            }
            else
            {
                EngineRPM = Throttle * 1000 * Time.deltaTime;
            }

            Torque = Throttle * RPM_Torque.Evaluate(EngineRPM);
            //Torque to Wheels trought differential
            MyWheelBase.ApplyTorque(Torque);
            if (LastSteering != Steering)
            {
                MyWheelBase.Steer(Steering);
                LastSteering = Steering;
            }

            MyWheelBase.AdjustSuspension();
        }
    }