以下代码都是手敲完成,不是源工程中复制的,如有错误请下载源工程查看
动态加载预设或者修改预设信息时 预设Lightmap信息丢失,需要将预设Lightmap信息保存起来,加载完成后动态赋值一次。
选择了使用ScriptableObject进行数据保存。
先创建ScriptableObject类(Lightmap和对象关联字段去掉了)。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(menuName = "Data/ScripttableTest")]
public class ScripttableTest : ScriptableObject
{
public List<LightmapInfo> lightmapInfos = new List<LightmapInfo>();
}
[System.Serializable]
public class LightmapInfo
{
public int lightmapIndex;
public Vector4 lightmapScaleOffset;
}
然后Creat一个ScriptableObject资源
接下来是信息记录部分,依然在编辑器下完成:
首先获取需要保存的对象,保存Lightmap信息:
GameObject[] gameObjects = Selection.gameObjects;
if (gameObjects != null &&