Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [AddComponentMenu("UX/TweenPercentBinder")]
- public class TweenPercentBinder : SerializedMonoBehaviour
- {
- [OdinSerialize, NonSerialized, HideReferenceObjectPicker]
- [ListDrawerSettings(ListElementLabelName = "Name")]
- protected TweenBase[] Tweens = new TweenBase[0];
- }
- public abstract class TweenBase
- {
- /// <summary>
- /// Editor Name
- /// </summary>
- public abstract string Name { get; }
- /// <summary>
- /// Called onced
- /// </summary>
- public abstract void Init(MonoBehaviour controller);
- /// <summary>
- /// Handle
- /// </summary>
- public abstract void SetPercent(float percent);
- }
- public class CanvasAlpha : TweenBase
- {
- public override string Name
- {
- get
- {
- return "CanvasAlpha";
- }
- }
- [OdinSerialize]
- RangeFloat _range;
- CanvasGroup _target;
- public override void Init(MonoBehaviour controller)
- {
- _target = controller.GetComponent<CanvasGroup>();
- }
- public override void SetPercent(float percent)
- {
- // var v = Mathf.Lerp(_range.start, _range.end, percent);
- // _target.alpha = v;
- // _target.interactable = v >= 1f;
- // _target.blocksRaycasts = v > 0f;
- }
- }
- [Serializable]
- public struct RangeFloat
- {
- public float start;
- public float end;
- public RangeFloat(float s = 0, float e = 0)
- {
- start = s;
- end = e;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement