testss
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace UnityEditor.U2D.Path.GUIFramework
|
||||
{
|
||||
/// <summary>
|
||||
/// SliderAction implementation of a ClickAction
|
||||
/// </summary>
|
||||
public class SliderAction : ClickAction
|
||||
{
|
||||
private SliderData m_SliderData;
|
||||
|
||||
/// <summary>
|
||||
/// Action for OnSliderBegin
|
||||
/// </summary>
|
||||
public Action<IGUIState, Control, Vector3> onSliderBegin;
|
||||
/// <summary>
|
||||
/// Action for OnSliderChanged
|
||||
/// </summary>
|
||||
public Action<IGUIState, Control, Vector3> onSliderChanged;
|
||||
/// <summary>
|
||||
/// Action for OnSliderEnd
|
||||
/// </summary>
|
||||
public Action<IGUIState, Control, Vector3> onSliderEnd;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes and returns an instance of SliderAction
|
||||
/// </summary>
|
||||
/// <param name="control">The control to execcute an action for on slide.</param>
|
||||
public SliderAction(Control control) : base(control, 0, false)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks to see if the finish condition has been met or not.
|
||||
/// </summary>
|
||||
/// <param name="guiState">The current state of the custom editor.</param>
|
||||
/// <returns>Returns `true` if the finish condition has been met. Otherwise, returns `false`.</returns>
|
||||
protected override bool GetFinishContidtion(IGUIState guiState)
|
||||
{
|
||||
return guiState.eventType == EventType.MouseUp && guiState.mouseButton == 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called when there is interaction with the slider. It updates the stored slider data with data post-interaction.
|
||||
/// </summary>
|
||||
/// <param name="guiState">The current state of the custom editor.</param>
|
||||
protected override void OnTrigger(IGUIState guiState)
|
||||
{
|
||||
base.OnTrigger(guiState);
|
||||
|
||||
m_SliderData.position = hoveredControl.hotLayoutData.position;
|
||||
m_SliderData.forward = hoveredControl.hotLayoutData.forward;
|
||||
m_SliderData.right = hoveredControl.hotLayoutData.right;
|
||||
m_SliderData.up = hoveredControl.hotLayoutData.up;
|
||||
|
||||
if (onSliderBegin != null)
|
||||
onSliderBegin(guiState, hoveredControl, m_SliderData.position);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Post-processing for when the slider interaction finishes.
|
||||
/// </summary>
|
||||
/// <param name="guiState">The current state of the custom editor.</param>
|
||||
protected override void OnFinish(IGUIState guiState)
|
||||
{
|
||||
if (onSliderEnd != null)
|
||||
onSliderEnd(guiState, hoveredControl, m_SliderData.position);
|
||||
|
||||
guiState.UseEvent();
|
||||
guiState.Repaint();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Moves the slider to the new permission and executes `onSliderChanged` using the new position.
|
||||
/// </summary>
|
||||
/// <param name="guiState">The current state of the custom editor</param>
|
||||
protected override void OnPerform(IGUIState guiState)
|
||||
{
|
||||
Vector3 newPosition;
|
||||
var changed = guiState.Slider(ID, m_SliderData, out newPosition);
|
||||
|
||||
if (changed)
|
||||
{
|
||||
m_SliderData.position = newPosition;
|
||||
|
||||
if (onSliderChanged != null)
|
||||
onSliderChanged(guiState, hoveredControl, newPosition);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user