111 lines
3.7 KiB
C#
111 lines
3.7 KiB
C#
using System;
|
|
using UnityEngine;
|
|
|
|
namespace UnityEditor.U2D.Path.GUIFramework
|
|
{
|
|
/// <summary>
|
|
/// Represents a default generic UI control.
|
|
/// </summary>
|
|
public class GenericDefaultControl : DefaultControl
|
|
{
|
|
/// <summary>
|
|
/// Func for GetPosition
|
|
/// </summary>
|
|
public Func<IGUIState, Vector3> position;
|
|
/// <summary>
|
|
/// Func for GetForward
|
|
/// </summary>
|
|
public Func<IGUIState, Vector3> forward;
|
|
/// <summary>
|
|
/// Func for GetUp
|
|
/// </summary>
|
|
public Func<IGUIState, Vector3> up;
|
|
/// <summary>
|
|
/// Func for GetRight
|
|
/// </summary>
|
|
public Func<IGUIState, Vector3> right;
|
|
/// <summary>
|
|
/// Func for GetUserData
|
|
/// </summary>
|
|
public Func<IGUIState, object> userData;
|
|
|
|
/// <summary>
|
|
/// Initializes and returns an instance of GenericDefaultControl
|
|
/// </summary>
|
|
/// <param name="name">The name of the generic default control.</param>
|
|
public GenericDefaultControl(string name) : base(name)
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the distance from the Scene view camera to the control.
|
|
/// </summary>
|
|
/// <param name="guiState">The current state of the custom editor.</param>
|
|
/// <param name="index">The Index</param>
|
|
/// <returns>The distance from the Scene view camera to the control.</returns>
|
|
protected override Vector3 GetPosition(IGUIState guiState, int index)
|
|
{
|
|
if (position != null)
|
|
return position(guiState);
|
|
|
|
return base.GetPosition(guiState, index);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the forward vector of the control.
|
|
/// </summary>
|
|
/// <param name="guiState">The current state of the custom editor.</param>
|
|
/// <param name="index">The Index</param>
|
|
/// <returns>Returns the generic control's forward vector.</returns>
|
|
protected override Vector3 GetForward(IGUIState guiState, int index)
|
|
{
|
|
if (forward != null)
|
|
return forward(guiState);
|
|
|
|
return base.GetForward(guiState, index);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the up vector of the control.
|
|
/// </summary>
|
|
/// <param name="guiState">The current state of the custom editor.</param>
|
|
/// <param name="index">The Index</param>
|
|
/// <returns>Returns the generic control's up vector.</returns>
|
|
protected override Vector3 GetUp(IGUIState guiState, int index)
|
|
{
|
|
if (up != null)
|
|
return up(guiState);
|
|
|
|
return base.GetUp(guiState, index);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the right vector of the control.
|
|
/// </summary>
|
|
/// <param name="guiState">The current state of the custom editor.</param>
|
|
/// <param name="index">The Index</param>
|
|
/// <returns>Returns the generic control's right vector.</returns>
|
|
protected override Vector3 GetRight(IGUIState guiState, int index)
|
|
{
|
|
if (right != null)
|
|
return right(guiState);
|
|
|
|
return base.GetRight(guiState, index);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the control's user data.
|
|
/// </summary>
|
|
/// <param name="guiState">The current state of the custom editor.</param>
|
|
/// <param name="index">The Index</param>
|
|
/// <returns>Returns the user data</returns>
|
|
protected override object GetUserData(IGUIState guiState, int index)
|
|
{
|
|
if (userData != null)
|
|
return userData(guiState);
|
|
|
|
return base.GetUserData(guiState, index);
|
|
}
|
|
}
|
|
}
|