コード例 #1
0
        public void SetCurrentPreviewObject(GameObject go, LookDevEditionContext context)
        {
            DestroyCurrentPreviewObject(context);

            if (go != null)
            {
                int index = (int)context;
                if (m_LookDevView == null ||
                    m_LookDevView.previewUtilityContexts == null ||
                    m_LookDevView.previewUtilityContexts[index] == null)
                {
                    return;
                }

                m_OriginalGameObject[index] = go;

                for (var i = 0; i < m_PreviewObjects[index].Length; ++i)
                {
                    m_PreviewObjects[index][i] = m_LookDevView.previewUtilityContexts[index].m_PreviewUtility[i].InstantiatePrefabInScene(m_OriginalGameObject[index]);
                    m_PreviewObjects[index][i].transform.position = new Vector3(0.0f, 0.0f, 0.0f);
                    m_PreviewObjects[index][i].transform.rotation = Quaternion.identity;
                    EditorUtility.InitInstantiatedPreviewRecursive(m_PreviewObjects[index][i]);
                    DisableRendererProperties(m_PreviewObjects[index][i]); // Avoid light probe influence from the main scene (but still have the default probe lighting)
                    PreviewRenderUtility.SetEnabledRecursive(m_PreviewObjects[index][i], false);
                }

                UpdateCurrentObjectArray();
            }
        }
コード例 #2
0
 private void DestroytCurrentPreviewObject(LookDevEditionContext context)
 {
     if (this.m_PreviewObjects[(int)context] != null)
     {
         UnityEngine.Object.DestroyImmediate(this.m_PreviewObjects[(int)context]);
         this.m_PreviewObjects[(int)context] = null;
     }
 }
コード例 #3
0
 public void UpdateFocus(LookDevEditionContext context)
 {
     if (context != LookDevEditionContext.None)
     {
         this.m_CurrentContextEdition      = context;
         this.m_CurrentEditionContextIndex = (int)this.m_CurrentContextEdition;
         this.m_LookDevView.Repaint();
     }
 }
コード例 #4
0
 private void DestroyCurrentPreviewObject(LookDevEditionContext context)
 {
     for (int i = 0; i < this.m_PreviewObjects[(int)context].Length; i++)
     {
         if (this.m_PreviewObjects[(int)context][i] != null)
         {
             UnityEngine.Object.DestroyImmediate(this.m_PreviewObjects[(int)context][i]);
             this.m_PreviewObjects[(int)context][i] = null;
         }
     }
 }
コード例 #5
0
        public void UpdateFocus(LookDevEditionContext context)
        {
            // Caution: m_CurrentContextEditionMode should never be set to ContextEditionMode.kNone it is used only for drag context.
            Debug.Assert(context != LookDevEditionContext.None);

            if (context != LookDevEditionContext.None)
            {
                m_CurrentContextEdition      = context;
                m_CurrentEditionContextIndex = (int)m_CurrentContextEdition;
                m_LookDevView.Repaint();
            }
        }
コード例 #6
0
 public int GetObjectLoDCount(LookDevEditionContext context)
 {
     if (this.m_CurrentObject[(int)context] != null)
     {
         LODGroup component = this.m_CurrentObject[(int)context].GetComponent(typeof(LODGroup)) as LODGroup;
         if (component != null)
         {
             return(component.lodCount);
         }
     }
     return(1);
 }
コード例 #7
0
        public int GetObjectLoDCount(LookDevEditionContext context)
        {
            if (m_CurrentObjectInstances[(int)context][0] != null)
            {
                LODGroup lodGroup = m_CurrentObjectInstances[(int)context][0].GetComponent(typeof(LODGroup)) as LODGroup;
                if (lodGroup != null)
                {
                    return(lodGroup.lodCount);
                }
            }

            return(1);
        }
コード例 #8
0
 public void SetCurrentPreviewObject(GameObject go, LookDevEditionContext context)
 {
     this.DestroytCurrentPreviewObject(context);
     if (go != null)
     {
         this.m_OriginalGameObject[(int)context] = go;
         this.m_PreviewObjects[(int)context]     = UnityEngine.Object.Instantiate <GameObject>(this.m_OriginalGameObject[(int)context], Vector3.zero, Quaternion.identity);
         EditorUtility.InitInstantiatedPreviewRecursive(this.m_PreviewObjects[(int)context]);
         this.SetEnabledRecursive(this.m_PreviewObjects[(int)context], false);
         this.DisableLightProbes(this.m_PreviewObjects[(int)context]);
         this.UpdateCurrentObjectArray();
     }
 }
