Unity2018.3测试版发布后支持预制体嵌套……
问题:
1.unity场景烘焙后,再制作预制体后烘焙的光影丢失
2.如何将预制体的更改应用到各个子预制体
解决:
1.这个问题官方有解决,即是给每个需要加载的prefab添加PrefabLightmapData.cs脚本,但是这个脚本没有写完整,它只能在Non-Directional模式下可以正常工作,即没有加载Lightmap-_dir灯光贴图
2.在有嵌套的prefabs中,首先打开嵌套prefabs然后对各个子prefab执行applyAll操作,最后重新保存整个嵌套prefabs
3.本代码是在Unity2018.3.b3版本下编写的,部分api老版本有可能不一样(修改一下即可)
在官方代码基础上修改的代码如下:
1 using System.Collections; 2 using System.Collections.Generic; 3 using System.IO; 4 using UnityEditor; 5 using UnityEngine; 6 using VR403Works.Foundation.Extentions; 7 8 [DisallowMultipleComponent] 9 [ExecuteInEditMode] 10 public class PrefabLightmapData : MonoBehaviour 11 { 12 13 [System.Serializable] 14 struct RendererInfo 15 { 16 public Renderer renderer; 17 public int lightmapIndex; 18 public Vector4 lightmapOffsetScale; 19 } 20 21 [SerializeField] 22 RendererInfo[] m_RendererInfo; 23 [SerializeField] 24 Texture2D[] m_LightmapsColor; 25 [SerializeField] 26 Texture2D[] _lightmapsDir; 27 28 void Awake() 29 { 30 if (m_RendererInfo ==