Esempio n. 1
0
        void DrawSplat()
        {
            if (mt.terrain != null && mt.splat != null)
            {
                TD.DrawLabelWidthUnderline("Splat", 14);

                GUI.color = Color.red * TD.editorSkinMulti;
                EditorGUILayout.BeginVertical("Box");
                GUI.color = Color.white;

                float splatTotal = 0;

                Texture2D[] splatTextures = TC.GetTerrainSplatTextures(mt.terrain);

                for (int i = 0; i < splatTextures.Length; ++i)
                {
                    EditorGUILayout.BeginHorizontal();

                    TC_ItemBehaviourEditor.DrawPreviewTexture(splatTextures[i], Color.white, Color.white, mt.textureSize, mt.textureSize);
                    float splatValue = mt.splat[0, 0, i];
                    EditorGUILayout.LabelField("");
                    Rect rect = GUILayoutUtility.GetLastRect();
                    EditorGUI.ProgressBar(rect, splatValue, splatValue.ToString("F2"));
                    splatTotal += splatValue;
                    EditorGUILayout.EndHorizontal();
                }

                GUILayout.Space(5.0f);

                GUI.color = Color.yellow * TD.editorSkinMulti;
                EditorGUILayout.BeginVertical("Box");
                GUI.color = Color.white;

                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.PrefixLabel("Splat Total");
                EditorGUILayout.LabelField(splatTotal.ToString("F3"));
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.EndVertical();

                EditorGUILayout.EndVertical();
            }
        }
Esempio n. 2
0
        public void CalcPreview(bool calcValues = true)
        {
            if (!TC_Settings.instance.hasMasterTerrain)
            {
                return;
            }

            if (itemList.Count > 1)
            {
                int length = TC.GetTerrainSplatTextureLength(TC_Settings.instance.masterTerrain);

                if (outputId == TC.splatOutput)
                {
                    Texture2D[] texArray = TC.GetTerrainSplatTextures(TC_Settings.instance.masterTerrain);

                    for (int i = 0; i < length; i++)
                    {
                        TC.SetTextureReadWrite(texArray[i]);
                    }
                    CalcPreview(texArray);
                }
                else
                {
                    if (outputId == TC.grassOutput)
                    {
                        for (int i = 0; i < itemList.Count; i++)
                        {
                            TC.SetTextureReadWrite(itemList[i].preview.tex);
                        }
                    }
                    CalcPreview(null);
                }
            }

            CreateMixBuffer();

            // Debug.Log("CalcPreview");
            TC.AutoGenerate();
        }