using UnityEngine; using UnityEngine.UI; using UnityEngine.Rendering.Universal; using UnityEngine.Rendering; using ShadowShard.AmbientOcclusionMaster.Runtime.Volume; // using ShadowShard.AmbientOcclusionMaster.Runtime; // using Unity.VisualScripting; // using ShadowShard.AmbientOcclusionMaster.Runtime.Enums.Samples; // using ShadowShard.AmbientOcclusionMaster.Runtime.Volume; public class SelectLight : MonoBehaviour { public Slider SunPositionSlider; public Slider AmbianceSlider; public Slider RoomShadowSlider; public Slider WallCabIntensitySlider; public Slider WallCabColorSlider; public Slider WallCabSizeSlider; public Image WallColorBackground; public Slider BaseCabIntensitySlider; public Slider BaseCabColorSlider; public Slider BaseCabSizeSlider; public Image BaseColorBackground; public Slider CeilingGlowSlider; public Slider SunIntensitySlider; public Slider InteriorIntensitySlider; public Slider SpotLampIntensitySlider; public Slider ShadowLightsSlider; public Slider GlowLightsSlider; public Slider PointsLightSlider; public Slider CeilingBritenessSlider; public GameObject SpotLightsContainer; public GameObject SpotCeilingBriteness; public Toggle SpotLampShadow; public Toggle WallNeon; public Toggle WallSpot; public Toggle BaseNeon; public Toggle BaseSpot; //public GtaoSettings gtaoIntensity; public static void Set_All_Lights_to_Scene() { //SUN Set_Sun_Position(); Set_Sun_Light_Intensity(); //AMBIANCE SetAmbiance(); //OCCLUSION SetOcclusion(); //SCENE LIGHT bool isOnOFF = Get.o2("LIGHTS", "ONOFF").activeInHierarchy; Get.o2("LIGHTS", "ONOFF").SetActive(true); GameObject SpotContainer = Get.o2("LIGHTS/ONOFF", "SpotWallContainer"); SetSceneLights(SpotContainer); //SHADOW ROOM SetRoomShadow(SpotContainer); //CEILING SPOT SetCeilingBriteness(Get.o2("LIGHTS/ONOFF", "SpotCeiling")); Get.o2("LIGHTS", "ONOFF").SetActive(isOnOFF); //GLOW SetGlowBloom(); } //-------------------------------------------------------------------------------------------------------- //-----------------SETTING------------------------------------------------------------------------ //-------------------------------------------------------------------------------------------------------- //Sun Position public void Sun_Position() { _G.LightSetting["SunPosition"]=SunPositionSlider.value; Set_Sun_Position(); } public static void Set_Sun_Position(){ GameObject Sun = ReflectionProbesUpdater.DirectionalLight; Sun.transform.eulerAngles = new(30,_G.LightSetting["SunPosition"],0); } //Sun Control public void Sun_Light_Intensity(){ _G.LightSetting["SunIntensity"]=SunIntensitySlider.value; Set_Sun_Light_Intensity(); } public static void Set_Sun_Light_Intensity(){ bool isSunOn=Get.o2("LIGHTS","ONOFF").activeInHierarchy; Get.o2("LIGHTS","ONOFF").SetActive(true); GameObject Sun=Get.o2("LIGHTS/ONOFF","Sun"); if(Sun!=null)Sun.GetComponent().intensity=_G.LightSetting["SunIntensity"]; Get.o2("LIGHTS","ONOFF").SetActive(isSunOn); } //Ambiance public void Ambiance(){ print("AmbianceExposer====1="+_G.LightSetting["AmbianceExposer"]); _G.LightSetting["AmbianceExposer"]=AmbianceSlider.value; print("AmbianceExposer====2="+_G.LightSetting["AmbianceExposer"]); SetAmbiance(); } public static void SetAmbiance() { //print("AmbianceExposer====1="+_G.LightSetting["AmbianceExposer"]); Volume volume = Get.o1("Global Volume").GetComponent(); volume.profile.TryGet(out ColorAdjustments CA); CA.postExposure.value = _G.LightSetting["AmbianceExposer"]; } //Occlusion public void Oclussion() { _G.LightSetting["Occlusion"] = RoomShadowSlider.value; SetOcclusion(); //gtaoIntensity. = 1; //GtaoSettings._intensity = 1; } public static void SetOcclusion() { Volume volume = Get.o1("Global Volume").GetComponent(); volume.profile.TryGet(out AmbientOcclusionMasterComponent GtaoSettings); GtaoSettings.GtaoIntensity.value = _G.LightSetting["Occlusion"]; } //Scene Lights public void SceneLights() { _G.LightSetting["SceneLights"] = PointsLightSlider.value; SetSceneLights(SpotLightsContainer); } public static void SetSceneLights(GameObject SpotLightsContainer){ //print("_G.LightSetting[SceneLights]===="+_G.LightSetting["SceneLights"]); foreach(Transform Spot in SpotLightsContainer.transform){ Spot.GetComponent().intensity = _G.LightSetting["SceneLights"]; } } //Room Shadow public void RoomShadow(){ _G.LightSetting["ShadowRoom"]=ShadowLightsSlider.value; SetRoomShadow(SpotLightsContainer); } public static void SetRoomShadow(GameObject SpotLightsContainer){ //print("_G.LightSetting[ShadowRoom]===="+_G.LightSetting["ShadowRoom"]); foreach(Transform Spot in SpotLightsContainer.transform){ Spot.GetComponent().shadowStrength= _G.LightSetting["ShadowRoom"]; } } //Ceiling Light public void CeilingBriteness(){ _G.LightSetting["CeilingIntensity"]=CeilingBritenessSlider.value; SetCeilingBriteness(SpotCeilingBriteness); } public static void SetCeilingBriteness(GameObject SpotCeilingBriteness){ SpotCeilingBriteness.GetComponent().intensity=_G.LightSetting["CeilingIntensity"] ; } public void GlowBloom() { _G.LightSetting["GlowBloom"]=GlowLightsSlider.value; SetGlowBloom(); } public static void SetGlowBloom() { //print("_G.LightSetting[GlowBloom]===="+_G.LightSetting["GlowBloom"]); Volume volume = Get.o1("Global Volume").GetComponent(); volume.profile.TryGet(out Bloom bloom); bloom.intensity.value=_G.LightSetting["GlowBloom"]; } //-------------------------------------------------------------------------------------------------------- //-----------------RESET LIGHTS------------------------------------------------------------------------ //-------------------------------------------------------------------------------------------------------- public static void AddSpotLight(GameObject Base,float H,string C40){ //print("C40=====" + C40); string[] c40 = C40.Split("_"); float Intensity = 15; if (c40.Length > 1) { Intensity = float.Parse(c40[1]); }; GameObject lightGameObject = new ("SpotLight"); lightGameObject.AddComponent(); lightGameObject.GetComponent().type=0; lightGameObject.transform.position = new Vector3(0, -H*0.5f+0, 0); lightGameObject.transform.eulerAngles = new Vector3(90, 0, 0); lightGameObject.transform.SetParent(Base.transform); lightGameObject.GetComponent().intensity=Intensity; lightGameObject.GetComponent().range=50; lightGameObject.GetComponent().innerSpotAngle=100; lightGameObject.GetComponent().spotAngle=179; bool isLightOn=false; if(c40[0]=="On")isLightOn=true; lightGameObject.GetComponent().enabled=isLightOn; lightGameObject.tag="Lights_Wall_Cabinet"; } public static bool OpenOnScene() { bool open = false; if (ReflectionProbesUpdater.DirectionalLight != null) { for (int i = 1; i < _G.NW + 1; i++) { if (Get.o2("ROOM/w" + i.ToString(), "s2") != null) open = true; } } return open; } }