void RegisterChange(ref float reflectedVariable, float newValue, FloatSliderField resyncField = null, bool updatePreview = false) { if (environment == null || environment.Equals(null)) { return; } reflectedVariable = newValue; resyncField?.SetValueWithoutNotify(newValue); if (updatePreview && latlong != null && !latlong.Equals(null)) { latlong.image = GetLatLongThumbnailTexture(environment, k_SkyThumbnailWidth); } EditorUtility.SetDirty(environment); OnChangeCallback?.Invoke(); }
public VisualElement GetDefaultInspector() { VisualElement inspector = new VisualElement() { name = "Inspector" }; Foldout skyFoldout = new Foldout() { text = "Sky" }; skyCubemapField = new ObjectField("Sky with Sun"); skyCubemapField.allowSceneObjects = false; skyCubemapField.objectType = typeof(Cubemap); skyCubemapField.RegisterValueChangedCallback(evt => RegisterChange(ref environment.sky.cubemap, evt.newValue as Cubemap, updatePreview: true)); skyFoldout.Add(skyCubemapField); skyRotationOffset = new FloatSliderField("Rotation", 0f, 360f, 5); skyRotationOffset.RegisterValueChangedCallback(evt => RegisterChange(ref environment.sky.rotation, evt.newValue, updatePreview: true)); skyFoldout.Add(skyRotationOffset); skyExposureField = new FloatField("Exposure"); skyExposureField.RegisterValueChangedCallback(evt => RegisterChange(ref environment.sky.exposure, evt.newValue)); skyFoldout.Add(skyExposureField); var style = skyFoldout.Q <Toggle>().style; style.marginLeft = 3; style.unityFontStyleAndWeight = FontStyle.Bold; inspector.Add(skyFoldout); //[TODO: reenable when shadow composition will be finished] //Foldout shadowFoldout = new Foldout() //{ // text = "Shadow" //}; //shadowCubemapField = new ObjectField("Sky w/o Sun"); //shadowCubemapField.allowSceneObjects = false; //shadowCubemapField.objectType = typeof(Cubemap); //shadowCubemapField.RegisterValueChangedCallback(evt // => RegisterChange(ref environment.shadow.cubemap, evt.newValue as Cubemap, updatePreview: true)); //shadowFoldout.Add(shadowCubemapField); //shadowColor = new ColorField("Color"); //shadowColor.RegisterValueChangedCallback(evt // => RegisterChange(ref environment.shadow.color, evt.newValue)); //shadowFoldout.Add(shadowColor); //shadowSunLatitudeField = new FloatSliderField("Sun Latitude", -90f, 90f, 5); //shadowSunLatitudeField.RegisterValueChangedCallback(evt // => RegisterChange(ref environment.shadow.m_Latitude, Environment.Shadow.ClampLatitude(evt.newValue), shadowSunLatitudeField)); //shadowFoldout.Add(shadowSunLatitudeField); //shadowSunLongitudeField = new FloatSliderField("Sun Longitude", 0f, 359.999f, 5); //shadowSunLongitudeField.RegisterValueChangedCallback(evt // => RegisterChange(ref environment.shadow.m_Longitude, Environment.Shadow.ClampLongitude(evt.newValue), shadowSunLongitudeField)); //shadowFoldout.Add(shadowSunLongitudeField); //Button sunToBrightess = new Button(() // => { /* [TODO] */ }) //{ // text = "Sun position to brightest" //}; //shadowFoldout.Add(sunToBrightess); //style = shadowFoldout.Q<Toggle>().style; //style.marginLeft = 3; //style.unityFontStyleAndWeight = FontStyle.Bold; //inspector.Add(shadowFoldout); return(inspector); }