131 lines
3.6 KiB
C#
131 lines
3.6 KiB
C#
|
|
using System;
|
||
|
|
using UnityEngine;
|
||
|
|
|
||
|
|
namespace UnityEditor
|
||
|
|
{
|
||
|
|
/// <summary>Abstract class that is used by systems to encapsulate Sprite data representation. Currently this is used by Sprite Editor Window.</summary>
|
||
|
|
[Serializable]
|
||
|
|
public class SpriteRect
|
||
|
|
{
|
||
|
|
[SerializeField]
|
||
|
|
string m_Name;
|
||
|
|
|
||
|
|
[SerializeField]
|
||
|
|
string m_OriginalName;
|
||
|
|
|
||
|
|
[SerializeField]
|
||
|
|
Vector2 m_Pivot;
|
||
|
|
|
||
|
|
[SerializeField]
|
||
|
|
SpriteAlignment m_Alignment;
|
||
|
|
|
||
|
|
[SerializeField]
|
||
|
|
Vector4 m_Border;
|
||
|
|
|
||
|
|
[SerializeField]
|
||
|
|
string m_CustomData;
|
||
|
|
|
||
|
|
[SerializeField]
|
||
|
|
Rect m_Rect;
|
||
|
|
|
||
|
|
[SerializeField]
|
||
|
|
string m_SpriteID;
|
||
|
|
|
||
|
|
GUID m_GUID;
|
||
|
|
|
||
|
|
/// <summary>The name of the Sprite data.</summary>
|
||
|
|
public string name
|
||
|
|
{
|
||
|
|
get { return m_Name; }
|
||
|
|
set { m_Name = value; }
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>Vector2value representing the pivot for the Sprite data.</summary>
|
||
|
|
public Vector2 pivot
|
||
|
|
{
|
||
|
|
get { return m_Pivot; }
|
||
|
|
set { m_Pivot = value; }
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>SpriteAlignment that represents the pivot value for the Sprite data.</summary>
|
||
|
|
public SpriteAlignment alignment
|
||
|
|
{
|
||
|
|
get { return m_Alignment; }
|
||
|
|
set { m_Alignment = value; }
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>Returns a Vector4 that represents the border of the Sprite data.</summary>
|
||
|
|
public Vector4 border
|
||
|
|
{
|
||
|
|
get { return m_Border; }
|
||
|
|
set { m_Border = value; }
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>Gets and sets the custom sprite data.</summary>
|
||
|
|
public string customData
|
||
|
|
{
|
||
|
|
get { return m_CustomData; }
|
||
|
|
set { m_CustomData = value; }
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>Rect value that represents the position and size of the Sprite data.</summary>
|
||
|
|
public Rect rect
|
||
|
|
{
|
||
|
|
get { return m_Rect; }
|
||
|
|
set { m_Rect = value; }
|
||
|
|
}
|
||
|
|
|
||
|
|
internal string originalName
|
||
|
|
{
|
||
|
|
get
|
||
|
|
{
|
||
|
|
if (m_OriginalName == null)
|
||
|
|
{
|
||
|
|
m_OriginalName = name;
|
||
|
|
}
|
||
|
|
return m_OriginalName;
|
||
|
|
}
|
||
|
|
|
||
|
|
set { m_OriginalName = value; }
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>GUID to uniquely identify the SpriteRect data. This will be populated to Sprite.spriteID to identify the SpriteRect used to generate the Sprite.</summary>
|
||
|
|
public GUID spriteID
|
||
|
|
{
|
||
|
|
get
|
||
|
|
{
|
||
|
|
ValidateGUID();
|
||
|
|
return m_GUID;
|
||
|
|
}
|
||
|
|
set
|
||
|
|
{
|
||
|
|
m_GUID = value;
|
||
|
|
m_SpriteID = m_GUID.ToString();
|
||
|
|
ValidateGUID();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private void ValidateGUID()
|
||
|
|
{
|
||
|
|
if (m_GUID.Empty())
|
||
|
|
{
|
||
|
|
// We can't use ISerializationCallbackReceiver because we will hit into Script serialization errors
|
||
|
|
m_GUID = new GUID(m_SpriteID);
|
||
|
|
if (m_GUID.Empty())
|
||
|
|
{
|
||
|
|
m_GUID = GUID.Generate();
|
||
|
|
m_SpriteID = m_GUID.ToString();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>Helper method to get SpriteRect.spriteID from a SerializedProperty.</summary>
|
||
|
|
/// <param name="sp">The SerializedProperty to acquire from.</param>
|
||
|
|
/// <returns>GUID for the SpriteRect.</returns>
|
||
|
|
public static GUID GetSpriteIDFromSerializedProperty(SerializedProperty sp)
|
||
|
|
{
|
||
|
|
return new GUID(sp.FindPropertyRelative("m_SpriteID").stringValue);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|