/// <summary> /// 创建一个消失果冻效果的Action. /// </summary> /// <param name="target">目标对象.</param> /// <param name="delay">延迟秒数.</param> public static MTFiniteTimeAction CreateJellyPopOutAction(GameObject target, float delay = 0.0f) { var act1 = new MTScaleTo(0.1f, 0.1f, 0f, 0f); var sequence = new MTSequence(new MTDelayTime(delay), act1); return(sequence); }
public static MTFiniteTimeAction GetBounce(float moveTime, Transform tar, Vector3 pos, float bounceRatio = 0.15f) { Vector3 from = tar.position; Vector3 normalize = (pos - from).normalized; Vector3 bounceOverPos = pos + normalize * bounceRatio; Vector3 bounceBackPos = pos - normalize * bounceRatio; float bounceInterval = 0.02f; float realMoveTime = moveTime - bounceInterval * 3f; var seq = new MTSequence(new MTMoveToWorld(realMoveTime, bounceOverPos), new MTMoveToWorld(bounceInterval * 1f, bounceBackPos), new MTMoveToWorld(bounceInterval, pos)); return(seq); }
void StartNextScrollAction() { if (_autoScrollCurrState != null) { _autoScrollActions.Remove(_autoScrollCurrState.Actions(0) as MTMoveTo); _autoScrollCurrState = null; } if (_autoScrollActions.Count == 0) { return; } MTSequence action = new MTSequence(_autoScrollActions[0], new MTCallFunc(delegate { StartNextScrollAction(); })); _autoScrollCurrState = _contentHolder.gameObject.RunAction(action) as MTSequenceState; }
/// <summary> /// 开始呼吸效果. /// </summary> /// <returns>The breathe effect.</returns> /// <param name="target">目标.</param> /// <param name="scale1">Scale1.</param> /// <param name="scale2">Scale2.</param> /// <param name="duration">一呼或者一吸的持续时间(单位:秒数),默认为0.9秒.</param> public static MTFiniteTimeAction CreateBreatheEffect(GameObject target, float scale1, float scale2, float duration = 0.9f) { Vector3 scale = target.transform.localScale; var sx = scale.x; var sy = scale.y; var sx1 = scale1 * sx; var sx2 = scale2 * sx; var sy1 = scale1 * sy; var sy2 = scale2 * sy; var act1 = new MTEaseIn(new MTScaleTo(duration, sx1, sy2, scale.z), 1f); var act2 = new MTEaseIn(new MTScaleTo(duration, sx2, sy1, scale.z), 1f); var sequence = new MTSequence(act1, act2); var repeat = new MTRepeatForever(sequence); return(repeat); }