3dd611423e
- Add this == null guard in Initialize() to prevent NullReferenceException after MonoBehaviour destruction - Add this == null guard in Release() for consistent safety across lifecycle methods - Prevent crashes when UI views are accessed during or after object destruction Исправлена безопасность при работе с UIView: - Добавлена проверка this == null в Initialize() для предотвращения NullReferenceException после уничтожения MonoBehaviour - Добавлена проверка this == null в Release() для согласованной безопасности во всех методах жизненного цикла - Предотвращены краши при обращении к UI видам во время или после разрушения объектов
42 lines
758 B
C#
42 lines
758 B
C#
using UnityEngine;
|
|
|
|
namespace QuizPleaseTest.Common.UI
|
|
{
|
|
public class UIView : MonoBehaviour
|
|
{
|
|
private bool _isInitialized;
|
|
|
|
public virtual void Initialize()
|
|
{
|
|
if (this == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (_isInitialized)
|
|
{
|
|
return;
|
|
}
|
|
|
|
_isInitialized = true;
|
|
gameObject.SetActive(true);
|
|
}
|
|
|
|
public virtual void Release()
|
|
{
|
|
if (this == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (!_isInitialized)
|
|
{
|
|
return;
|
|
}
|
|
|
|
_isInitialized = false;
|
|
gameObject.SetActive(false);
|
|
}
|
|
}
|
|
}
|