コード例 #9
0
        private void DestroyCurrentPreviewObject(LookDevEditionContext context)
        {
            var index = (int)context;

            for (var j = 0; j < m_PreviewObjects[index].Length; j++)
            {
                if (m_PreviewObjects[index][j] != null)
                {
                    DestroyImmediate(m_PreviewObjects[index][j]);
                    m_PreviewObjects[index][j] = null;
                }
            }
        }
コード例 #10
0
        public int GetObjectLoDCount(LookDevEditionContext context)
        {
            int result;

            if (this.m_CurrentObjectInstances[(int)context][0] != null)
            {
                LODGroup lODGroup = this.m_CurrentObjectInstances[(int)context][0].GetComponent(typeof(LODGroup)) as LODGroup;
                if (lODGroup != null)
                {
                    result = lODGroup.lodCount;
                    return(result);
                }
            }
            result = 1;
            return(result);
        }
コード例 #11
0
 public void SetCurrentPreviewObject(GameObject go, LookDevEditionContext context)
 {
     this.DestroyCurrentPreviewObject(context);
     if (go != null)
     {
         if (!(this.m_LookDevView == null) && this.m_LookDevView.previewUtilityContexts != null && this.m_LookDevView.previewUtilityContexts[(int)context] != null)
         {
             this.m_OriginalGameObject[(int)context] = go;
             for (int i = 0; i < this.m_PreviewObjects[(int)context].Length; i++)
             {
                 this.m_PreviewObjects[(int)context][i] = this.m_LookDevView.previewUtilityContexts[(int)context].m_PreviewUtility[i].InstantiatePrefabInScene(this.m_OriginalGameObject[(int)context]);
                 this.m_PreviewObjects[(int)context][i].transform.position = new Vector3(0f, 0f, 0f);
                 this.m_PreviewObjects[(int)context][i].transform.rotation = Quaternion.identity;
                 EditorUtility.InitInstantiatedPreviewRecursive(this.m_PreviewObjects[(int)context][i]);
                 LookDevConfig.DisableRendererProperties(this.m_PreviewObjects[(int)context][i]);
                 PreviewRenderUtility.SetEnabledRecursive(this.m_PreviewObjects[(int)context][i], false);
             }
             this.UpdateCurrentObjectArray();
         }
     }
 }
コード例 #12
0
 public int GetIntProperty(LookDevProperty property, LookDevEditionContext context)
 {
     return(m_LookDevContexts[(int)context].GetProperty(property).intValue);
 }
コード例 #13
0
 public float GetFloatProperty(LookDevProperty property, LookDevEditionContext context)
 {
     return(m_LookDevContexts[(int)context].GetProperty(property).floatValue);
 }
