This commit is contained in:
SoulliesOfficial
2026-06-09 07:00:19 -04:00
parent 5fc1392747
commit e97646ae48
6 changed files with 111 additions and 60 deletions

View File

@@ -1757,10 +1757,10 @@ MonoBehaviour:
m_addressable:
m_atlas:
m_fileSize: 28008
m_assetChangeTS: 1780691227
m_fileInfoReadTS: 1780691353
m_fileWriteTS: 1780691227
m_cachefileWriteTS: 1780691227
m_assetChangeTS: 1780992290
m_fileInfoReadTS: 1780992361
m_fileWriteTS: 1780992290
m_cachefileWriteTS: 1780992290
refreshStamp: 3
UseGUIDsList:
- guid: cd62869af1bc6534d83427c72b66bb9f
@@ -1901,10 +1901,10 @@ MonoBehaviour:
m_addressable:
m_atlas:
m_fileSize: 2570
m_assetChangeTS: 1780691227
m_fileInfoReadTS: 1780691353
m_fileWriteTS: 1780691227
m_cachefileWriteTS: 1780691227
m_assetChangeTS: 1780992290
m_fileInfoReadTS: 1780992361
m_fileWriteTS: 1780992290
m_cachefileWriteTS: 1780992290
refreshStamp: 3
UseGUIDsList:
- guid: 0000000000000000f000000000000000
@@ -14732,10 +14732,10 @@ MonoBehaviour:
m_addressable:
m_atlas:
m_fileSize: 4590
m_assetChangeTS: 1780901815
m_fileInfoReadTS: 1780901823
m_fileWriteTS: 1780901815
m_cachefileWriteTS: 1780901815
m_assetChangeTS: 1780992288
m_fileInfoReadTS: 1780992361
m_fileWriteTS: 1780992288
m_cachefileWriteTS: 1780992288
refreshStamp: 3
UseGUIDsList:
- guid: bf2edee5c58d82540a51f03df9d42094
@@ -33686,10 +33686,10 @@ MonoBehaviour:
m_addressable:
m_atlas:
m_fileSize: 4587
m_assetChangeTS: 1780901815
m_fileInfoReadTS: 1780901823
m_fileWriteTS: 1780901815
m_cachefileWriteTS: 1780901815
m_assetChangeTS: 1780992289
m_fileInfoReadTS: 1780992361
m_fileWriteTS: 1780992288
m_cachefileWriteTS: 1780992288
refreshStamp: 3
UseGUIDsList:
- guid: bf2edee5c58d82540a51f03df9d42094
@@ -58554,15 +58554,15 @@ MonoBehaviour:
UseGUIDsList: []
- guid: 836ab6bd424664b3cb74dd0fcb08c039
type: 2
m_fileInfoHash: 7913.cs
m_fileInfoHash: 9371.cs
m_assetbundle:
m_addressable:
m_atlas:
m_fileSize: 7913
m_assetChangeTS: 1780681478
m_fileInfoReadTS: 1780681494
m_fileWriteTS: 1780681303
m_cachefileWriteTS: 1780681303
m_fileSize: 9371
m_assetChangeTS: 1780992196
m_fileInfoReadTS: 1780992220
m_fileWriteTS: 1780992182
m_cachefileWriteTS: 1780992182
refreshStamp: 3
UseGUIDsList: []
- guid: 836aceb6bf15047ffb768a3f1b73f56a
@@ -123480,15 +123480,15 @@ MonoBehaviour:
UseGUIDsList: []
- guid: a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2
type: 2
m_fileInfoHash: 6834.cs
m_fileInfoHash: 7182.cs
m_assetbundle:
m_addressable:
m_atlas:
m_fileSize: 6834
m_assetChangeTS: 1780681478
m_fileInfoReadTS: 1780681494
m_fileWriteTS: 1780681293
m_cachefileWriteTS: 1780681293
m_fileSize: 7182
m_assetChangeTS: 1780992196
m_fileInfoReadTS: 1780992220
m_fileWriteTS: 1780992157
m_cachefileWriteTS: 1780992157
refreshStamp: 3
UseGUIDsList: []
- guid: a7c864691dec8994c87c559c4ee4ec07
@@ -131044,10 +131044,10 @@ MonoBehaviour:
m_addressable:
m_atlas:
m_fileSize: 23881
m_assetChangeTS: 1780691227
m_fileInfoReadTS: 1780691353
m_fileWriteTS: 1780691227
m_cachefileWriteTS: 1780691227
m_assetChangeTS: 1780992290
m_fileInfoReadTS: 1780992361
m_fileWriteTS: 1780992290
m_cachefileWriteTS: 1780992290
refreshStamp: 3
UseGUIDsList:
- guid: 2ec995e51a6e251468d2a3fd8a686257
@@ -186342,10 +186342,10 @@ MonoBehaviour:
m_addressable:
m_atlas:
m_fileSize: 4597
m_assetChangeTS: 1780901815
m_fileInfoReadTS: 1780901823
m_fileWriteTS: 1780901815
m_cachefileWriteTS: 1780901815
m_assetChangeTS: 1780992289
m_fileInfoReadTS: 1780992361
m_fileWriteTS: 1780992289
m_cachefileWriteTS: 1780992289
refreshStamp: 3
UseGUIDsList:
- guid: bf2edee5c58d82540a51f03df9d42094
@@ -191345,15 +191345,15 @@ MonoBehaviour:
UseGUIDsList: []
- guid: dbe43137b87e24779be3757535fa9984
type: 2
m_fileInfoHash: 2145.cs
m_fileInfoHash: 2264.cs
m_assetbundle:
m_addressable:
m_atlas:
m_fileSize: 2145
m_assetChangeTS: 1780681478
m_fileInfoReadTS: 1780681494
m_fileWriteTS: 1780681295
m_cachefileWriteTS: 1780681295
m_fileSize: 2264
m_assetChangeTS: 1780992196
m_fileInfoReadTS: 1780992220
m_fileWriteTS: 1780992152
m_cachefileWriteTS: 1780992152
refreshStamp: 3
UseGUIDsList: []
- guid: db15c78579dee4a4db85f392634c8ecc
@@ -228726,15 +228726,15 @@ MonoBehaviour:
UseGUIDsList: []
- guid: 2e498d1c8094910479dc3e1b768306a4
type: 5
m_fileInfoHash: 598748.asset
m_fileInfoHash: 58274.asset
m_assetbundle:
m_addressable:
m_atlas:
m_fileSize: 598748
m_assetChangeTS: 1780901892
m_fileInfoReadTS: 1780901892
m_fileWriteTS: 1780901892
m_cachefileWriteTS: 1780901892
m_fileSize: 58274
m_assetChangeTS: 1780992290
m_fileInfoReadTS: 1780992361
m_fileWriteTS: 1780992290
m_cachefileWriteTS: 1780992290
refreshStamp: 3
UseGUIDsList:
- guid: fe393ace9b354375a9cb14cdbbc28be4
@@ -250212,15 +250212,15 @@ MonoBehaviour:
UseGUIDsList: []
- guid: 9f5915d0f462947f5bec62ea7e118953
type: 2
m_fileInfoHash: 6542.cs
m_fileInfoHash: 7168.cs
m_assetbundle:
m_addressable:
m_atlas:
m_fileSize: 6542
m_assetChangeTS: 1780681478
m_fileInfoReadTS: 1780681494
m_fileWriteTS: 1780681300
m_cachefileWriteTS: 1780681300
m_fileSize: 7168
m_assetChangeTS: 1780992196
m_fileInfoReadTS: 1780992220
m_fileWriteTS: 1780992163
m_cachefileWriteTS: 1780992163
refreshStamp: 3
UseGUIDsList: []
- guid: 9f59acaa662cd914b90c445b845103c5
@@ -255827,15 +255827,15 @@ MonoBehaviour:
UseGUIDsList: []
- guid: ff19cfc4963444c2e8aa109adef5c68d
type: 2
m_fileInfoHash: 3831.cs
m_fileInfoHash: 4318.cs
m_assetbundle:
m_addressable:
m_atlas:
m_fileSize: 3831
m_assetChangeTS: 1780679004
m_fileInfoReadTS: 1780679020
m_fileWriteTS: 1780678988
m_cachefileWriteTS: 1780678988
m_fileSize: 4318
m_assetChangeTS: 1780992196
m_fileInfoReadTS: 1780992220
m_fileWriteTS: 1780992146
m_cachefileWriteTS: 1780992146
refreshStamp: 3
UseGUIDsList: []
- guid: ff5907e1c7f949efb4399632c6804206

