protected override void OnDelayedAttachAsMain(Character target) { GameObject targetGo = targetEntity.GetComponent <EntityGameObjectComponent>().GameObject; vibration = VibrateTarget( info.XAmplitude, duration, info.Frequency, info.ShouldDecay, info.DecayConstant, targetGo, () => { } ); }
protected VibrationRequest.Vibration VibrateTarget(float xAmplitude, float duration, int frequency, bool shouldDecay, float decayConstant, GameObject go, Action onComplete) { VibrationRequest.Vibration v = new VibrationRequest.Vibration( new Pos(go.transform.Find("Renderer")), xAmplitude, duration, frequency, shouldDecay, decayConstant ); Timing.RunCoroutine(_VibrateTarget(v, onComplete)); return(v); }
private IEnumerator <float> _VibrateTarget(VibrationRequest.Vibration v, Action onComplete) { while (true) { float waitTime = 0.02f; yield return(Timing.WaitForSeconds(waitTime)); v.Update(waitTime); if (v.Completed) { onComplete(); break; } } }