先修复一下,错误的场景 删除不必要的钓场资产 修复into场景 update:更新meta文件,修复报错 update:修复资源 修复第一章节建造 修复建造第三章 update:删除多余内容 update:更新README.md update:还原图标 update:更新README update:更新配置
68 lines
2.7 KiB
C#
68 lines
2.7 KiB
C#
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace Coffee.UISoftMask
|
|
{
|
|
[CustomEditor(typeof(MaskingShape), true)]
|
|
[CanEditMultipleObjects]
|
|
public class MaskingShapeEditor : Editor
|
|
{
|
|
private SerializedProperty _alphaHitTest;
|
|
private SerializedProperty _antiAliasingThreshold;
|
|
private SerializedProperty _maskingMethod;
|
|
private SerializedProperty _showMaskGraphic;
|
|
private SerializedProperty _softnessRange;
|
|
private SerializedProperty _raycastMethod;
|
|
|
|
protected void OnEnable()
|
|
{
|
|
_maskingMethod = serializedObject.FindProperty("m_MaskingMethod");
|
|
_showMaskGraphic = serializedObject.FindProperty("m_ShowMaskGraphic");
|
|
_alphaHitTest = serializedObject.FindProperty("m_AlphaHitTest");
|
|
_antiAliasingThreshold = serializedObject.FindProperty("m_AntiAliasingThreshold");
|
|
_softnessRange = serializedObject.FindProperty("m_SoftnessRange");
|
|
_raycastMethod = serializedObject.FindProperty("m_RaycastMethod");
|
|
}
|
|
|
|
public override void OnInspectorGUI()
|
|
{
|
|
var current = target as MaskingShape;
|
|
if (!current) return;
|
|
|
|
var useStencil = UISoftMaskProjectSettings.useStencilOutsideScreen;
|
|
Utils.GetStencilBits(current.transform, false, useStencil, out var mask, out var _);
|
|
var maskingMode = mask is SoftMask softMask ? softMask.GetActualMaskingMode() : SoftMask.MaskingMode.Normal;
|
|
EditorGUI.BeginDisabledGroup(true);
|
|
EditorGUILayout.EnumPopup("Masking Mode", maskingMode);
|
|
EditorGUI.EndDisabledGroup();
|
|
|
|
EditorGUILayout.PropertyField(_maskingMethod);
|
|
|
|
switch (maskingMode)
|
|
{
|
|
case SoftMask.MaskingMode.SoftMasking:
|
|
EditorGUILayout.PropertyField(_showMaskGraphic);
|
|
EditorGUILayout.PropertyField(_alphaHitTest);
|
|
EditorGUILayout.PropertyField(_softnessRange);
|
|
break;
|
|
case SoftMask.MaskingMode.AntiAliasing:
|
|
EditorGUILayout.PropertyField(_alphaHitTest);
|
|
EditorGUILayout.PropertyField(_antiAliasingThreshold);
|
|
break;
|
|
case SoftMask.MaskingMode.Normal:
|
|
EditorGUILayout.PropertyField(_showMaskGraphic);
|
|
break;
|
|
}
|
|
|
|
EditorGUILayout.PropertyField(_raycastMethod);
|
|
serializedObject.ApplyModifiedProperties();
|
|
|
|
// Draw alpha hit test warning
|
|
if (current.alphaHitTest)
|
|
{
|
|
SoftMaskEditor.DrawAlphaHitTestWarning(current.graphic);
|
|
}
|
|
}
|
|
}
|
|
}
|