标签:DontSave 销毁 对象 GameObject DontSaveInEditor 用法 Unity HideFlags
HideFlags
HideFlags枚举
属于Object类的属性;对应一个枚举类;
用来控制对象的销毁,保存和是否在inspector界面中可见;
public enum HideFlags
{
//默认
None = 0,
//不在层级界面显示
HideInHierarchy = 1,
//inspector界面不可见
HideInInspector = 2,
//编辑的时候不会被保存
DontSaveInEditor = 4,
//inspector不可以编辑
NotEditable = 8,
//构建时不会被保存
DontSaveInBuild = 16,
//不能通过Resources.UnloadUnusedAssets被卸载
DontUnloadUnusedAsset = 32,
//几个拼接
DontSave = DontUnloadUnusedAsset | DontSaveInBuild | DontSaveInEditor,
//几个拼接
HideAndDontSave = DontSave | NotEditable | HideInHierarchy,
}
测试代码:
public class HideFlagTest : MonoBehaviour
{
private void Start()
{
gameObject.hideFlags = HideFlags.HideInInspector;
transform.hideFlags = HideFlags.NotEditable;
GetComponent<BoxCollider>().hideFlags = HideFlags.DontSaveInEditor;
}
}
DontSaveInEditor坑
这个枚举个官方说是在编辑模式的时候不会被保存,但是我测试会没有效果依旧会记录;
另外这里有个很大的坑,使用这个之后物体在场景销毁时候不会跟着销毁,需要使用DestroyImmediate手动销毁;
DontSave解释
保留对象到新场景;
功能说明:此属性的功能是用来设置是否将Object对象保留到新的场景(Scene)中,如果使用HideFlags.DontSave,则Object对象将在新场景中被保留下来,对其使用说明如下:
(1)如果GameObject对象被HideFlags.DontSave标识,则在新scene中GameObject的所有组件将被保留下来,但其子类GameObject对象不会被保留到新scene中;
(2)不可以对GameObject对象的某个组件如Transform进行HideFlags.DontSave标识,否则无效;
(3)即使程序已经退出,被HideFlags.DontSave标识的对象会一直存在于程序中,造成内存泄漏,对HideFlags.DontSave标识的对象在不需要或程序退出时需要使用DestroyImmediate手动销毁;
标签:DontSave,销毁,对象,GameObject,DontSaveInEditor,用法,Unity,HideFlags 来源: https://blog.csdn.net/m0_54870319/article/details/120639132
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。