关键点主要是对场景中Prefab得移除组件得处理,以及依赖Animation组件得删除
1. 通过 PrefabUtility.GetCorrespondingObjectFromSource 取得预制体对象
2. 通过 AssetDatabase.GetAssetPath 取得预制体路径
3. 加载预制体,DestroyImmediate删除预制体组件,并保存
4. 有些预制体并没有空Animation组件,但是引用预制体,并给预制体增加空Animation组件
5. 有些会用到 DelayAnimationPlay 组件,以来于Animation组件,但是删除Animation组件会失败,优先删除DelayAnimationPlay 组件
using System.Collections.Generic;
using System.Linq;
using TLStudio;
using UnityEditor;
using UnityEngine;
using UnityEngine.SceneManagement;
namespace ProjectS.Editor
{
public class CheckSceneNullAnimation : EditorWindow
{
public static Dictionary<string, int> info = new Dictionary<string, int>();
public bool openState = false;
//string bugReporterName = "";
//string description = "";
GameObject buggyGameObject;
CheckSceneNullAnimation()