Пример #1
0
 /// <summary>
 /// 更新させるUIのインスタンスを取得
 /// </summary>
 private void Awake()
 {
     mGameState      = FindObjectOfType <GameStateManager>();
     mUiCurrentGear  = FindObjectOfType <UiCurrentGear>();
     mUiCurrentSpeed = FindObjectOfType <UiCurrentSpeed>();
     mUiEnginePower  = FindObjectOfType <UiEnginePower>();
     mUiTransmission = FindObjectOfType <UiTransmission>();
     mUiCarModel     = FindObjectOfType <DataUiCarModel>();
 }
Пример #2
0
    private void OnEnable()
    {
        mInput                = GetComponent <IPlayerInput>();
        mRigidbody            = GetComponent <Rigidbody>();
        mDataUiCarModel       = FindObjectOfType <DataUiCarModel>();
        mCarParam.PreVelocity = mRigidbody.velocity;
        //初回起動
        if (!mAudioParent)
        {
            var obj = Resources.LoadAll("SoundParam");
            mSounds      = new BaseSoundParam[obj.Length];
            mSounds      = obj.Select(x => (BaseSoundParam)x).ToArray();
            mAudioParent = new GameObject("Audio");
            mAudioParent.transform.parent        = transform;
            mAudioParent.transform.localPosition = Vector3.zero;
            mAudioParent.transform.localRotation = Quaternion.identity;
            foreach (var x in mSounds)
            {
                x.Init(mAudioParent.transform);
            }
        }
        //2回目以降
        else if (mAudioParent)
        {
            foreach (var x in mSounds)
            {
                x.Init();
            }
        }
        if (!mIsAudioCheck)
        {
            return;
        }
        var rpmAudio = mAudioParent.Descendants().Where(x => x.name.Contains("RPM"));

        mAudioParam = new AudioParam [rpmAudio.Count()];
        foreach (var x in rpmAudio.Select((x, i) => new { x, i }))
        {
            mAudioParam[x.i].source = x.x.GetComponent <AudioSource>();
        }
    }
Пример #3
0
    private void Initialize()
    {
        AccessToResources();
        //ユーザーの入力を取得
        mPlayerInput           = GetComponent <IPlayerInput>();
        mRigidbody             = GetComponent <Rigidbody>();
        mDataUiCarModel        = FindObjectOfType <DataUiCarModel>();
        mGameSceneManager      = FindObjectOfType <GameSceneManager>();
        mRigidbody.constraints = RigidbodyConstraints.FreezeRotation;
        mRigidbody.useGravity  = false;
        mInitializer           = new TransformInitializer(transform);
        //エンジン内で使用する計算クラス
        EngineSpeedCalc engineCalc = new EngineSpeedCalc(mVehicleSettings.GetEngineSettings, mVehicleSettings.GetPenaltySettings, mGearParam, mPlayerInput.GetCurrentGear);

        //エンジンを初期化
        mEngine = new Engine(engineCalc, mRigidbody, gameObject.FindObjectOfInterface <IGearManageable>(), mPlayerInput.GetCurrentGear);

        mVehicleMove = new VehicleMove(mRigidbody, transform, mWheelParams,
                                       mVehicleSettings.GetDriftSettings, mVehicleSettings.GetSteerSensitivities);
        mAirRide      = new AirRide(transform, mRayConfig.GetAirRideRayConfig, mVehicleSettings.GetAirRideSettings);
        mDirFix       = new DirectionFix(transform, mRayConfig.GetDirectionFixRayConfig);
        mAIPenaltyRay = new DirectionFixRay(transform, mRayConfig.GetDirectionFixRayConfig);
        mWallHitCheck = new WallHitCheck(transform, mRayConfig.GetLRRayConfig);
    }
Пример #4
0
    /*各AudioClipごとのGameObjectを作り最初に作った親オブジェクト配下にする*/
    private void Initialized()
    {
        //初期化済みなら値のリセットのみ行う
        if (mIsInit)
        {
            windRushSource.volume        = 0f;
            windRushSource.pitch         = 1f;
            skidSource.volume            = 0f;
            skidSource.pitch             = 1f;
            brakeSource.volume           = 0f;
            brakeSource.pitch            = 1f;
            roadRollSource.volume        = 0f;
            roadRollSource.pitch         = 1f;
            collisionSource.volume       = 0f;
            collisionSource.pitch        = 1f;
            collisionScrapeSource.volume = 0f;
            collisionScrapeSource.pitch  = 1f;
            foreach (var x in audioSamples.powerSamplesSource.Concat(audioSamples.coastSamplesSource))
            {
                x.volume = 0f;
                x.pitch  = 1f;
            }
            return;
        }
        mIsInit      = true;
        mRigidbody   = GetComponent <Rigidbody>();
        mPreVelocity = mRigidbody.velocity;
        audioHolder  = new GameObject("_Audio");
        audioHolder.transform.parent = transform;
        mPlayerInput    = GetComponent <IPlayerInput>();
        mDataUiCarModel = FindObjectOfType <DataUiCarModel>();
        if (windRush)
        {
            windRushSource = CreateAudioSource(windRush);
        }
        if (skid)
        {
            skidSource = CreateAudioSource(skid);
        }
        if (roadRoll)
        {
            roadRollSource = CreateAudioSource(roadRoll);
        }
        if (brake)
        {
            brakeSource = CreateAudioSource(brake);
        }
        if (collision)
        {
            collisionSource = CreateAudioSource(collision);
        }
        if (collisionSource)
        {
            collisionSource.loop = false;
        }
        collisionScrapeSource = CreateAudioSource(collisionScrape);

        // Samples Set1
        audioSamples.coastBlendRpm     = coastTransferRpm;
        audioSamples.powerBlendRpm     = powerTransferRpm;
        audioSamples.gearWhineBlendRpm = gearWhineTransferRpm;
        audioSamples.coastSamples      = coastSamples;
        audioSamples.powerSamples      = powerSamples;
        audioSamples.gearWhineSamples  = gearWhineSamples;

        // Create onSampleSources
        if (powerSamples != null)
        {
            audioSamples.powerSamplesLength = powerSamples.Length;
            audioSamples.powerSamplesSource = new AudioSource[audioSamples.powerSamplesLength];
            for (int i = 0; i < audioSamples.powerSamplesLength; i++)
            {
                audioSamples.powerSamplesSource[i] = CreateAudioSource(audioSamples.powerSamples[i]);
            }
        }
        // Create onSampleSources
        if (coastSamples != null)
        {
            audioSamples.coastSamplesLength = coastSamples.Length;
            audioSamples.coastSamplesSource = new AudioSource[audioSamples.coastSamplesLength];
            for (int i = 0; i < audioSamples.coastSamplesLength; i++)
            {
                audioSamples.coastSamplesSource[i] = CreateAudioSource(audioSamples.coastSamples[i]);
            }
        }

        // Create gearwhineSources
        if (gearWhineSamples != null)
        {
            audioSamples.gearWhineSamplesLength = gearWhineSamples.Length;
            audioSamples.gearWhineSamplesSource = new AudioSource[audioSamples.gearWhineSamplesLength];
            for (int i = 0; i < audioSamples.gearWhineSamplesLength; i++)
            {
                audioSamples.gearWhineSamplesSource[i] = CreateAudioSource(audioSamples.gearWhineSamples[i]);
            }
        }
    }
Пример #5
0
 private void Awake()
 {
     mGameStateManager = FindObjectOfType <GameStateManager>();
     mGameSceneManager = FindObjectOfType <GameSceneManager>();
     mDataUiCarModel   = FindObjectOfType <DataUiCarModel>();
 }