
这个教程介绍了如何获取和删除Unity编辑器中丢失的组件,这个功能只有Unity2019以上版本才有的新功能。
缺少什么组件?
如果删除了附加到GameObject(游戏对象)的脚本,将找不到要执行的脚本,并显示Missing(丢失)。

在此状态下,运行时会输出以下警告。

另外,带有Missing脚本的GameObject无法制作成Prefab(预制件),如果制作成Prefab后附加的脚本变成Missing,则无法进入Prefab模式。
获取/删除
在Unity中,作为一个编辑器功能,有一个获取缺失组件数量并删除它们的API。
- 获取缺失组件的数量:GameObjectUtility.GetMonoBehavioursWithMissingScriptCount()
- 删除缺失的组件:GameObjectUtility.RemoveMonoBehavioursWithMissingScript()
每个都按如下方式使用。
using UnityEditor;
using UnityEngine;
public class Example
{
[MenuItem("Example/Log Missing Script Count")]
private static void LogMissingScriptCount()
{
var gameObject = Selection.activeGameObject;
if (gameObject == null)
{
return;
}
var missingCount = GameObjectUtility.GetMonoBehavioursWithMissingScriptCount(gameObject);
Debug.Log(missingCount);
}
[MenuItem("Example/Remove Missing Scripts")]
private static void RemoveMissingScripts()
{
var gameObject = Selection.activeGameObject;
if (gameObject == null)
{
return;
}
var missingCount = GameObjectUtility.RemoveMonoBehavioursWithMissingScript(gameObject);
Debug.Log(missingCount);
}
}
…
以上是3D天堂关于如何获取和删除Unity软件中丢失组件的全部内容,如果你有任何反馈,请随时在本页面下方留言。