/// <summary> /// ■brakePower:ブレーキの強さ /// </summary> public EngineSpeedCalc(VehicleSettings.EngineSettings engineSettings, VehicleSettings.PenaltySettings penaltySettings, GearParam gearParam, IReadOnlyReactiveProperty <GearState> gear) { mEngineSettings = engineSettings; mPenaltySettings = penaltySettings; mCurrentGear = gear; mLowestSpeed = gearParam.GetGearData(GearState.REVERSE).MaxSpeed; mEngineRpmCalculator = new EngineRpmCalculator(gearParam, gear); mCurrentGear .Buffer(2, 1) .Subscribe(x => { //現在のギアデータ GearData gearData = gearParam.GetGearData(x.Last()); //1つ前のギアデータ GearData lateGearData = gearParam.GetGearData(x.First()); //現在のギアに必要な回転数を取得 mNeedSpeed = gearData.NeedSpeed; //現在のギアの最大回転数を取得 mMaxSpeed = gearData.MaxSpeed; //ギア変更前の最大回転数を取得 mPreMaxSpeed = lateGearData.MaxSpeed; //エンジンブレーキの強さを取得 mEngineBrakePow = gearData.EngineBrake; //1秒あたりのエンジン回転数を取得 mAccPow = gearData.EngineRot; }); }
private void AccessToResources() { mGearParam = Resources.Load(ConstString.Path.GEAR_PARAM) as GearParam; mRayConfig = Resources.Load(ConstString.Path.RAY_CONFIG) as RayConfig; mWheelParams = Resources.Load(ConstString.Path.WHEEL_PARAM) as WheelParams; mVehicleSettings = Resources.Load(ConstString.Path.VEHICLE_SETTINGS) as VehicleSettings; }
//コンストラクタ public EngineRpmCalculator(GearParam gearParam, IReadOnlyReactiveProperty <GearState> gearState) { gearState .Buffer(2, 1) .Subscribe(x => { mMaxSpeed = gearParam.GetGearData(x.Last()).MaxSpeed; mGearState = x.Last(); mMaxPreSpeed = gearParam.GetGearData(x.First()).MaxSpeed; }); }
//コンストラクタ public EngineRpmCalculator(GearParam gearParam, IReadOnlyReactiveProperty <GearState> gearState) { gearState .Buffer(2, 1) .Subscribe(x => { //現在のギアに設定されている最高速度 mMaxSpeed = gearParam.GetGearData(x.Last()).MaxSpeed; //現在のギアステート mGearState = x.Last(); //ひとつ前のギアに設定されている最高速度 mMaxPreSpeed = gearParam.GetGearData(x.First()).MaxSpeed; }); }
public GearManager(VehicleCore core) { Initialize(); mVehicleCore = core; mGearParam = Resources.Load(ConstString.Path.GEAR_PARAM) as GearParam; }