60 lines
1.1 KiB
C#
60 lines
1.1 KiB
C#
// (c) Copyright HutongGames, LLC 2010-2013. All rights reserved.
|
|
|
|
using UnityEngine;
|
|
|
|
namespace HutongGames.PlayMaker.Actions
|
|
{
|
|
[ActionCategory(ActionCategory.GUI)]
|
|
[Tooltip("Rotates the GUI around a pivot point. By default only effects GUI rendered by this FSM, check Apply Globally to effect all GUI controls.")]
|
|
public class RotateGUI : FsmStateAction
|
|
{
|
|
[RequiredField]
|
|
public FsmFloat angle;
|
|
[RequiredField]
|
|
public FsmFloat pivotX;
|
|
[RequiredField]
|
|
public FsmFloat pivotY;
|
|
public bool normalized;
|
|
public bool applyGlobally;
|
|
|
|
bool applied;
|
|
|
|
public override void Reset()
|
|
{
|
|
angle = 0;
|
|
pivotX = 0.5f;
|
|
pivotY = 0.5f;
|
|
normalized = true;
|
|
applyGlobally = false;
|
|
}
|
|
|
|
public override void OnGUI()
|
|
{
|
|
if (applied)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var pivotPoint = new Vector2(pivotX.Value, pivotY.Value);
|
|
|
|
if (normalized)
|
|
{
|
|
pivotPoint.x *= Screen.width;
|
|
pivotPoint.y *= Screen.height;
|
|
}
|
|
|
|
GUIUtility.RotateAroundPivot(angle.Value, pivotPoint);
|
|
|
|
if (applyGlobally)
|
|
{
|
|
PlayMakerGUI.GUIMatrix = GUI.matrix;
|
|
applied = true;
|
|
}
|
|
}
|
|
|
|
public override void OnUpdate()
|
|
{
|
|
applied = false;
|
|
}
|
|
}
|
|
} |