using System.Collections; using System.Collections.Generic; using UnityEngine; using Sirenix.OdinInspector; #if UNITY_EDITOR using UnityEditor; #endif /// /// 存储场景中物件渲染所需的基本数据,每个场景笔刷都会绑定一份该对象,可以用于在场景中标识某个笔刷刷上的游戏物体 /// public class SceneObjectRenderInfo : ScriptableObject { [ReadOnly] [LabelText("不透明材质")] public List opaqueMaterial = new(); [ReadOnly] [LabelText("半透明材质")] public List transparentMaterial = new(); [ReadOnly] [LabelText("网格")] public List meshes = new(); #if UNITY_EDITOR public void RecordUndo(string undoName) { foreach (var mat in opaqueMaterial) { Undo.RecordObject(mat, undoName); } foreach (var mat in transparentMaterial) { Undo.RecordObject(mat, undoName); } foreach (var mesh in meshes) { Undo.RecordObject(mesh, undoName); } } #endif }