Nested Prefab Mode 嵌套预制体 保存问题 Dirty
Unity2018.3 Nested Prefab Mode 嵌套预制体
Unity2018.3开始,新增了一个Prefab Mode,俗称嵌套预制体,在Prefab里套Prefab。实际应用中多少会有些坑。
- 资源打包,Assetbundle一直都有依赖的问题。所以嵌套的Prefab理所当然要预加载。
- 脚本修改Prefab,很多生产环境下都会有代码处理Prefab的情况,而这次新增的Prefab Mode,与之前的编辑模式是不同的,所以升级后需做兼容性修改。
- 进入Prefab Mode就是双击Assets里的Prefab文件。
- 详细教程 https://unity.com/prefabs
关注点 Prefab Mode
| Scene Mode | Prefab Mode | |
|---|---|---|
| Hierarchy 里操作的对象本质 | Prefab Instance 实例 | Assets里的UnityEngine.Object文件 |
| Apply 保存过程 | 从Instance写入到Asset里的Prefab文件 | 直接操作Assets里的Prefab文件 |
| SetDirty 脚本修改Prefab上的对象 | EditorUtility.SetDirty(Object) | 暂无(目前U3D问答上很多人在问) |
| 设置场景Dirty | EditorSceneManager.GetActiveScene() | PrefabStageUtility.GetCurrentPrefabStage().scene) |
| Apply时的回调 | PrefabUtility.prefabInstanceUpdated | PrefabStage.prefabSaving |
实际使用总结
- 官网上宣称的Prefab Mode,其实在代码里的引用叫做Prefab Stage
- 通过脚本来操作Prefab的时候,需要注意PrefabStageUtility.GetCurrentPrefabStage()优先判断是否在Prefab Mode
- Prefab Mode下,如果通过代码脚本修改对象属性,一定要注意EditorSceneManager.MarkSceneDirty的调用。
- 注意Scene View右上角的Auto Save按钮
参考
Nested Prefab Mode 嵌套预制体 保存问题 Dirty的更多相关文章
- 关于Unity中stretch的分开使用、预制体、Scroll View的UI节点
一.上次讲的菊花的四个花瓣,只讲了四个花瓣和在一起的时候的作用,现在是分开的菊花的四个花瓣的作用 1.创建一个Canvas2.对Canvas进行初始化3.创建一个Image的UI节点作为Canvas的 ...
- Prafab Varient 预制体变体
预制体与类的类比思维: 预制体相当于一个类,当它应用到场景当中,就是一个实例. 类的继承特性也充分运用到预制体中,即预制体变体. 相似预制体的需求场景: 例子1:多个游戏的窗口 ...
- Layabox 预制体prefab使用
//腊鸭官方api不详细系列之ui预制体 // 创建预制体文件,随便拖一个场景中的预制体到 Assets的任意文件夹中,要规范的话则放在Prefab中 // 上一步操作完后就可以在文件夹中看到.pre ...
- 预制体,Mask组件
1.预制体制作和使用 a.制作预制体,将制作好的元素插入到在文件夹下形成一个预制体 b.将预制体在所调用的脚本文件中进行声明,并且在界面里进行拖入保存 c.使用的时候利用cc.instantiate进 ...
- 代码生成器插件与Creator预制体文件解析
前言 之前写过一篇自动生成脚本的工具,但是我给它起名叫半自动代码生成器.之所以称之为半自动,因为我觉得全自动代码生成器应该做到两点:代码生成+自动绑定.之前的工具只做了代码生成,并没有做自动绑定,所以 ...
- Unity3d修炼之路:载入一个预制体,然后为该对象加入组件,然后查找对象,得到组件。
#pragma strict function Awake(){ //载入一个预制体 资源必须在 Resources目录下 Resources.LoadLoad(); //载入后 必须演示样例化 Ga ...
- Unity3D学习笔记(四):物理系统碰撞和预制体
Rigidbody(刚体组件):加了此组件游戏物体就变成刚体了 ----Mass(质量,单位kg):重力G = 质量m * 重力加速度g(g=9.81 m/s^2) --------冲量守恒定理 动量 ...
- PlayMaker 做成预制体
把包含PlayMaker状态机的游戏物体做成预制体后,再编辑PlayMaker状态机的时候,会有两个选项 * Edit Prefab :编辑完成后预制体的PlayMaker状态机也会改变: * Edi ...
- 修改预制体效果无变化(unity&&CocosCreator)
推荐阅读: 我的CSDN 我的博客园 QQ群:704621321 1.问题 修改预制体后保存,预览游戏预制体未发生变化(和改之前效果一样) 2.回忆 以前做unity的时 ...
随机推荐
- script全局变量
javascript全局变量的生命周期是:直到页面关闭才失效.否则一直有用. 方式1 1 2 var test; var test = 5; 需注意的是该句不能包含在function内,否则是局部变量 ...
- 【转载】 C#中数组、ArrayList和List三者的区别
原文地址:http://blog.csdn.net/zhang_xinxiu/article/details/8657431 在C#中数组,ArrayList,List都能够存储一组对象,那么这三者到 ...
- Java之IO(十四)IO包中其它类
转载请注明出处:http://www.cnblogs.com/lighten/p/7267553.html 1.前言 此章介绍IO包中剩余未介绍的几个流和工具类,包括LineNumberReader. ...
- C# 通过IEnumberable接口和IEnumerator接口实现泛型和非泛型自定义集合类型foreach功能
IEnumerator和IEnumerable的作用 其实IEnumerator和IEnumerable的作用很简单,就是让除数组和集合之外的类型也能支持foreach循环,至于foreach循环,如 ...
- 【转】Ext JS 集合1713个icon图标的CSS文件
原文:http://extjs.org.cn/node/715 由于最近在研究Extjs4.1.1,没想到Extjs没有自带的iconCls所使用的图标样式css,就是用那个写那个的,纠结了半天,网上 ...
- win10下用Linux搭建python&nodejs开发环境
Win10下用自带Linux系统搭建开发环境 Win10下用自带Linux系统搭建开发环境启用Linux老版本(win10 1709之前):新版本(win10 1709之后)卸载linux老版本新版本 ...
- Javac语法糖之其它
1.变长参数 class VarialbeArgumentsDemo { public static void doWork(int... a) {//可变参数 } public static voi ...
- Selenium Web自动化 原理
文章转自 白月黑羽教Python 原理 说到web应用自动化测试,第一选择就是 Selenium 框架. Selenium 是一个 Web 应用的自动化框架. 通过它,我们可以写出自动化程序像人一样( ...
- Memcached理解笔记1---安装&常规错误&监控
一.下载 1.Libevent 简单的说就是一个事件触发的网络库,Memcached离不开它. wget http://cloud.github.com/downloads/libevent/libe ...
- awk统计文件中某关键词出现次数
1.统计文件test.txt中第2列不同值出现的次数 awk '{sum[$2]+=1}END{for(i in sum)print i"\t"sum[i]}' test.txt ...