public virtual void ManualStart(List<Bullet> p_bullet, GameObject p_panel, GuiManager p_gui, GameObject p_aim, AudioSource p_musicSource, AudioClip p_musicLevel) { _rigidbody = GetComponent<Rigidbody>(); _audioSource = GetComponent<AudioSource>(); _anim = GetComponent<Animator>(); _flightController = GetComponent<Flight>(); _collisionManager = GetComponent<AircraftCollisionManager>(); _flightController.ManualStart(); TPSCameraController.ManualStart(_rigidbody); FPSCameraController.ManualStart(_rigidbody); _currentCameraController = TPSCameraController; soundController.musicSound = p_musicSource; _bullets = p_bullet; _instPanel = p_panel; _guiManager = p_gui; _aimHUD = p_aim; _guiManager.energySlider.maxValue = energy; _guiManager.energySlider.value = energy; _guiManager.heatSlider.maxValue = normalWeaponHeatTime; _guiManager.heatSlider.value = _normalWeaponHeatCount; _guiManager.armorSlider.maxValue = armorEnergy; _guiManager.armorSlider.value = armorEnergy; _instPanel.SetActive(false); _initialEmissionStartSpeed = fireEmission[0].startSpeed; _emissionLightNormalIntensity = lightEmission[0].intensity; _animIDBarrelLeft = Animator.StringToHash("BarrelRollLeft"); _animIDBarrelRight = Animator.StringToHash("BarrelRollRight"); _animIDShake = Animator.StringToHash("ShakeThird"); if (currentType != type.AIRCRAFT_3) { _animIDAcc = Animator.StringToHash("Accelerate"); _animIDBoost = Animator.StringToHash("Boost"); } if (currentType == type.AIRCRAFT_1) _anim.SetBool(_animIDAcc, true); _collisionManager.ManualStart(); _collisionManager.onHitGround += delegate (Vector3 p_point) { DecreaseEnergy(5f); _flightController.ApplyImpactForce(p_point); _anim.SetTrigger(_animIDShake); Invoke("CancelAnim", 0.5f); }; _collisionManager.onHitStaticObject += delegate (Vector3 p_point) { DecreaseEnergy(5f); _flightController.ApplyImpactForce(p_point); _anim.SetTrigger(_animIDShake); Invoke("CancelAnim", 0.5f); }; _collisionManager.onHitEnemy += delegate (Vector3 p_point, float p_damage) { DecreaseEnergy(p_damage); //_flightController.ApplyImpactForceMonster(p_point); _anim.SetTrigger(_animIDShake); Invoke("CancelAnim", 0.8f); }; _collisionManager.onHitEnemyLittle += delegate (Vector3 p_point, float p_damage) { if (!_inBarrelRoll) { DecreaseEnergy(p_damage); _anim.SetTrigger(_animIDShake); Invoke("CancelAnim", 0.5f); } }; soundController.PlaySound(SoundController.source.MUSIC, p_musicLevel); soundController.PlaySound(SoundController.source.ENGINE, engineSound); // Change camera soundController.InsideCockpit(false); this.enabled = true; }