private IEnumerator Tick() { while (true) { var tankEntityViews = entityViewsDB.QueryEntityViews <TankEntityView>(); if (tankEntityViews.Count > 0) { for (int i = 0; i < tankEntityViews.Count; i++) { ITankInputComponent tankInput = tankEntityViews[i].TankInputComponent; int tankNumber = 1; tankNumber += i; float horizontalAxis = Input.GetAxis("Horizontal" + tankNumber); float verticalAxis = Input.GetAxis("Vertical" + tankNumber); tankInput.Input = new Vector3(horizontalAxis, 0f, verticalAxis); string fireButtonName = "Fire" + tankNumber; tankInput.GetFireButton = Input.GetButton(fireButtonName); tankInput.GetFireButtonDown = Input.GetButtonDown(fireButtonName); tankInput.GetFireButtonUp = Input.GetButtonUp(fireButtonName); } } yield return(null); } }
private void Charge(ITankInputComponent input, ITransformComponent transform, ILaunchForceComponent launchForce, ITime time) { float chargeSpeed = (launchForce.MaxLaunchForce - launchForce.MinLaunchForce) / launchForce.MaxChargeTime; if (launchForce.CurrentLaunchForce >= launchForce.MaxLaunchForce && !input.Fired) { launchForce.CurrentLaunchForce = launchForce.MaxLaunchForce; Fire(transform, launchForce.CurrentLaunchForce); input.Fired = true; launchForce.CurrentLaunchForce = launchForce.MinLaunchForce; } else if (input.GetFireButtonDown) { input.Fired = false; launchForce.CurrentLaunchForce = launchForce.MinLaunchForce; } else if (input.GetFireButton && !input.Fired) { launchForce.CurrentLaunchForce += chargeSpeed * time.DeltaTime; } else if (input.GetFireButtonUp && !input.Fired) { Fire(transform, launchForce.CurrentLaunchForce); input.Fired = true; launchForce.CurrentLaunchForce = launchForce.MinLaunchForce; } }
private void Charge(ILaunchForceComponent launchForce, ITankInputComponent tankInput, IAimSliderComponent aimSlider) { aimSlider.AimSliderValue = launchForce.MinLaunchForce; if (tankInput.GetFireButton && !tankInput.Fired) { aimSlider.AimSliderValue = launchForce.CurrentLaunchForce; } }
private IEnumerator Tick() { while (true) { var tankMovementSoundEntityViews = entityViewsDB.QueryEntityViews <TankMovementSoundEntityView>(); if (tankMovementSoundEntityViews.Count > 0) { for (int i = 0; i < tankMovementSoundEntityViews.Count; i++) { IAudioSourceComponent audioSourceComponent = tankMovementSoundEntityViews[i].AudioSourceComponent; ITankMovementSoundsComponent soundComponent = tankMovementSoundEntityViews[i].TankMovementSoundsComponent; ITankInputComponent inputComponent = tankMovementSoundEntityViews[i].TankInputComponent; if (Mathf.Abs(inputComponent.Input.z) < 0.1f && Mathf.Abs(inputComponent.Input.x) < 0.1f) { if (audioSourceComponent.Clip == soundComponent.EngineDrivingAudioClip) { audioSourceComponent.Clip = soundComponent.IdleAudioClip; audioSourceComponent.Pitch = Random.Range(1 - 0.1f, 1 + 0.1f); audioSourceComponent.Play(); } } else { if (audioSourceComponent.Clip == soundComponent.IdleAudioClip) { // ... change the clip to driving and play. audioSourceComponent.Clip = soundComponent.EngineDrivingAudioClip; audioSourceComponent.Pitch = Random.Range(1 - 0.1f, 1 + 0.1f); audioSourceComponent.Play(); } } } } yield return(null); } }