Unity预设保存检测
直接上代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEditor.Experimental.SceneManagement;
public class PrefabCheck
{[InitializeOnLoadMethod]static void RegisterPrefabStateEvents(){PrefabStage.prefabSaved += OnPrefabStageSaved;}static void OnPrefabStageSaved(GameObject obj){Debug.Log("save obj " + obj.name);MeshCollider[] meshColliders = obj.GetComponentsInChildren<MeshCollider>(true);foreach(MeshCollider mc in meshColliders){Debug.LogError($"不许使用MeshCollider 节点name:{mc.gameObject.name}");GameObject.DestroyImmediate(mc);}}
}
效果:
在预设添加MeshCollider 点击保存的时候 提示同时删掉添加的组件 用来做一些规范检测
测试添加组件
保存预设后