//private float shakeOffset = 20f; public IEnumerator Shake(Vector3 shakeOffset, float delay = 0f, bool destroyOnComplete = false) { yield return(new WaitForSeconds(delay)); LeanTween.cancel(gameObject); TweenArgument argument = new TweenArgument(); argument.destroyOnComplete = destroyOnComplete; argument.shakeOffset = shakeOffset; LeanTween.move(gameObject, transform.position + shakeOffset, shakeTime).setOnComplete(TweenBack).setEase(LeanTweenType.easeInOutSine).setOnCompleteParam(argument); }
private void TweenBack(object tweenArgument) { TweenArgument argument = (TweenArgument)tweenArgument; LeanTween.move(gameObject, transform.position - argument.shakeOffset, shakeTime).setEase(LeanTweenType.easeInSine).setDestroyOnComplete(argument.destroyOnComplete); }