48 lines
1.7 KiB
C#
48 lines
1.7 KiB
C#
#if UNITY_EDITOR
|
|
using UnityEngine;
|
|
using UnityEditor;
|
|
using System.Linq;
|
|
|
|
namespace VLB
|
|
{
|
|
[CustomEditor(typeof(VolumetricLightBeamHD2D))]
|
|
[CanEditMultipleObjects]
|
|
public class Editor_VolumetricLightBeamHD2D : Editor_VolumetricLightBeamHD
|
|
{
|
|
SerializedProperty m_SortingLayerID = null, m_SortingOrder = null;
|
|
string[] m_SortingLayerNames;
|
|
|
|
TargetList<VolumetricLightBeamHD2D> m_Targets;
|
|
|
|
protected override void OnEnable()
|
|
{
|
|
base.OnEnable();
|
|
m_Targets = new TargetList<VolumetricLightBeamHD2D>(targets);
|
|
m_SortingLayerNames = SortingLayer.layers.Select(l => l.name).ToArray();
|
|
}
|
|
|
|
protected override void DrawProperties(bool hasLightSpot)
|
|
{
|
|
base.DrawProperties(hasLightSpot);
|
|
|
|
if (FoldableHeader.Begin(this, EditorStrings.Beam.Header2D))
|
|
{
|
|
DrawSortingLayerAndOrder();
|
|
}
|
|
FoldableHeader.End();
|
|
}
|
|
|
|
void DrawSortingLayerAndOrder()
|
|
{
|
|
var updatedProperties = SortingLayerAndOrderDrawer.Draw(m_SortingLayerID, m_SortingOrder);
|
|
|
|
if (updatedProperties.HasFlag(SortingLayerAndOrderDrawer.UpdatedProperties.SortingLayerID))
|
|
m_Targets.RecordUndoAction("Edit Sorting Layer", (VolumetricLightBeamHD2D beam) => beam.sortingLayerID = m_SortingLayerID.intValue); // call setters
|
|
|
|
if (updatedProperties.HasFlag(SortingLayerAndOrderDrawer.UpdatedProperties.SortingOrder))
|
|
m_Targets.RecordUndoAction("Edit Sorting Order", (VolumetricLightBeamHD2D beam) => beam.sortingOrder = m_SortingOrder.intValue); // call setters
|
|
}
|
|
}
|
|
}
|
|
#endif
|