arenos-nexus/Arenos Nexus/Library/PackageCache/com.unity.2d.animation@34e0443c58ed/IK/Runtime/IKManager2DEditorData.cs
Daniel 2e704cae70 init
Init Commit Unity
2025-09-25 22:01:28 +02:00

65 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
namespace UnityEngine.U2D.IK
{
public partial class IKManager2D : MonoBehaviour
{
#if UNITY_EDITOR
[Serializable]
internal struct SolverEditorData
{
public Color color;
public bool showGizmo;
public static SolverEditorData defaultValue => new SolverEditorData() { color = Color.green, showGizmo = true };
}
[SerializeField]
private List<SolverEditorData> m_SolverEditorData = new List<SolverEditorData>();
void OnEditorDataValidate()
{
int solverDataLength = m_SolverEditorData.Count;
for (int i = solverDataLength; i < m_Solvers.Count; ++i)
{
AddSolverEditorData();
}
}
internal SolverEditorData GetSolverEditorData(Solver2D solver)
{
int index = m_Solvers.FindIndex(x => x == solver);
if (index >= 0)
{
if (index >= m_SolverEditorData.Count)
OnEditorDataValidate();
return m_SolverEditorData[index];
}
return SolverEditorData.defaultValue;
}
void AddSolverEditorData()
{
m_SolverEditorData.Add(new SolverEditorData()
{
color = Color.green,
showGizmo = true
});
}
void RemoveSolverEditorData(Solver2D solver)
{
int index = m_Solvers.FindIndex(x => x == solver);
if (index >= 0)
m_SolverEditorData.RemoveAt(index);
}
#else
void OnEditorDataValidate() { }
void AddSolverEditorData() { }
void RemoveSolverEditorData(Solver2D solver) { }
#endif
}
}