Unity 6.3
0 онлайн 1 гость 3 в системе
Вход

SerializationUtility.ClearAllManagedReferencesWithMissingTypes

Declaration

public static bool ClearAllManagedReferencesWithMissingTypes(Object obj);

Описание

Удаляет все управляемые ссылки, у которых отсутствует тип.

Этот метод удаляет все серийные данные, связанные с управляемыми полями ссылок с отсутствующими типами.

Этот API удобен для того, чтобы убрать предупреждения об отсутствующем типе при загрузке ассета — например, если есть ссылка на класс из пакета, который больше не используется.

Этот метод возвращает false, если объект не имел ссылок с отсутствующими типами.

Дополнительные ресурсы: ClearManagedReferenceWithMissingType, SerializeReference.

using System.Collections.Generic;
using System.Text;
using UnityEngine;
using UnityEditor;

public class ClearMissingTypeExample { [MenuItem("Example/Clear ScriptableObject References with Missing Types")] static public void ClearMissingTypesOnScriptableObjects() { var report = new StringBuilder();

var guids = AssetDatabase.FindAssets("t:ScriptableObject", new[] {"Assets"}); foreach (string guid in guids) { var path = AssetDatabase.GUIDToAssetPath(guid); Object obj = AssetDatabase.LoadMainAssetAtPath(path); if (obj != null) { if (SerializationUtility.ClearAllManagedReferencesWithMissingTypes(obj)) { report.Append("Cleared missing types from ").Append(path).AppendLine(); } else { report.Append("No missing types to clear on ").Append(path).AppendLine(); } } }

Debug.Log(report.ToString()); } }