184 lines
4.7 KiB
C#
184 lines
4.7 KiB
C#
// (c) Copyright HutongGames, LLC 2010-2015. All rights reserved.
|
|
|
|
namespace HutongGames.PlayMaker.Actions
|
|
{
|
|
[ActionCategory(ActionCategory.UI)]
|
|
[Tooltip("Gets various properties of a UI Layout Element component.")]
|
|
public class UiLayoutElementGetValues : ComponentAction<UnityEngine.UI.LayoutElement>
|
|
{
|
|
[RequiredField]
|
|
[CheckForComponent(typeof(UnityEngine.UI.LayoutElement))]
|
|
[Tooltip("The GameObject with the UI LayoutElement component.")]
|
|
public FsmOwnerDefault gameObject;
|
|
|
|
[ActionSection("Values")]
|
|
|
|
[Tooltip("Is this element use Layout constraints")]
|
|
[UIHint(UIHint.Variable)]
|
|
public FsmBool ignoreLayout;
|
|
|
|
[Tooltip("The minimum width enabled state")]
|
|
[UIHint(UIHint.Variable)]
|
|
public FsmBool minWidthEnabled;
|
|
|
|
[Tooltip("The minimum width this layout element should have.")]
|
|
[UIHint(UIHint.Variable)]
|
|
public FsmFloat minWidth;
|
|
|
|
[Tooltip("The minimum height enabled state")]
|
|
[UIHint(UIHint.Variable)]
|
|
public FsmBool minHeightEnabled;
|
|
|
|
[Tooltip("The minimum height this layout element should have.")]
|
|
[UIHint(UIHint.Variable)]
|
|
public FsmFloat minHeight;
|
|
|
|
[Tooltip("The preferred width enabled state")]
|
|
[UIHint(UIHint.Variable)]
|
|
public FsmBool preferredWidthEnabled;
|
|
|
|
[Tooltip("The preferred width this layout element should have before additional available width is allocated.")]
|
|
[UIHint(UIHint.Variable)]
|
|
public FsmFloat preferredWidth;
|
|
|
|
[Tooltip("The preferred height enabled state")]
|
|
[UIHint(UIHint.Variable)]
|
|
public FsmBool preferredHeightEnabled;
|
|
|
|
[Tooltip("The preferred height this layout element should have before additional available height is allocated.")]
|
|
[UIHint(UIHint.Variable)]
|
|
public FsmFloat preferredHeight;
|
|
|
|
[Tooltip("The flexible width enabled state")]
|
|
[UIHint(UIHint.Variable)]
|
|
public FsmBool flexibleWidthEnabled;
|
|
|
|
[Tooltip("The relative amount of additional available width this layout element should fill out relative to its siblings.")]
|
|
[UIHint(UIHint.Variable)]
|
|
public FsmFloat flexibleWidth;
|
|
|
|
[Tooltip("The flexible height enabled state")]
|
|
[UIHint(UIHint.Variable)]
|
|
public FsmBool flexibleHeightEnabled;
|
|
|
|
[Tooltip("The relative amount of additional available height this layout element should fill out relative to its siblings.")]
|
|
[UIHint(UIHint.Variable)]
|
|
public FsmFloat flexibleHeight;
|
|
|
|
[ActionSection("Options")]
|
|
[Tooltip("Repeats every frame")]
|
|
public bool everyFrame;
|
|
|
|
private UnityEngine.UI.LayoutElement layoutElement;
|
|
|
|
public override void Reset()
|
|
{
|
|
gameObject = null;
|
|
ignoreLayout = null;
|
|
minWidthEnabled = null;
|
|
minHeightEnabled = null;
|
|
preferredWidthEnabled = null;
|
|
preferredHeightEnabled = null;
|
|
flexibleWidthEnabled = null;
|
|
flexibleHeightEnabled = null;
|
|
minWidth = null;
|
|
minHeight = null;
|
|
preferredWidth = null;
|
|
preferredHeight = null;
|
|
flexibleWidth = null;
|
|
flexibleHeight = null;
|
|
}
|
|
|
|
public override void OnEnter()
|
|
{
|
|
var go = Fsm.GetOwnerDefaultTarget(gameObject);
|
|
if (UpdateCache(go))
|
|
{
|
|
layoutElement = cachedComponent;
|
|
}
|
|
|
|
DoGetValues();
|
|
|
|
if (!everyFrame)
|
|
{
|
|
Finish();
|
|
}
|
|
}
|
|
|
|
public override void OnUpdate()
|
|
{
|
|
DoGetValues();
|
|
}
|
|
|
|
private void DoGetValues()
|
|
{
|
|
if (layoutElement == null) return;
|
|
|
|
if (!ignoreLayout.IsNone)
|
|
{
|
|
ignoreLayout.Value = layoutElement.ignoreLayout;
|
|
}
|
|
|
|
if (!minWidthEnabled.IsNone)
|
|
{
|
|
minWidthEnabled.Value = layoutElement.minWidth != 0;
|
|
}
|
|
|
|
if (!minWidth.IsNone)
|
|
{
|
|
minWidth.Value = layoutElement.minWidth;
|
|
}
|
|
|
|
if (!minHeightEnabled.IsNone)
|
|
{
|
|
minHeightEnabled.Value = layoutElement.minHeight != 0;
|
|
}
|
|
|
|
if (!minHeight.IsNone)
|
|
{
|
|
minHeight.Value = layoutElement.minHeight;
|
|
}
|
|
|
|
if (!preferredWidthEnabled.IsNone)
|
|
{
|
|
preferredWidthEnabled.Value = layoutElement.preferredWidth != 0;
|
|
}
|
|
|
|
if (!preferredWidth.IsNone)
|
|
{
|
|
preferredWidth.Value = layoutElement.preferredWidth;
|
|
}
|
|
|
|
if (!preferredHeightEnabled.IsNone)
|
|
{
|
|
preferredHeightEnabled.Value = layoutElement.preferredHeight != 0;
|
|
}
|
|
|
|
if (!preferredHeight.IsNone)
|
|
{
|
|
preferredHeight.Value = layoutElement.preferredHeight;
|
|
}
|
|
|
|
if (!flexibleWidthEnabled.IsNone)
|
|
{
|
|
flexibleWidthEnabled.Value = layoutElement.flexibleWidth != 0;
|
|
}
|
|
|
|
if (!flexibleWidth.IsNone)
|
|
{
|
|
flexibleWidth.Value = layoutElement.flexibleWidth;
|
|
}
|
|
|
|
if (!flexibleHeightEnabled.IsNone)
|
|
{
|
|
flexibleHeightEnabled.Value = layoutElement.flexibleHeight != 0;
|
|
}
|
|
|
|
if (!flexibleHeight.IsNone)
|
|
{
|
|
flexibleHeight.Value = layoutElement.flexibleHeight;
|
|
}
|
|
}
|
|
|
|
}
|
|
} |