コード例 #14
0
        private void DrawOneView(Rect drawPos, LookDevEditionContext context)
        {
            int  index = (int)context;
            bool flag  = ((this.m_LookDevView.config.lookDevMode != LookDevMode.Single1) && (context == LookDevEditionContext.Left)) || ((this.m_LookDevView.config.lookDevMode != LookDevMode.Single2) && (context == LookDevEditionContext.Right));

            GUILayout.BeginArea(drawPos);
            GUILayout.Label(styles.sViewTitle[index], styles.sViewTitleStyles[index], new GUILayoutOption[0]);
            GUILayout.BeginHorizontal(new GUILayoutOption[0]);
            GUILayoutOption[] options = new GUILayoutOption[] { GUILayout.Width(this.m_WindowWidth) };
            GUILayout.BeginVertical(options);
            GUILayoutOption[] optionArray2 = new GUILayoutOption[] { GUILayout.Height(kLineHeight) };
            GUILayout.BeginHorizontal(optionArray2);
            GUILayoutOption[] optionArray3 = new GUILayoutOption[] { GUILayout.Width(kLabelWidth) };
            GUILayout.Label(styles.sExposure, styles.sMenuItem, optionArray3);
            float floatProperty = this.m_LookDevView.config.GetFloatProperty(LookDevProperty.ExposureValue, context);

            EditorGUI.BeginChangeCheck();
            float max = Mathf.Round(this.m_LookDevView.config.exposureRange);

            GUILayoutOption[] optionArray4 = new GUILayoutOption[] { GUILayout.Width(kSliderWidth) };
            floatProperty = Mathf.Clamp(GUILayout.HorizontalSlider(floatProperty, -max, max, optionArray4), -max, max);
            GUILayoutOption[] optionArray5 = new GUILayoutOption[] { GUILayout.Width(kSliderFieldWidth) };
            floatProperty = Mathf.Clamp(EditorGUILayout.FloatField((float)Math.Round((double)floatProperty, (floatProperty >= 0f) ? 2 : 1), optionArray5), -max, max);
            if (EditorGUI.EndChangeCheck())
            {
                this.m_LookDevView.config.UpdateFocus(context);
                this.m_LookDevView.config.UpdateFloatProperty(LookDevProperty.ExposureValue, floatProperty);
            }
            GUILayout.EndHorizontal();
            GUILayoutOption[] optionArray6 = new GUILayoutOption[] { GUILayout.Height(kLineHeight) };
            GUILayout.BeginHorizontal(optionArray6);
            int num4      = -1;
            int hdriCount = this.m_LookDevView.envLibrary.hdriCount;

            using (new EditorGUI.DisabledScope(hdriCount <= 1))
            {
                GUILayoutOption[] optionArray7 = new GUILayoutOption[] { GUILayout.Width(kLabelWidth) };
                GUILayout.Label(styles.sEnvironment, styles.sMenuItem, optionArray7);
                if (hdriCount > 1)
                {
                    int num6 = hdriCount - 1;
                    num4 = this.m_LookDevView.config.GetIntProperty(LookDevProperty.HDRI, context);
                    EditorGUI.BeginChangeCheck();
                    GUILayoutOption[] optionArray8 = new GUILayoutOption[] { GUILayout.Width(kSliderWidth) };
                    num4 = (int)GUILayout.HorizontalSlider((float)num4, 0f, (float)num6, optionArray8);
                    GUILayoutOption[] optionArray9 = new GUILayoutOption[] { GUILayout.Width(kSliderFieldWidth) };
                    num4 = Mathf.Clamp(EditorGUILayout.IntField(num4, optionArray9), 0, num6);
                    if (EditorGUI.EndChangeCheck())
                    {
                        this.m_LookDevView.config.UpdateFocus(context);
                        this.m_LookDevView.config.UpdateIntProperty(LookDevProperty.HDRI, num4);
                    }
                }
                else
                {
                    GUILayoutOption[] optionArray10 = new GUILayoutOption[] { GUILayout.Width(kSliderWidth) };
                    GUILayout.HorizontalSlider(0f, 0f, 0f, optionArray10);
                    GUILayout.Label(styles.sZero, styles.sMenuItem, new GUILayoutOption[0]);
                }
            }
            GUILayout.EndHorizontal();
            GUILayoutOption[] optionArray11 = new GUILayoutOption[] { GUILayout.Height(kLineHeight) };
            GUILayout.BeginHorizontal(optionArray11);
            GUILayoutOption[] optionArray12 = new GUILayoutOption[] { GUILayout.Width(kLabelWidth) };
            GUILayout.Label(styles.sShadingMode, styles.sMenuItem, optionArray12);
            int intProperty = this.m_LookDevView.config.GetIntProperty(LookDevProperty.ShadingMode, context);

            EditorGUI.BeginChangeCheck();
            GUILayoutOption[] optionArray13 = new GUILayoutOption[] { GUILayout.Width((kSliderFieldWidth + kSliderWidth) + 4f) };
            intProperty = EditorGUILayout.IntPopup("", intProperty, styles.sShadingModeStrings, styles.sShadingModeValues, optionArray13);
            if (EditorGUI.EndChangeCheck())
            {
                this.m_LookDevView.config.UpdateFocus(context);
                this.m_LookDevView.config.UpdateIntProperty(LookDevProperty.ShadingMode, intProperty);
            }
            GUILayout.EndHorizontal();
            GUILayoutOption[] optionArray14 = new GUILayoutOption[] { GUILayout.Height(kLineHeight) };
            GUILayout.BeginHorizontal(optionArray14);
            GUILayoutOption[] optionArray15 = new GUILayoutOption[] { GUILayout.Width(kLabelWidth) };
            GUILayout.Label(styles.sRotation, styles.sMenuItem, optionArray15);
            float num8 = this.m_LookDevView.config.GetFloatProperty(LookDevProperty.EnvRotation, context);

            EditorGUI.BeginChangeCheck();
            GUILayoutOption[] optionArray16 = new GUILayoutOption[] { GUILayout.Width(kSliderWidth) };
            GUILayoutOption[] optionArray17 = new GUILayoutOption[] { GUILayout.Width(kSliderFieldWidth) };
            num8 = Mathf.Clamp(EditorGUILayout.FloatField((float)Math.Round((double)GUILayout.HorizontalSlider(num8, 0f, 720f, optionArray16), 0), optionArray17), 0f, 720f);
            if (EditorGUI.EndChangeCheck())
            {
                this.m_LookDevView.config.UpdateFocus(context);
                this.m_LookDevView.config.UpdateFloatProperty(LookDevProperty.EnvRotation, num8);
            }
            GUILayout.EndHorizontal();
            if (this.NeedLoD())
            {
                GUILayoutOption[] optionArray18 = new GUILayoutOption[] { GUILayout.Height(kLineHeight) };
                GUILayout.BeginHorizontal(optionArray18);
                if (this.m_LookDevView.config.GetObjectLoDCount(context) > 1)
                {
                    int num9 = this.m_LookDevView.config.GetIntProperty(LookDevProperty.LoDIndex, context);
                    GUILayoutOption[] optionArray19 = new GUILayoutOption[] { GUILayout.Width(kLabelWidth) };
                    GUILayout.Label((num9 != -1) ? styles.sLoD : styles.sLoDAuto, styles.sMenuItem, optionArray19);
                    EditorGUI.BeginChangeCheck();
                    int num10 = this.m_LookDevView.config.GetObjectLoDCount(context) - 1;
                    if (((this.m_LookDevView.config.lookDevMode != LookDevMode.Single1) && (this.m_LookDevView.config.lookDevMode != LookDevMode.Single2)) && this.m_LookDevView.config.IsPropertyLinked(LookDevProperty.LoDIndex))
                    {
                        num10 = Math.Min(this.m_LookDevView.config.GetObjectLoDCount(LookDevEditionContext.Left), this.m_LookDevView.config.GetObjectLoDCount(LookDevEditionContext.Right)) - 1;
                    }
                    GUILayoutOption[] optionArray20 = new GUILayoutOption[] { GUILayout.Width(kSliderWidth) };
                    num9 = (int)GUILayout.HorizontalSlider((float)Mathf.Clamp(num9, -1, num10), -1f, (float)num10, optionArray20);
                    GUILayoutOption[] optionArray21 = new GUILayoutOption[] { GUILayout.Width(kSliderFieldWidth) };
                    num9 = EditorGUILayout.IntField(num9, optionArray21);
                    if (EditorGUI.EndChangeCheck())
                    {
                        this.m_LookDevView.config.UpdateFocus(context);
                        this.m_LookDevView.config.UpdateIntProperty(LookDevProperty.LoDIndex, num9);
                    }
                }
                GUILayout.EndHorizontal();
            }
            GUILayout.EndVertical();
            if (flag)
            {
                GUILayoutOption[] optionArray22 = new GUILayoutOption[] { GUILayout.Width(kIconSize) };
                GUILayout.BeginVertical(optionArray22);
                LookDevProperty[] propertyArray = new LookDevProperty[] { LookDevProperty.ExposureValue };
                int num11 = 4 + (!this.NeedLoD() ? 0 : 1);
                for (int i = 0; i < num11; i++)
                {
                    bool flag2 = false;
                    EditorGUI.BeginChangeCheck();
                    bool flag3 = this.m_LookDevView.config.IsPropertyLinked(propertyArray[i]);
                    GUILayoutOption[] optionArray23 = new GUILayoutOption[] { GUILayout.Height(kLineHeight) };
                    flag2 = GUILayout.Toggle(flag3, this.GetGUIContentLink(flag3), styles.sToolBarButton, optionArray23);
                    if (EditorGUI.EndChangeCheck())
                    {
                        this.m_LookDevView.config.UpdatePropertyLink(propertyArray[i], flag2);
                    }
                }
                GUILayout.EndVertical();
            }
            GUILayout.EndHorizontal();
            GUILayout.EndArea();
        }
