Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        static void Postfix(string _path)
        {
            var newpath = _path + ".lights_extdata";

            if (File.Exists(newpath))
            {
                LightsSerializationData.path = newpath;
                LightsSerializationData.Load(newpath);
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
 static bool Prefix(string _path, SceneInfo __instance, ref bool __result)
 {
     LightsSerializationData.Save(_path + ".lights_extdata");
     __result = true;
     return(true);
 }
Exemplo n.º 6
0
        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();
        }