예제 #1
0
    void updateLinearDrag()
    {
        float sinx            = Mathf.Abs(Mathf.Sin(_rigidbody.rotation.eulerAngles.x * Mathf.PI / 180));
        float cosx            = Mathf.Abs(Mathf.Cos(_rigidbody.rotation.eulerAngles.x * Mathf.PI / 180));
        float sinz            = Mathf.Abs(Mathf.Sin(_rigidbody.rotation.eulerAngles.z * Mathf.PI / 180));
        float cosz            = Mathf.Abs(Mathf.Cos(_rigidbody.rotation.eulerAngles.z * Mathf.PI / 180));
        float cosy            = Mathf.Abs(Mathf.Cos(_rigidbody.rotation.eulerAngles.y * Mathf.PI / 180));
        float siny            = Mathf.Abs(Mathf.Sin(_rigidbody.rotation.eulerAngles.y * Mathf.PI / 180));
        float velocityForward = Mathf.Pow(Mathf.Pow(_rigidbody.velocity.x, 2) + Mathf.Pow(_rigidbody.velocity.z, 2), 0.5f);

        float dragForward = (1 / 2f) * Mathf.Pow(velocityForward, 2) * _constval.GetAirDensity()
                            * _constval.GetClin() * sinx * cosz * DroneWedth * DroneLength;

        float dragUPward = (1 / 2f) * Mathf.Pow(_rigidbody.velocity.y, 2) * _constval.GetAirDensity()
                           * _constval.GetClin() * cosx * cosz * DroneWedth * DroneLength;

        float dragSwerve = (1 / 2f) * Mathf.Pow(velocityForward, 2) * _constval.GetAirDensity()
                           * _constval.GetClin() * sinz * DroneWedth * DroneLength;

        _rigidbody.drag = Mathf.Pow((Mathf.Pow(dragForward, 2) + Mathf.Pow(dragUPward, 2) + Mathf.Pow(dragSwerve, 2)), 0.5f);
//		print (_rigidbody.drag);
    }
예제 #2
0
 void valueInitialize()
 {
     _Acceleration          = 0;
     oldXRotation           = transform.rotation.eulerAngles.x;
     oldYRotation           = transform.rotation.eulerAngles.y;
     oldZRotation           = transform.rotation.eulerAngles.z;
     _gravity               = _constval.GetGravity();
     propellerDiameter      = _constval.GetPropellerDiameter();
     propellerVelocity      = _constval.GetAngularVelocity();
     maxRPM                 = _constval.GetMaxRPM();
     airDensity             = _constval.GetAirDensity();
     thrustCoefficient      = _constval.GetC_T();
     powerCoefficient       = _constval.GetC_Pow();
     linearDragCoefficient  = _constval.GetClin();
     AngularDragCoefficient = _constval.GetC_AngularDrag();
 }