static void CheckMissing(GameObject go, System.Type type)
{
bool isAnyChange = false;
var components = go.GetComponentsInChildren(type, true);
foreach (var component in components)
{
if (component == null)
{
Debug.Log("component missing ");
continue;
}
SerializedObject so = new SerializedObject(component);
bool isSoChange = false;
var sp = so.GetIterator();
while (sp.Next(true))
{
if (sp.propertyType == SerializedPropertyType.ObjectReference)
{
if (sp.objectReferenceValue == null
&& sp.objectReferenceInstanceIDValue != 0)
{
sp.objectReferenceInstanceIDValue = 0;
isSoChange = true;
Debug.Log("set missing reference to none: " +
go.name + "," +
component.gameObject + "." + component.name);
}
}
}
if (isSoChange)
{
so.ApplyModifiedProperties();
isAnyChange = true;
}
}
if (isAnyChange)
{
EditorUtility.SetDirty(go);
}
}
[工具]检测引用丢失(Missing)
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Update Log:2017.8.24: 初版 2017.10.8: 添加无法使用的解决办法 升了xcode9使...
- FBMemoryProfiler 基础教程 [FBMemoryProfiler](https://github.c...
- 1.问题 你知道delegate 如果是strong 修饰的话,就会引起循环引用。导致内存释放不掉,内存泄漏。你...