void Update() { if (ParticleInstance == null) { SpawnParticleSystem(); } m_DiskOrbitParticle.gameObject.SetActive(m_WeaponController.IsWeaponActive); m_ChargeRatio = m_WeaponController.CurrentCharge; ChargingObject.transform.localScale = Scale.GetValueFromRatio(m_ChargeRatio); if (SpinningFrame != null) { SpinningFrame.transform.localRotation *= Quaternion.Euler(0, SpinningSpeed.GetValueFromRatio(m_ChargeRatio) * Time.deltaTime, 0); } m_VelocityOverTimeModule.orbitalY = OrbitY.GetValueFromRatio(m_ChargeRatio); m_DiskOrbitParticle.transform.localScale = Radius.GetValueFromRatio(m_ChargeRatio * 1.1f); // update sound's volume and pitch if (m_ChargeRatio > 0) { if (!m_AudioSourceLoop.isPlaying && m_WeaponController.LastChargeTriggerTimestamp > m_LastChargeTriggerTimestamp) { m_LastChargeTriggerTimestamp = m_WeaponController.LastChargeTriggerTimestamp; if (!UseProceduralPitchOnLoopSfx) { m_EndchargeTime = Time.time + ChargeSound.length; m_AudioSource.Play(); } m_AudioSourceLoop.Play(); } if (!UseProceduralPitchOnLoopSfx) { float volumeRatio = Mathf.Clamp01((m_EndchargeTime - Time.time - FadeLoopDuration) / FadeLoopDuration); m_AudioSource.volume = volumeRatio; m_AudioSourceLoop.volume = 1 - volumeRatio; } else { m_AudioSourceLoop.pitch = Mathf.Lerp(1.0f, MaxProceduralPitchValue, m_ChargeRatio); } } else { m_AudioSource.Stop(); m_AudioSourceLoop.Stop(); } }
void OnShoot() { // Apply the parameters based on projectile charge ProjectileStandard proj = GetComponent <ProjectileStandard>(); if (proj) { proj.damage = damage.GetValueFromRatio(m_ProjectileBase.initialCharge); proj.radius = radius.GetValueFromRatio(m_ProjectileBase.initialCharge); proj.speed = speed.GetValueFromRatio(m_ProjectileBase.initialCharge); proj.gravityDownAcceleration = gravityDownAcceleration.GetValueFromRatio(m_ProjectileBase.initialCharge); } }
void OnShoot() { // Apply the parameters based on projectile charge ProjectileStandard proj = GetComponent <ProjectileStandard>(); if (proj) { proj.Damage = Damage.GetValueFromRatio(m_ProjectileBase.InitialCharge); proj.Radius = Radius.GetValueFromRatio(m_ProjectileBase.InitialCharge); proj.Speed = Speed.GetValueFromRatio(m_ProjectileBase.InitialCharge); proj.GravityDownAcceleration = GravityDownAcceleration.GetValueFromRatio(m_ProjectileBase.InitialCharge); } }
void Update() { if (particleInstance == null) { SpawnParticleSystem(); } m_DiskOrbitParticle.gameObject.SetActive(m_WeaponController.isWeaponActive); m_ChargeRatio = m_WeaponController.currentCharge; chargingObject.transform.localScale = scale.GetValueFromRatio(m_ChargeRatio); if (spinningFrame != null) { spinningFrame.transform.localRotation *= Quaternion.Euler(0, spinningSpeed.GetValueFromRatio(m_ChargeRatio) * Time.deltaTime, 0); } m_VelocityOverTimeModule.orbitalY = orbitY.GetValueFromRatio(m_ChargeRatio); m_DiskOrbitParticle.transform.localScale = radius.GetValueFromRatio(m_ChargeRatio * 1.1f); // update sound's volume and pitch if (m_ChargeRatio > 0) { if (!m_AudioSource.isPlaying && m_WeaponController.LastChargeTriggerTimestamp > m_LastChargeTriggerTimestamp) { m_LastChargeTriggerTimestamp = m_WeaponController.LastChargeTriggerTimestamp; m_EndchargeTime = Time.time + chargeSound.length; m_AudioSource.Play(); m_AudioSourceLoop.Play(); } float volumeRatio = Mathf.Clamp01((m_EndchargeTime - Time.time - fadeLoopDuration) / fadeLoopDuration); m_AudioSource.volume = volumeRatio; m_AudioSourceLoop.volume = 1 - volumeRatio; } else { m_AudioSource.Stop(); m_AudioSourceLoop.Stop(); } }