コード例 #15
0
        private void DrawOneView(Rect drawPos, LookDevEditionContext context)
        {
            bool flag = (this.m_LookDevView.config.lookDevMode != LookDevMode.Single1 && context == LookDevEditionContext.Left) || (this.m_LookDevView.config.lookDevMode != LookDevMode.Single2 && context == LookDevEditionContext.Right);

            GUILayout.BeginArea(drawPos);
            GUILayout.Label(LookDevViewsWindow.styles.sViewTitle[(int)context], LookDevViewsWindow.styles.sViewTitleStyles[(int)context], new GUILayoutOption[0]);
            GUILayout.BeginHorizontal(new GUILayoutOption[0]);
            GUILayout.BeginVertical(new GUILayoutOption[]
            {
                GUILayout.Width(this.m_WindowWidth)
            });
            GUILayout.BeginHorizontal(new GUILayoutOption[]
            {
                GUILayout.Height(LookDevViewsWindow.kLineHeight)
            });
            GUILayout.Label(LookDevViewsWindow.styles.sExposure, LookDevViewsWindow.styles.sMenuItem, new GUILayoutOption[]
            {
                GUILayout.Width(LookDevViewsWindow.kLabelWidth)
            });
            float num = this.m_LookDevView.config.GetFloatProperty(LookDevProperty.ExposureValue, context);

            EditorGUI.BeginChangeCheck();
            float num2 = Mathf.Round(this.m_LookDevView.config.exposureRange);

            num = Mathf.Clamp(GUILayout.HorizontalSlider(num, -num2, num2, new GUILayoutOption[]
            {
                GUILayout.Width(LookDevViewsWindow.kSliderWidth)
            }), -num2, num2);
            num = Mathf.Clamp(EditorGUILayout.FloatField((float)Math.Round((double)num, (num >= 0f) ? 2 : 1), new GUILayoutOption[]
            {
                GUILayout.Width(LookDevViewsWindow.kSliderFieldWidth)
            }), -num2, num2);
            if (EditorGUI.EndChangeCheck())
            {
                this.m_LookDevView.config.UpdateFocus(context);
                this.m_LookDevView.config.UpdateFloatProperty(LookDevProperty.ExposureValue, num);
            }
            GUILayout.EndHorizontal();
            GUILayout.BeginHorizontal(new GUILayoutOption[]
            {
                GUILayout.Height(LookDevViewsWindow.kLineHeight)
            });
            int hdriCount = this.m_LookDevView.envLibrary.hdriCount;

            using (new EditorGUI.DisabledScope(hdriCount <= 1))
            {
                GUILayout.Label(LookDevViewsWindow.styles.sEnvironment, LookDevViewsWindow.styles.sMenuItem, new GUILayoutOption[]
                {
                    GUILayout.Width(LookDevViewsWindow.kLabelWidth)
                });
                if (hdriCount > 1)
                {
                    int num3 = hdriCount - 1;
                    int num4 = this.m_LookDevView.config.GetIntProperty(LookDevProperty.HDRI, context);
                    EditorGUI.BeginChangeCheck();
                    num4 = (int)GUILayout.HorizontalSlider((float)num4, 0f, (float)num3, new GUILayoutOption[]
                    {
                        GUILayout.Width(LookDevViewsWindow.kSliderWidth)
                    });
                    num4 = Mathf.Clamp(EditorGUILayout.IntField(num4, new GUILayoutOption[]
                    {
                        GUILayout.Width(LookDevViewsWindow.kSliderFieldWidth)
                    }), 0, num3);
                    if (EditorGUI.EndChangeCheck())
                    {
                        this.m_LookDevView.config.UpdateFocus(context);
                        this.m_LookDevView.config.UpdateIntProperty(LookDevProperty.HDRI, num4);
                    }
                }
                else
                {
                    GUILayout.HorizontalSlider(0f, 0f, 0f, new GUILayoutOption[]
                    {
                        GUILayout.Width(LookDevViewsWindow.kSliderWidth)
                    });
                    GUILayout.Label(LookDevViewsWindow.styles.sZero, LookDevViewsWindow.styles.sMenuItem, new GUILayoutOption[0]);
                }
            }
            GUILayout.EndHorizontal();
            GUILayout.BeginHorizontal(new GUILayoutOption[]
            {
                GUILayout.Height(LookDevViewsWindow.kLineHeight)
            });
            GUILayout.Label(LookDevViewsWindow.styles.sShadingMode, LookDevViewsWindow.styles.sMenuItem, new GUILayoutOption[]
            {
                GUILayout.Width(LookDevViewsWindow.kLabelWidth)
            });
            int num5 = this.m_LookDevView.config.GetIntProperty(LookDevProperty.ShadingMode, context);

            EditorGUI.BeginChangeCheck();
            num5 = EditorGUILayout.IntPopup("", num5, LookDevViewsWindow.styles.sShadingModeStrings, LookDevViewsWindow.styles.sShadingModeValues, new GUILayoutOption[]
            {
                GUILayout.Width(LookDevViewsWindow.kSliderFieldWidth + LookDevViewsWindow.kSliderWidth + 4f)
            });
            if (EditorGUI.EndChangeCheck())
            {
                this.m_LookDevView.config.UpdateFocus(context);
                this.m_LookDevView.config.UpdateIntProperty(LookDevProperty.ShadingMode, num5);
            }
            GUILayout.EndHorizontal();
            GUILayout.BeginHorizontal(new GUILayoutOption[]
            {
                GUILayout.Height(LookDevViewsWindow.kLineHeight)
            });
            GUILayout.Label(LookDevViewsWindow.styles.sRotation, LookDevViewsWindow.styles.sMenuItem, new GUILayoutOption[]
            {
                GUILayout.Width(LookDevViewsWindow.kLabelWidth)
            });
            float num6 = this.m_LookDevView.config.GetFloatProperty(LookDevProperty.EnvRotation, context);

            EditorGUI.BeginChangeCheck();
            num6 = GUILayout.HorizontalSlider(num6, 0f, 720f, new GUILayoutOption[]
            {
                GUILayout.Width(LookDevViewsWindow.kSliderWidth)
            });
            num6 = Mathf.Clamp(EditorGUILayout.FloatField((float)Math.Round((double)num6, 0), new GUILayoutOption[]
            {
                GUILayout.Width(LookDevViewsWindow.kSliderFieldWidth)
            }), 0f, 720f);
            if (EditorGUI.EndChangeCheck())
            {
                this.m_LookDevView.config.UpdateFocus(context);
                this.m_LookDevView.config.UpdateFloatProperty(LookDevProperty.EnvRotation, num6);
            }
            GUILayout.EndHorizontal();
            if (this.NeedLoD())
            {
                GUILayout.BeginHorizontal(new GUILayoutOption[]
                {
                    GUILayout.Height(LookDevViewsWindow.kLineHeight)
                });
                if (this.m_LookDevView.config.GetObjectLoDCount(context) > 1)
                {
                    int num7 = this.m_LookDevView.config.GetIntProperty(LookDevProperty.LoDIndex, context);
                    GUILayout.Label((num7 != -1) ? LookDevViewsWindow.styles.sLoD : LookDevViewsWindow.styles.sLoDAuto, LookDevViewsWindow.styles.sMenuItem, new GUILayoutOption[]
                    {
                        GUILayout.Width(LookDevViewsWindow.kLabelWidth)
                    });
                    EditorGUI.BeginChangeCheck();
                    int num8 = this.m_LookDevView.config.GetObjectLoDCount(context) - 1;
                    if (this.m_LookDevView.config.lookDevMode != LookDevMode.Single1 && this.m_LookDevView.config.lookDevMode != LookDevMode.Single2 && this.m_LookDevView.config.IsPropertyLinked(LookDevProperty.LoDIndex))
                    {
                        num8 = Math.Min(this.m_LookDevView.config.GetObjectLoDCount(LookDevEditionContext.Left), this.m_LookDevView.config.GetObjectLoDCount(LookDevEditionContext.Right)) - 1;
                    }
                    num7 = Mathf.Clamp(num7, -1, num8);
                    num7 = (int)GUILayout.HorizontalSlider((float)num7, -1f, (float)num8, new GUILayoutOption[]
                    {
                        GUILayout.Width(LookDevViewsWindow.kSliderWidth)
                    });
                    num7 = EditorGUILayout.IntField(num7, new GUILayoutOption[]
                    {
                        GUILayout.Width(LookDevViewsWindow.kSliderFieldWidth)
                    });
                    if (EditorGUI.EndChangeCheck())
                    {
                        this.m_LookDevView.config.UpdateFocus(context);
                        this.m_LookDevView.config.UpdateIntProperty(LookDevProperty.LoDIndex, num7);
                    }
                }
                GUILayout.EndHorizontal();
            }
            GUILayout.EndVertical();
            if (flag)
            {
                GUILayout.BeginVertical(new GUILayoutOption[]
                {
                    GUILayout.Width(LookDevViewsWindow.kIconSize)
                });
                LookDevProperty[] array = new LookDevProperty[]
                {
                    LookDevProperty.ExposureValue,
                    LookDevProperty.HDRI,
                    LookDevProperty.ShadingMode,
                    LookDevProperty.EnvRotation,
                    LookDevProperty.LoDIndex
                };
                int num9 = 4 + ((!this.NeedLoD()) ? 0 : 1);
                for (int i = 0; i < num9; i++)
                {
                    EditorGUI.BeginChangeCheck();
                    bool flag2 = this.m_LookDevView.config.IsPropertyLinked(array[i]);
                    bool value = GUILayout.Toggle(flag2, this.GetGUIContentLink(flag2), LookDevViewsWindow.styles.sToolBarButton, new GUILayoutOption[]
                    {
                        GUILayout.Height(LookDevViewsWindow.kLineHeight)
                    });
                    if (EditorGUI.EndChangeCheck())
                    {
                        this.m_LookDevView.config.UpdatePropertyLink(array[i], value);
                    }
                }
                GUILayout.EndVertical();
            }
            GUILayout.EndHorizontal();
            GUILayout.EndArea();
        }