View File

@@ -29,6 +29,16 @@ namespace Ichni.Editor
public override void Initialize(IBaseElement baseElement, string title, string parameterName)
{
// [对象池安全] 重置可交互状态
if (sliderR != null) sliderR.interactable = true;
if (sliderG != null) sliderG.interactable = true;
if (sliderB != null) sliderB.interactable = true;
if (sliderA != null) sliderA.interactable = true;
if (inputFieldBaseR != null) inputFieldBaseR.interactable = true;
if (inputFieldBaseG != null) inputFieldBaseG.interactable = true;
if (inputFieldBaseB != null) inputFieldBaseB.interactable = true;
if (inputFieldBaseA != null) inputFieldBaseA.interactable = true;
base.Initialize(baseElement, title, parameterName);
Color baseColor = (Color)connectedBaseElement.GetType().GetField(parameterName).GetValue(connectedBaseElement);

View File

@@ -31,10 +31,19 @@ namespace Ichni.Editor
public virtual void Initialize(IBaseElement baseElement, string title, string parameterName)
{
if (canvasGroup == null) canvasGroup = gameObject.AddComponent<CanvasGroup>();
// [对象池安全] 重置 CanvasGroup 状态,防止上次 EnabledIf 设置的禁用状态泄漏到新的元素实例
canvasGroup.interactable = true;
canvasGroup.alpha = 1f;
canvasGroup.blocksRaycasts = true;
this.connectedBaseElement = baseElement;
this.parameterName = parameterName;
if (title != string.Empty)
{
// [对象池安全] 确保标题 GameObject 处于激活状态,
// 防止上次以空标题使用时 SetActive(false) 的状态泄漏
this.title.gameObject.SetActive(true);
this.title.text = title;
}
else

View File

@@ -29,6 +29,29 @@ namespace Ichni.Editor
public void Initialize(IBaseElement baseElement, string title,
string emissionEnabledName, string colorParameterName, string emissionIntensityName)
{
// [对象池安全] 重置可交互状态
if (toggleEnableEmission != null) toggleEnableEmission.interactable = true;
if (sliderR != null) sliderR.interactable = true;
if (sliderG != null) sliderG.interactable = true;
if (sliderB != null) sliderB.interactable = true;
if (inputFieldEmissionR != null) inputFieldEmissionR.interactable = true;
if (inputFieldEmissionG != null) inputFieldEmissionG.interactable = true;
if (inputFieldEmissionB != null) inputFieldEmissionB.interactable = true;
if (inputFieldEmissionI != null) inputFieldEmissionI.interactable = true;
// [对象池安全] 清除上次使用残留的监听器
toggleEnableEmission.onValueChanged.RemoveAllListeners();
sliderR.onValueChanged.RemoveListener(SliderChange);
sliderG.onValueChanged.RemoveListener(SliderChange);
sliderB.onValueChanged.RemoveListener(SliderChange);
inputFieldEmissionR.onEndEdit.RemoveAllListeners();
inputFieldEmissionG.onEndEdit.RemoveAllListeners();
inputFieldEmissionB.onEndEdit.RemoveAllListeners();
inputFieldEmissionI.onEndEdit.RemoveAllListeners();
// [对象池安全] 确保 Toggle GameObject 处于激活状态(可能上次被隐藏过)
toggleEnableEmission.gameObject.SetActive(true);
base.Initialize(baseElement, title, colorParameterName);
canDisableEmission = emissionEnabledName != "NULL"; //如果对应的EmissionColor强制开启那么其enabledName为"NULL"不需要显示Toggle

View File

@@ -28,6 +28,12 @@ namespace Ichni.Editor
public void Initialize(IBaseElement baseElement, string title, string parameterName,
float min, float max, bool wholeNumbers = false)
{
// [对象池安全] 重置可交互状态
if (slider != null) slider.interactable = true;
if (valueInputField != null) valueInputField.interactable = true;
if (minInputField != null) minInputField.interactable = true;
if (maxInputField != null) maxInputField.interactable = true;
slider.minValue = min;
slider.maxValue = max;
slider.wholeNumbers = wholeNumbers;

View File

@@ -15,6 +15,9 @@ namespace Ichni.Editor
public override void Initialize(IBaseElement baseElement, string title, string parameterName)
{
// [对象池安全] 重置可交互状态
if (toggle != null) toggle.interactable = true;
// [对象池安全] 精准解绑业务代理,不动预制体原生的展示事件!
toggle.onValueChanged.RemoveListener(OnToggleValueChanged);
customAction = null;