public LightsSerializationData LightsSerializ() { LightsSerializationData lightsSerializationData = new LightsSerializationData(); Light[] allLights = UnityEngine.Object.FindObjectsOfType <Light>(); foreach (Light light in allLights) { lightsSerializationData.Serializ(light); } Dictionary <TreeNodeObject, ObjectCtrlInfo> dicInfo = Singleton <Studio.Studio> .Instance.dicInfo; foreach (KeyValuePair <TreeNodeObject, ObjectCtrlInfo> kvp in dicInfo) { if (kvp.Value != null && kvp.Key != null) { if (kvp.Value is OCILight) { OCILight value = kvp.Value as OCILight; lightsSerializationData.Serializ(value.light, value); } } } return(lightsSerializationData); }
static void Postfix(string _path) { var newpath = _path + ".lights_extdata"; if (File.Exists(newpath)) { LightsSerializationData.path = newpath; LightsSerializationData.Load(newpath); } }
static bool Prefix(string _path, SceneInfo __instance, ref bool __result) { LightsSerializationData.Save(_path + "_lights.extdata"); Profile.Save(_path + ".extdata"); using (FileStream fileStream = new FileStream(_path, FileMode.Create, FileAccess.Write)) { using (BinaryWriter binaryWriter = new BinaryWriter(fileStream)) { byte[] buffer = __instance.CreatePngScreen(320, 180); binaryWriter.Write(buffer); binaryWriter.Write(__instance.version.ToString()); __instance.Save(binaryWriter, __instance.dicObject); binaryWriter.Write(__instance.map); __instance.caMap.Save(binaryWriter); binaryWriter.Write(__instance.atmosphere); binaryWriter.Write(__instance.enableSSAO); binaryWriter.Write(__instance.ssaoIntensity); binaryWriter.Write(__instance.ssaoRadius); binaryWriter.Write(JsonUtility.ToJson(__instance.ssaoColor)); binaryWriter.Write(__instance.enableBloom); binaryWriter.Write(__instance.bloomIntensity); binaryWriter.Write(__instance.bloomDirt); binaryWriter.Write(__instance.enableDepth); binaryWriter.Write(__instance.depthFocalSize); binaryWriter.Write(__instance.depthAperture); binaryWriter.Write(__instance.enableVignette); binaryWriter.Write(__instance.vignetteVignetting); binaryWriter.Write(__instance.enableEyeAdaptation); binaryWriter.Write(__instance.eyeAdaptationIntensity); binaryWriter.Write(__instance.enableNoise); binaryWriter.Write(__instance.noiseIntensity); __instance.cameraSaveData.Save(binaryWriter); for (int i = 0; i < 10; i++) { __instance.cameraData[i].Save(binaryWriter); } binaryWriter.Write(JsonUtility.ToJson(__instance.cameraLightColor)); binaryWriter.Write(__instance.cameraLightIntensity); binaryWriter.Write(__instance.cameraLightRot[0]); binaryWriter.Write(__instance.cameraLightRot[1]); binaryWriter.Write(__instance.cameraLightShadow); binaryWriter.Write(__instance.cameraMethod); __instance.bgmCtrl.Save(binaryWriter, __instance.version); __instance.envCtrl.Save(binaryWriter, __instance.version); __instance.outsideSoundCtrl.Save(binaryWriter, __instance.version); binaryWriter.Write(__instance.background); binaryWriter.Write(__instance.skybox); binaryWriter.Write("【PHStudio】"); } } __result = true; return(false); }
static void Postfix(string _path) { var newpath = _path + ".extdata"; if (File.Exists(newpath)) { Profile.Load(newpath); } newpath = _path + "_lights.extdata"; if (File.Exists(newpath)) { LightsSerializationData.Load(newpath); } }
static bool Prefix(string _path, SceneInfo __instance, ref bool __result) { LightsSerializationData.Save(_path + ".lights_extdata"); __result = true; return(true); }
public IEnumerator LightsDeserializ(LightsSerializationData lightsSerializationData) { yield return(new WaitForSeconds(1f)); var scene = Singleton <Studio.Scene> .Instance; while (scene.isNowLoading || IsLoading) { yield return(new WaitForEndOfFrame()); } Light[] allLights = UnityEngine.Object.FindObjectsOfType <Light>(); Dictionary <TreeNodeObject, ObjectCtrlInfo> dicInfo = Singleton <Studio.Studio> .Instance.dicInfo; List <Light> deserialized = new List <Light>(); for (int i = 0; i < lightsSerializationData.name.Count(); i++) { if (int.Parse(lightsSerializationData.hasStudio[i]) == 1) { foreach (KeyValuePair <TreeNodeObject, ObjectCtrlInfo> kvp in dicInfo) { if (kvp.Value != null && kvp.Key != null) { if (kvp.Value is OCILight) { OCILight value = kvp.Value as OCILight; if (deserialized.Contains(value.light) == false && lightsSerializationData.name[i] == value.light.name && (LightType)(int.Parse(lightsSerializationData.type[i])) == value.light.type && lightsSerializationData.hierarchyPath[i] == LightsSerializationData.GetHierarchyPath(value.light) && LightsSerializationData.ToVector3(lightsSerializationData.transform_position[i]) == value.light.transform.position && LightsSerializationData.ToVector3(lightsSerializationData.transform_localPosition[i]) == value.light.transform.localPosition ) { lightsSerializationData.Deserializ(value.light, i, value); deserialized.Add(value.light); } } } } } else { for (int j = 0; j < allLights.Length; j++) { if (deserialized.Contains(allLights[j]) == false && lightsSerializationData.name[i] == allLights[j].name && (LightType)(int.Parse(lightsSerializationData.type[i])) == allLights[j].type && lightsSerializationData.hierarchyPath[i] == LightsSerializationData.GetHierarchyPath(allLights[j]) && LightsSerializationData.ToVector3(lightsSerializationData.transform_position[i]) == allLights[j].transform.position && LightsSerializationData.ToVector3(lightsSerializationData.transform_localPosition[i]) == allLights[j].transform.localPosition ) { lightsSerializationData.Deserializ(allLights[j], i); deserialized.Add(allLights[j]); } } } } LightsInit(); }