void ApplyValue(TransitionItem item, TransitionValue value) { item.target._gearLocked = true; switch (item.type) { case TransitionActionType.XY: if (item.target == _owner) { float f1, f2; if (!value.b1) { f1 = item.target.x; } else { f1 = value.f1 + _ownerBaseX; } if (!value.b2) { f2 = item.target.y; } else { f2 = value.f2 + _ownerBaseY; } item.target.SetXY(f1, f2); } else { if (!value.b1) { value.f1 = item.target.x; } if (!value.b2) { value.f2 = item.target.y; } item.target.SetXY(value.f1, value.f2); } if (invalidateBatchingEveryFrame) { _owner.InvalidateBatchingState(true); } break; case TransitionActionType.Size: if (!value.b1) { value.f1 = item.target.width; } if (!value.b2) { value.f2 = item.target.height; } item.target.SetSize(value.f1, value.f2); if (invalidateBatchingEveryFrame) { _owner.InvalidateBatchingState(true); } break; case TransitionActionType.Pivot: item.target.SetPivot(value.f1, value.f2); if (invalidateBatchingEveryFrame) { _owner.InvalidateBatchingState(true); } break; case TransitionActionType.Alpha: item.target.alpha = value.f1; break; case TransitionActionType.Rotation: item.target.rotation = value.f1; if (invalidateBatchingEveryFrame) { _owner.InvalidateBatchingState(true); } break; case TransitionActionType.Scale: item.target.SetScale(value.f1, value.f2); if (invalidateBatchingEveryFrame) { _owner.InvalidateBatchingState(true); } break; case TransitionActionType.Skew: item.target.skew = new Vector2(value.f1, value.f2); if (invalidateBatchingEveryFrame) { _owner.InvalidateBatchingState(true); } break; case TransitionActionType.Color: ((IColorGear)item.target).color = value.c; break; case TransitionActionType.Animation: if (!value.b1) { value.i = ((IAnimationGear)item.target).frame; } ((IAnimationGear)item.target).frame = value.i; ((IAnimationGear)item.target).playing = value.b; break; case TransitionActionType.Visible: item.target.visible = value.b; break; case TransitionActionType.Transition: Transition trans = ((GComponent)item.target).GetTransition(value.s); if (trans != null) { if (value.i == 0) { trans.Stop(false, true); } else if (trans.playing) { trans._totalTimes = value.i; } else { item.completed = false; _totalTasks++; if (_reversed) { trans.PlayReverse(value.i, 0, () => { __playTransComplete(item); }); } else { trans.Play(value.i, 0, () => { __playTransComplete(item); }); } if (_timeScale != 1) { trans.timeScale = _timeScale; } } } break; case TransitionActionType.Sound: AudioClip sound = UIConfig.LoadSound(value.s); if (sound != null) { Stage.inst.PlayOneShotSound(sound, value.f1); } break; case TransitionActionType.Shake: item.startValue.f1 = 0; //offsetX item.startValue.f2 = 0; //offsetY item.startValue.f3 = item.value.f2; //shakePeriod Timers.inst.AddUpdate(item.__Shake, this); _totalTasks++; item.completed = false; break; case TransitionActionType.ColorFilter: ColorFilter cf = item.target.filter as ColorFilter; if (cf == null) { cf = new ColorFilter(); item.target.filter = cf; item.filterCreated = true; } else { cf.Reset(); } cf.AdjustBrightness(value.f1); cf.AdjustContrast(value.f2); cf.AdjustSaturation(value.f3); cf.AdjustHue(value.f4); break; } item.target._gearLocked = false; }