コード例 #16
0
 public float GetFloatProperty(LookDevProperty property, LookDevEditionContext context) =>
 this.m_LookDevContexts[(int)context].GetProperty(property).floatValue;
コード例 #17
0
 public int GetIntProperty(LookDevProperty property, LookDevEditionContext context) =>
 this.m_LookDevContexts[(int)context].GetProperty(property).intValue;
コード例 #18
0
        private void DrawOneView(Rect drawPos, LookDevEditionContext context)
        {
            int  i         = (int)context;
            bool drawLinks = ((m_LookDevView.config.lookDevMode != LookDevMode.Single1) && (context == LookDevEditionContext.Left)) || ((m_LookDevView.config.lookDevMode != LookDevMode.Single2) && (context == LookDevEditionContext.Right));

            GUILayout.BeginArea(drawPos);

            GUILayout.Label(styles.sViewTitle[i], styles.sViewTitleStyles[i]);

            GUILayout.BeginHorizontal();
            {
                GUILayout.BeginVertical(GUILayout.Width(m_WindowWidth));
                {
                    GUILayout.BeginHorizontal(GUILayout.Height(kLineHeight));
                    {
                        GUILayout.Label(styles.sExposure, styles.sMenuItem, GUILayout.Width(kLabelWidth));

                        float fExposureValue = m_LookDevView.config.GetFloatProperty(LookDevProperty.ExposureValue, context);
                        EditorGUI.BeginChangeCheck();
                        float roundedExposureRange = Mathf.Round(m_LookDevView.config.exposureRange);
                        fExposureValue = Mathf.Clamp(GUILayout.HorizontalSlider(fExposureValue, -roundedExposureRange, roundedExposureRange, GUILayout.Width(kSliderWidth)), -roundedExposureRange, roundedExposureRange); // Clamp is here to return value to the right range if the user decrease the exposure range
                        // Display in the float field is rounded for display. To 1 decimal in case of negative number to account for the '-' character.
                        fExposureValue = Mathf.Clamp(EditorGUILayout.FloatField((float)Math.Round(fExposureValue, fExposureValue < 0.0f ? 1 : 2), GUILayout.Width(kSliderFieldWidth)), -roundedExposureRange, roundedExposureRange);
                        if (EditorGUI.EndChangeCheck())
                        {
                            m_LookDevView.config.UpdateFocus(context);
                            m_LookDevView.config.UpdateFloatProperty(LookDevProperty.ExposureValue, fExposureValue);
                        }
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal(GUILayout.Height(kLineHeight));
                    {
                        int iHDRIIndex = -1;
                        int iHDRICount = m_LookDevView.envLibrary.hdriCount;

                        using (new EditorGUI.DisabledScope(iHDRICount <= 1))
                        {
                            GUILayout.Label(styles.sEnvironment, styles.sMenuItem, GUILayout.Width(kLabelWidth));

                            if (iHDRICount > 1)
                            {
                                int maxHDRIIndex = iHDRICount - 1;
                                iHDRIIndex = m_LookDevView.config.GetIntProperty(LookDevProperty.HDRI, context);
                                EditorGUI.BeginChangeCheck();
                                iHDRIIndex = (int)GUILayout.HorizontalSlider(iHDRIIndex, 0.0f, (float)maxHDRIIndex, GUILayout.Width(kSliderWidth));
                                iHDRIIndex = Mathf.Clamp(EditorGUILayout.IntField(iHDRIIndex, GUILayout.Width(kSliderFieldWidth)), 0, maxHDRIIndex);
                                if (EditorGUI.EndChangeCheck())
                                {
                                    m_LookDevView.config.UpdateFocus(context);
                                    m_LookDevView.config.UpdateIntProperty(LookDevProperty.HDRI, iHDRIIndex);
                                }
                            }
                            else
                            {
                                GUILayout.HorizontalSlider(0.0f, 0.0f, 0.0f, GUILayout.Width(kSliderWidth));
                                GUILayout.Label(styles.sZero, styles.sMenuItem);
                            }
                        }
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal(GUILayout.Height(kLineHeight));
                    {
                        GUILayout.Label(styles.sShadingMode, styles.sMenuItem, GUILayout.Width(kLabelWidth));

                        int shadingMode = m_LookDevView.config.GetIntProperty(LookDevProperty.ShadingMode, context);
                        EditorGUI.BeginChangeCheck();
                        shadingMode = EditorGUILayout.IntPopup("", shadingMode, styles.sShadingModeStrings, styles.sShadingModeValues, GUILayout.Width(kSliderFieldWidth + kSliderWidth + 4.0f));
                        if (EditorGUI.EndChangeCheck())
                        {
                            m_LookDevView.config.UpdateFocus(context);
                            m_LookDevView.config.UpdateIntProperty(LookDevProperty.ShadingMode, shadingMode);
                        }
                    }
                    GUILayout.EndHorizontal();

                    GUILayout.BeginHorizontal(GUILayout.Height(kLineHeight));
                    {
                        GUILayout.Label(styles.sRotation, styles.sMenuItem, GUILayout.Width(kLabelWidth));

                        float envRotation = m_LookDevView.config.GetFloatProperty(LookDevProperty.EnvRotation, context);
                        EditorGUI.BeginChangeCheck();
                        envRotation = GUILayout.HorizontalSlider(envRotation, 0.0f, 720.0f, GUILayout.Width(kSliderWidth));
                        envRotation = Mathf.Clamp(EditorGUILayout.FloatField((float)Math.Round(envRotation, 0), GUILayout.Width(kSliderFieldWidth)), 0.0f, 720.0f);
                        if (EditorGUI.EndChangeCheck())
                        {
                            m_LookDevView.config.UpdateFocus(context);
                            m_LookDevView.config.UpdateFloatProperty(LookDevProperty.EnvRotation, envRotation);
                        }
                    }
                    GUILayout.EndHorizontal();

                    if (NeedLoD())
                    {
                        GUILayout.BeginHorizontal(GUILayout.Height(kLineHeight));
                        {
                            if (m_LookDevView.config.GetObjectLoDCount(context) > 1)
                            {
                                int lodIndex = m_LookDevView.config.GetIntProperty(LookDevProperty.LoDIndex, context);

                                GUILayout.Label(lodIndex == -1 ? styles.sLoDAuto : styles.sLoD, styles.sMenuItem, GUILayout.Width(kLabelWidth));

                                EditorGUI.BeginChangeCheck();

                                int maxLoDIndex = m_LookDevView.config.GetObjectLoDCount(context) - 1;

                                // We need a specific handling here in case of linked property, because even if it is linked the two meshes can have different number of LOD
                                // We handle that by taking the min of the number of mesh if the property is link
                                if ((m_LookDevView.config.lookDevMode != LookDevMode.Single1 && m_LookDevView.config.lookDevMode != LookDevMode.Single2) && m_LookDevView.config.IsPropertyLinked(LookDevProperty.LoDIndex))
                                {
                                    maxLoDIndex = Math.Min(m_LookDevView.config.GetObjectLoDCount(LookDevEditionContext.Left), m_LookDevView.config.GetObjectLoDCount(LookDevEditionContext.Right)) - 1;
                                }

                                lodIndex = Mathf.Clamp(lodIndex, -1, maxLoDIndex);

                                lodIndex = (int)GUILayout.HorizontalSlider(lodIndex, -1, maxLoDIndex, GUILayout.Width(kSliderWidth));
                                lodIndex = EditorGUILayout.IntField(lodIndex, GUILayout.Width(kSliderFieldWidth));
                                if (EditorGUI.EndChangeCheck())
                                {
                                    m_LookDevView.config.UpdateFocus(context);
                                    m_LookDevView.config.UpdateIntProperty(LookDevProperty.LoDIndex, lodIndex);
                                }
                            }
                        }
                        GUILayout.EndHorizontal();
                    }
                }
                GUILayout.EndVertical();

                if (drawLinks)
                {
                    GUILayout.BeginVertical(GUILayout.Width(kIconSize));
                    {
                        LookDevProperty[] properties = { LookDevProperty.ExposureValue, LookDevProperty.HDRI, LookDevProperty.ShadingMode, LookDevProperty.EnvRotation, LookDevProperty.LoDIndex };
                        int propertyCount            = 4 + (NeedLoD() ? 1 : 0);
                        for (int propertyIndex = 0; propertyIndex < propertyCount; ++propertyIndex)
                        {
                            bool linked = false;
                            EditorGUI.BeginChangeCheck();
                            bool isLink = m_LookDevView.config.IsPropertyLinked(properties[propertyIndex]);
                            linked = GUILayout.Toggle(isLink, GetGUIContentLink(isLink), styles.sToolBarButton, GUILayout.Height(kLineHeight));
                            if (EditorGUI.EndChangeCheck())
                            {
                                m_LookDevView.config.UpdatePropertyLink(properties[propertyIndex], linked);
                            }
                        }
                    }
                    GUILayout.EndVertical();
                }
            }
            GUILayout.EndHorizontal();
            GUILayout.EndArea();
        }