123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699 |
- #if UNITY_EDITOR
- using UnityEditor;
- using UnityEngine;
- namespace Quixel
- {
- public class MegascansImporterWindow : EditorWindow
- {
- public static string version = "4.0";
- static private int texPack;
- static private int texPackUpdate;
- static private string[] texPacking = new string[] {
- "Metallic",
- "Specular",
- };
- static private int dispType;
- static private int dispTypeUpdate;
- static private string[] dispTypes = new string[] {
- "None",
- "Vertex",
- "Pixel",
- };
- static private int shaderType;
- static private int shaderTypeUpdate;
- static private string[] shaderTypes = new string[] {
- "HDRP",
- "URP (LWRP)",
- "Legacy",
- "Auto-Detect",
- };
- static private int importResolution;
- static private int importResolutionUpdate;
- static private string[] importResolutions = new string[] {
- "512",
- "1024",
- "2048",
- "4096",
- "8192",
- };
- static private int lodFadeMode;
- static private int lodFadeModeUpdate;
- static private string[] lodFadeModeSettings = new string[] {
- "None",
- "Cross Fade",
- "Speed Tree"
- };
- static private string path;
- static private string pathUpdate;
- static private Texture2D MSLogo;
- static private Texture2D BridgeLogo;
- static private Texture2D HelpLogo;
- static private GUIStyle MSLogoStyle;
- static private GUIStyle HelpLogoStyle;
- static private Texture2D MSBackground;
- static private GUIStyle MSField;
- static private GUIStyle MSPopup;
- static private GUIStyle MSText;
- static private GUIStyle MSCheckBox;
- static private GUIStyle MSHelpStyle;
- static private GUIStyle MSNormalTextStyle;
- static private GUIStyle MSWarningTextStyle;
- static private GUIStyle MSHeadingTextStyle;
- static private GUIStyle MSTabsStyle;
- static private GUIStyle MSStrechedWidthStyle;
- static private bool connection;
- static private bool connectionUpdate;
- static private bool setupCollision;
- static private bool applyToSelection;
- static private bool addAssetToScene;
- static private bool importLODs;
- static private bool setupLOD;
- static private bool setupPrefabs;
- static private bool setupCollisionUpdate;
- static private bool applyToSelectionUpdate;
- static private bool addAssetToSceneUpdate;
- static private bool importLODsUpdate;
- static private bool setupLODUpdate;
- static private bool setupPrefabsUpdate;
- static private bool importAllTextures;
- static private bool importAllTexturesUpdate;
- static private bool SuperHD;
- static private Vector2 size;
- static private Vector2 logoSize;
- static private Vector2 textSize;
- static private Vector2 textHeadingSize;
- static private Vector2 fieldSize;
- static private Rect collisionLoc;
- static private Rect applyToSelectionLoc;
- static private Rect addAssetToSceneLoc;
- static private Rect importLODsLoc;
- static private Rect setupLODLoc;
- static private Rect setupPrefabsLoc;
- static private Rect importAllTexturesLoc;
- static private Rect connectionLoc;
- static private float lineYLoc;
- //Decal Properties
- static private string decalBlend = "100";
- static private string decalSize = "1";
- //Decal Properties
- static private string decalBlendUpdate = "100";
- static private string decalSizeUpdate = "1";
- private int tab = 0;
- //Terrain tools properties
- static private string terrainMaterialName = "Terrain Material";
- static private string terrainMaterialPath = "Quixel/";
- static private string tiling = "10";
- static private string terrainMaterialNameUpdate = "Terrain Material";
- static private string terrainMaterialPathUpdate = "Quixel/";
- static private string tilingUpdate = "10";
- [MenuItem("Window/Quixel/Megascans Importer", false, 10)]
- public static void Init()
- {
- MegascansImporterWindow window = (MegascansImporterWindow)EditorWindow.GetWindow(typeof(MegascansImporterWindow));
- GUIContent header = new GUIContent();
- header.text = " Bridge Plugin v" + version;
- header.image = (Texture)MSLogo;
- header.tooltip = "Megascans Bridge Plugin.";
- window.titleContent = header;
- window.maxSize = size * 20f;
- window.minSize = size;
- window.Show();
- }
- void OnGUI()
- {
- GUI.DrawTexture(new Rect(0, 0, maxSize.x, maxSize.y), MSBackground, ScaleMode.StretchToFill);
- GUILayout.BeginHorizontal();
- GUILayout.Box("Bridge Plugin v" + version, MSHeadingTextStyle, GUILayout.Height(textHeadingSize.y));
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- if (GUILayout.Button(MSLogo, MSLogoStyle, GUILayout.Height(logoSize.y), GUILayout.Width(logoSize.x)))
- Application.OpenURL("https://quixel.com/megascans/library/latest");
- if (GUILayout.Button(BridgeLogo, MSLogoStyle, GUILayout.Height(logoSize.y), GUILayout.Width(logoSize.x)))
- Application.OpenURL("https://quixel.com/bridge");
- GUILayout.EndHorizontal();
- //GUILayout.BeginHorizontal();
- //tab = GUILayout.Toolbar(tab, new string[] { "Settings", "Utilities" }, MSTabsStyle, GUILayout.Height(textSize.y));
- //GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- Handles.color = Color.white;
- Handles.DrawLine(new Vector3(0f, lineYLoc), new Vector3(maxSize.x, lineYLoc));
- GUILayout.EndHorizontal();
- if (tab == 0)
- {
- GUILayout.BeginHorizontal();
- GUILayout.Label("Workflow", MSText, GUILayout.Height(textSize.y), GUILayout.Width(textSize.x));
- texPack = EditorGUILayout.Popup(texPack, texPacking, MSPopup, GUILayout.Height(fieldSize.y));
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- GUILayout.Label("Displacement", MSText, GUILayout.Height(textSize.y), GUILayout.Width(textSize.x));
- dispType = EditorGUILayout.Popup(dispType, dispTypes, MSPopup, GUILayout.Height(fieldSize.y));
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- GUILayout.Box("Shader Type", MSText, GUILayout.Height(textSize.y), GUILayout.Width(textSize.x));
- shaderType = EditorGUILayout.Popup(shaderType, shaderTypes, MSPopup, GUILayout.Height(fieldSize.y));
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- GUILayout.Box("Import Resolution", MSText, GUILayout.Height(textSize.y), GUILayout.Width(textSize.x));
- importResolution = EditorGUILayout.Popup(importResolution, importResolutions, MSPopup, GUILayout.Height(fieldSize.y));
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- GUILayout.Box("LOD Fade Mode", MSText, GUILayout.Height(textSize.y), GUILayout.Width(textSize.x));
- lodFadeMode = EditorGUILayout.Popup(lodFadeMode, lodFadeModeSettings, MSPopup, GUILayout.Height(fieldSize.y));
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- GUILayout.Box("Import Path", MSText, GUILayout.Height(textSize.y), GUILayout.Width(textSize.x));
- path = EditorGUILayout.TextField(path, MSField, GUILayout.Height(fieldSize.y));
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- setupCollision = EditorGUI.Toggle(collisionLoc, setupCollision, MSCheckBox);
- GUILayout.Box("Setup Collision", MSNormalTextStyle, GUILayout.Height(textSize.y), GUILayout.Width(textSize.x));
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- applyToSelection = EditorGUI.Toggle(applyToSelectionLoc, applyToSelection, MSCheckBox);
- GUILayout.Box("Apply To Selection (2D Surfaces)", MSNormalTextStyle, GUILayout.Height(textSize.y), GUILayout.Width(textSize.x));
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- addAssetToScene = EditorGUI.Toggle(addAssetToSceneLoc, addAssetToScene, MSCheckBox);
- GUILayout.Box("Add Asset to the Scene", MSNormalTextStyle, GUILayout.Height(textSize.y), GUILayout.Width(textSize.x));
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- setupPrefabs = EditorGUI.Toggle(setupPrefabsLoc, setupPrefabs, MSCheckBox);
- GUILayout.Box("Create Prefabs", MSNormalTextStyle, GUILayout.Height(textSize.y), GUILayout.Width(textSize.x));
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- importLODs = EditorGUI.Toggle(importLODsLoc, importLODs, MSCheckBox);
- GUILayout.Box("Import Lower LODs", MSNormalTextStyle, GUILayout.Height(textSize.y), GUILayout.Width(textSize.x));
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- setupLOD = EditorGUI.Toggle(setupLODLoc, setupLOD, MSCheckBox);
- GUILayout.Box("Create LOD Groups", MSNormalTextStyle, GUILayout.Height(textSize.y), GUILayout.Width(textSize.x));
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- importAllTextures = EditorGUI.Toggle(importAllTexturesLoc, importAllTextures, MSCheckBox);
- GUILayout.Box("Import All Textures", MSNormalTextStyle, GUILayout.Height(textSize.y), GUILayout.Width(textSize.x));
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- connection = EditorGUI.Toggle(connectionLoc, connection, MSCheckBox);
- GUILayout.Box("Enable Plugin", MSNormalTextStyle, GUILayout.Height(textSize.y));
- if (GUILayout.Button("Help...", MSHelpStyle, GUILayout.Width(textSize.x)))
- Application.OpenURL("https://docs.google.com/document/d/1XeK2nlkO6NSm34IBYJT8Kon0IxzGwCIv-tACs8i_X58");
- GUILayout.EndHorizontal();
- }
- else
- {
- /*
- #if (UNITY_2018 || UNITY_2019 || UNITY_2020 || UNITY_2021)
- GUILayout.BeginHorizontal();
- GUILayout.Box("Terrain Tools (Beta)", MSHeadingTextStyle, GUILayout.Height(textHeadingSize.y));
- GUILayout.EndHorizontal();
- if (MegascansUtilities.isLegacy())
- {
- GUILayout.BeginHorizontal();
- GUILayout.Box("Material Name", MSText, GUILayout.Height(textSize.y), GUILayout.Width(textSize.x));
- terrainMaterialName = EditorGUILayout.TextField(terrainMaterialName, MSField, GUILayout.Height(fieldSize.y), GUILayout.Width(fieldSize.x));
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- GUILayout.Box("Material Path", MSText, GUILayout.Height(textSize.y), GUILayout.Width(textSize.x));
- terrainMaterialPath = EditorGUILayout.TextField(terrainMaterialPath, MSField, GUILayout.Height(fieldSize.y), GUILayout.Width(fieldSize.x));
- GUILayout.EndHorizontal();
- }
- GUILayout.BeginHorizontal();
- GUILayout.Box("Texture Tiling", MSText, GUILayout.Height(textSize.y), GUILayout.Width(textSize.x));
- tiling = EditorGUILayout.TextField(tiling, MSField, GUILayout.Height(fieldSize.y));
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- if (GUILayout.Button("Setup Paint Layers", MSStrechedWidthStyle, GUILayout.Height(textSize.y)))
- MegascansTerrainTools.SetupTerrain();
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- string warningMsg = "Warning: This feature works properly with the metallic workflow only.";
- if (MegascansUtilities.isLegacy())
- warningMsg += "This feature requires HD Render Pipeline.";
- GUI.skin.label.wordWrap = true;
- GUILayout.Label(warningMsg, MSWarningTextStyle, GUILayout.Height(textSize.y));
- GUILayout.EndHorizontal();
- #endif
- #if (UNITY_2018_3 || UNITY_2018_4 || UNITY_2019 || UNITY_2020 || UNITY_2021)
- GUILayout.BeginHorizontal();
- GUILayout.Box("Material Tools (Beta)", MSHeadingTextStyle, GUILayout.Height(textHeadingSize.y));
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- if (GUILayout.Button("Create Terrain Paint Layer", MSStrechedWidthStyle, GUILayout.Height(textSize.y)))
- MegascansTerrainTools.CreateTerrainLayerFromMat();
- GUILayout.EndHorizontal();
- #endif
- #if HDRP && (UNITY_2018_2 || UNITY_2018_3 || UNITY_2018_4 || UNITY_2019 || UNITY_2020 || UNITY_2021)
- GUILayout.BeginHorizontal ();
- GUILayout.Box ("Decal Setup (Beta)", MSHeadingTextStyle, GUILayout.Height(textHeadingSize.y));
- GUILayout.EndHorizontal ();
- GUILayout.BeginHorizontal ();
- GUILayout.Box ("Global Opacity (%)", MSText, GUILayout.Height (textSize.y), GUILayout.Width (textSize.x));
- decalBlend = EditorGUILayout.TextField (decalBlend, MSField, GUILayout.Height(fieldSize.y));
- GUILayout.EndHorizontal ();
- if (!MegascansUtilities.isLegacy ()) {
- GUILayout.BeginHorizontal ();
- GUILayout.Box ("Scale", MSText, GUILayout.Height (textSize.y), GUILayout.Width (textSize.x));
- decalSize = EditorGUILayout.TextField (decalSize, MSField, GUILayout.Height(fieldSize.y));
- GUILayout.EndHorizontal ();
- }
- GUILayout.BeginHorizontal ();
- if (GUILayout.Button ("Create Decal Projector", MSStrechedWidthStyle, GUILayout.Height (textSize.y)))
- MegascansDecalTools.SetupDecalProjector ();
- GUILayout.EndHorizontal ();
- #endif
- */
- }
-
- if (!MSLogo)
- {
- InitStyle();
- Repaint();
- }
- }
- void OnEnable()
- {
- SuperHD = (Display.main.systemHeight > 1500);
- size = SuperHD ? new Vector2(750, 1400) : new Vector2(308, 796);
- textSize = SuperHD ? new Vector2(200, 54) : new Vector2(100, 30);
- textHeadingSize = SuperHD ? new Vector2(555, 64) : new Vector2(308, 40);
- fieldSize = SuperHD ? new Vector2(290, 54) : new Vector2(152, 30);
-
- collisionLoc = SuperHD ? new Rect(25, 632, 32, 32) : new Rect(13, 340, 17, 17);
- applyToSelectionLoc = SuperHD ? new Rect(25, 715, 32, 32) : new Rect(13, 384, 17, 17);
- addAssetToSceneLoc = SuperHD ? new Rect(25, 794, 32, 32) : new Rect(13, 427, 17, 17);
- setupPrefabsLoc = SuperHD ? new Rect(25, 875, 32, 32) : new Rect(13, 470, 17, 17);
- importLODsLoc = SuperHD ? new Rect(25, 957, 32, 32) : new Rect(13, 513, 17, 17);
- setupLODLoc = SuperHD ? new Rect(25, 1038, 32, 32) : new Rect(13, 556, 17, 17);
- importAllTexturesLoc = SuperHD ? new Rect(25, 1118, 32, 32) : new Rect(13, 599, 17, 17);
- connectionLoc = SuperHD ? new Rect(25, 1199, 32, 32) : new Rect(13, 642, 17, 17);
- lineYLoc = SuperHD ? 185f : 102f;
- logoSize = SuperHD ? new Vector2(64, 64) : new Vector2(34, 34);
- InitStyle();
- GetDefaults();
- Repaint();
- }
- //If the values dont exist in editor prefs they are replaced with the default values.
- internal static void GetDefaults()
- {
- path = EditorPrefs.GetString("QuixelDefaultPath", "Quixel/Megascans/");
- dispType = EditorPrefs.GetInt("QuixelDefaultDisplacement", 0);
- texPack = EditorPrefs.GetInt("QuixelDefaultTexPacking", 0);
- shaderType = EditorPrefs.GetInt("QuixelDefaultShader", 3);
- importResolution = EditorPrefs.GetInt("QuixelDefaultImportResolution", 4);
- lodFadeMode = EditorPrefs.GetInt("QuixelDefaultLodFadeMode", 1);
- connection = EditorPrefs.GetBool("QuixelDefaultConnection", true);
- setupCollision = EditorPrefs.GetBool("QuixelDefaultSetupCollision", true);
- applyToSelection = EditorPrefs.GetBool("QuixelDefaultApplyToSelection", false);
- addAssetToScene = EditorPrefs.GetBool("QuixelDefaultAddAssetToScene", false);
- importLODs = EditorPrefs.GetBool("QuixelDefaultImportLODs", true);
- setupLOD = EditorPrefs.GetBool("QuixelDefaultSetupLOD", true);
- setupPrefabs = EditorPrefs.GetBool("QuixelDefaultSetupPrefabs", true);
- importAllTextures = EditorPrefs.GetBool("QuixelDefaultImportAllTextures", false);
- decalBlend = EditorPrefs.GetString("QuixelDefaultDecalBlend", "100");
- decalSize = EditorPrefs.GetString("QuixelDefaultDecalSize", "1");
- terrainMaterialName = EditorPrefs.GetString("QuixelDefaultMaterialName", "Terrain Material");
- terrainMaterialPath = EditorPrefs.GetString("QuixelDefaultMaterialPath", "Quixel/");
- tiling = EditorPrefs.GetString("QuixelDefaultTiling", "10");
- pathUpdate = path;
- dispTypeUpdate = dispType;
- texPackUpdate = texPack;
- shaderTypeUpdate = shaderType;
- connectionUpdate = connection;
- setupCollisionUpdate = setupCollision;
- applyToSelectionUpdate = applyToSelection;
- addAssetToSceneUpdate = addAssetToScene;
- setupPrefabsUpdate = setupPrefabs;
- importLODsUpdate = importLODs;
- setupLODUpdate = setupLOD;
- importResolutionUpdate = importResolution;
- lodFadeModeUpdate = lodFadeMode;
- importAllTexturesUpdate = importAllTextures;
- //Decal Properties
- decalBlendUpdate = decalBlend;
- decalSizeUpdate = decalSize;
- //Terrain tool properties
- terrainMaterialNameUpdate = terrainMaterialName;
- terrainMaterialPathUpdate = terrainMaterialPath;
- tilingUpdate = tiling;
- if (connection)
- MegascansBridgeLink.ToggleServer();
- }
- static void SaveDefaults()
- {
- if (connection != connectionUpdate)
- {
- connectionUpdate = connection;
- MegascansBridgeLink.ToggleServer(connection);
- }
- EditorPrefs.SetString("QuixelDefaultPath", path);
- EditorPrefs.SetInt("QuixelDefaultDisplacement", dispType);
- EditorPrefs.SetInt("QuixelDefaultTexPacking", texPack);
- EditorPrefs.SetInt("QuixelDefaultShader", shaderType);
- EditorPrefs.SetBool("QuixelDefaultConnection", connection);
- EditorPrefs.SetBool("QuixelDefaultSetupCollision", setupCollision);
- EditorPrefs.SetBool("QuixelDefaultApplyToSelection", applyToSelection);
- EditorPrefs.SetBool("QuixelDefaultAddAssetToScene", addAssetToScene);
- EditorPrefs.SetBool("QuixelDefaultImportLODs", importLODs);
- EditorPrefs.SetBool("QuixelDefaultSetupLOD", setupLOD);
- EditorPrefs.SetBool("QuixelDefaultSetupPrefabs", setupPrefabs);
- EditorPrefs.SetInt("QuixelDefaultImportResolution", importResolution);
- EditorPrefs.SetInt("QuixelDefaultLodFadeMode", lodFadeMode);
- EditorPrefs.SetBool("QuixelDefaultImportAllTextures", importAllTextures);
- pathUpdate = path;
- dispTypeUpdate = dispType;
- texPackUpdate = texPack;
- shaderTypeUpdate = shaderType;
- importResolutionUpdate = importResolution;
- setupCollisionUpdate = setupCollision;
- applyToSelectionUpdate = applyToSelection;
- addAssetToSceneUpdate = addAssetToScene;
- setupPrefabsUpdate = setupPrefabs;
- importLODsUpdate = importLODs;
- setupLODUpdate = setupLOD;
- lodFadeModeUpdate = lodFadeMode;
- importAllTexturesUpdate = importAllTextures;
- //Decal Properties
- EditorPrefs.SetString("QuixelDefaultDecalBlend", decalBlend);
- EditorPrefs.SetString("QuixelDefaultDecalSize", decalSize);
- decalBlendUpdate = decalBlend;
- decalSizeUpdate = decalSize;
- //Terrain tool properties
- EditorPrefs.SetString("QuixelDefaultMaterialName", terrainMaterialName);
- EditorPrefs.SetString("QuixelDefaultMaterialPath", terrainMaterialPath);
- EditorPrefs.SetString("QuixelDefaultTiling", tiling);
- terrainMaterialNameUpdate = terrainMaterialName;
- terrainMaterialPathUpdate = terrainMaterialPath;
- tilingUpdate = tiling;
- }
- void ConstructPopUp()
- {
- MSPopup = new GUIStyle();
- MSPopup.normal.textColor = new Color(1.0f, 1.0f, 1.0f);
- MSPopup.normal.background = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Quixel/Scripts/Images/Text_Background.png");
- MSPopup.font = AssetDatabase.LoadAssetAtPath<Font>("Assets/Quixel/Scripts/Fonts/SourceSansPro-Regular.ttf");
- MSPopup.fontSize = SuperHD ? 24 : 13;
- MSPopup.padding = SuperHD ? new RectOffset(20, 0, 10, 0) : new RectOffset(10, 5, 7, 4);
- MSPopup.margin = SuperHD ? new RectOffset(0, 20, 13, 7) : new RectOffset(0, 10, 6, 5);
- //MSPopup.
- }
- void ConstructText()
- {
- MSText = new GUIStyle();
- MSText.normal.textColor = new Color(0.4f, 0.4f, 0.4f);
- MSText.font = AssetDatabase.LoadAssetAtPath<Font>("Assets/Quixel/Scripts/Fonts/SourceSansPro-Regular.ttf");
- MSText.fontSize = SuperHD ? 24 : 13;
- MSText.padding = SuperHD ? new RectOffset(5, 0, 10, 0) : new RectOffset(5, 5, 7, 4);
- MSText.margin = SuperHD ? new RectOffset(20, 0, 13, 7) : new RectOffset(10, 20, 6, 5);
- }
- void ConstructBackground()
- {
- MSBackground = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Quixel/Scripts/Images/Background.png");
- }
- void ConstructLogo()
- {
- MSLogo = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Quixel/Scripts/Images/M.png");
- BridgeLogo = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Quixel/Scripts/Images/B.png");
- MSLogoStyle = new GUIStyle();
- MSLogoStyle.margin = SuperHD ? new RectOffset(25, 0, 27, 33) : new RectOffset(15, 0, 15, 15);
- }
- void ConstructField()
- {
- MSField = new GUIStyle();
- MSField.normal.textColor = new Color(1.0f, 1.0f, 1.0f);
- MSField.normal.background = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Quixel/Scripts/Images/Field_Background.png");
- MSField.font = AssetDatabase.LoadAssetAtPath<Font>("Assets/Quixel/Scripts/Fonts/SourceSansPro-Regular.ttf");
- MSField.clipping = TextClipping.Clip;
- MSField.fontSize = SuperHD ? 24 : 13;
- MSField.padding = SuperHD ? new RectOffset(20, 0, 10, 0) : new RectOffset(10, 5, 7, 4);
- MSField.margin = SuperHD ? new RectOffset(0, 20, 13, 7) : new RectOffset(0, 10, 6, 5);
- }
- void ConstructCheckBox()
- {
- MSCheckBox = new GUIStyle();
- MSCheckBox.normal.background = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Quixel/Scripts/Images/CheckBoxOff.png");
- MSCheckBox.hover.background = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Quixel/Scripts/Images/CheckBoxHover.png");
- MSCheckBox.onNormal.background = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Quixel/Scripts/Images/CheckBoxOn.png");
- }
- void ConstructHelp()
- {
- MSHelpStyle = new GUIStyle();
- MSHelpStyle.normal.background = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Quixel/Scripts/Images/Help.png");
- MSHelpStyle.font = AssetDatabase.LoadAssetAtPath<Font>("Assets/Quixel/Scripts/Fonts/SourceSansPro-Regular.ttf");
- MSHelpStyle.margin = SuperHD ? new RectOffset(152, 20, 35, 15) : new RectOffset(102, 0, 16, 5);
- MSHelpStyle.padding = SuperHD ? new RectOffset(20, 20, 10, 10) : new RectOffset(10, 10, 5, 5);
- MSHelpStyle.fontSize = SuperHD ? 24 : 12;
- MSHelpStyle.normal.textColor = new Color(0.16796875f, 0.59375f, 0.9375f);
- }
- void ConstructNormalText()
- {
- MSNormalTextStyle = new GUIStyle();
- MSNormalTextStyle.normal.textColor = new Color(1.0f, 1.0f, 1.0f);
- MSNormalTextStyle.font = AssetDatabase.LoadAssetAtPath<Font>("Assets/Quixel/Scripts/Fonts/SourceSansPro-Regular.ttf");
- MSNormalTextStyle.fontSize = SuperHD ? 24 : 13;
- MSNormalTextStyle.padding = SuperHD ? new RectOffset(5, 0, 15, 15) : new RectOffset(5, 5, 7, 4);
- MSNormalTextStyle.margin = SuperHD ? new RectOffset(72, 0, 27, 10) : new RectOffset(37, 20, 13, 5);
- }
- void ConstructWarningText()
- {
- MSWarningTextStyle = new GUIStyle();
- MSWarningTextStyle.normal.textColor = new Color(1.0f, 1.0f, 0.0f);
- MSWarningTextStyle.font = AssetDatabase.LoadAssetAtPath<Font>("Assets/Quixel/Scripts/Fonts/SourceSansPro-Regular.ttf");
- MSWarningTextStyle.fontSize = SuperHD ? 24 : 13;
- MSWarningTextStyle.padding = SuperHD ? new RectOffset(5, 0, 15, 15) : new RectOffset(5, 5, 7, 4);
- MSWarningTextStyle.margin = SuperHD ? new RectOffset(10, 0, 27, 10) : new RectOffset(10, 0, 13, 5);
- MSWarningTextStyle.wordWrap = true;
- }
- void ConstructHeadingText()
- {
- MSHeadingTextStyle = new GUIStyle();
- MSHeadingTextStyle.normal.textColor = new Color(1.0f, 1.0f, 1.0f);
- MSHeadingTextStyle.font = AssetDatabase.LoadAssetAtPath<Font>("Assets/Quixel/Scripts/Fonts/SourceSansPro-Regular.ttf");
- MSHeadingTextStyle.fontSize = SuperHD ? 30 : 16;
- MSHeadingTextStyle.alignment = TextAnchor.MiddleCenter;
- }
- void ContrauctTabs()
- {
- MSTabsStyle = new GUIStyle();
- MSTabsStyle.font = AssetDatabase.LoadAssetAtPath<Font>("Assets/Quixel/Scripts/Fonts/SourceSansPro-Regular.ttf");
- MSTabsStyle.normal.background = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Quixel/Scripts/Images/Text_Background.png");
- MSTabsStyle.hover.background = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Quixel/Scripts/Images/Field_Background.png");
- MSTabsStyle.hover.textColor = new Color(1.0f, 1.0f, 1.0f);
- MSTabsStyle.active.background = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Quixel/Scripts/Images/Field_Background.png");
- MSTabsStyle.active.textColor = new Color(0.5f, 0.5f, 0.5f);
- MSTabsStyle.fontSize = SuperHD ? 26 : 15;
- MSTabsStyle.normal.textColor = new Color(1.0f, 1.0f, 1.0f);
- MSTabsStyle.margin = new RectOffset(5, 5, 10, 10);
- MSTabsStyle.alignment = TextAnchor.MiddleCenter;
- }
- void ContrauctStrechedWidth()
- {
- MSStrechedWidthStyle = new GUIStyle();
- MSStrechedWidthStyle.font = AssetDatabase.LoadAssetAtPath<Font>("Assets/Quixel/Scripts/Fonts/SourceSansPro-Regular.ttf");
- MSStrechedWidthStyle.normal.background = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Quixel/Scripts/Images/Text_Background.png");
- MSStrechedWidthStyle.hover.background = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Quixel/Scripts/Images/Field_Background.png");
- MSStrechedWidthStyle.hover.textColor = new Color(1.0f, 1.0f, 1.0f);
- MSStrechedWidthStyle.active.background = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Quixel/Scripts/Images/Field_Background.png");
- MSStrechedWidthStyle.active.textColor = new Color(0.5f, 0.5f, 0.5f);
- MSStrechedWidthStyle.fontSize = SuperHD ? 26 : 15;
- MSStrechedWidthStyle.normal.textColor = new Color(1.0f, 1.0f, 1.0f);
- MSStrechedWidthStyle.margin = new RectOffset(0, 0, 10, 10);
- MSStrechedWidthStyle.alignment = TextAnchor.MiddleCenter;
- }
- void InitStyle()
- {
- ConstructBackground();
- ConstructLogo();
- ConstructPopUp();
- ConstructText();
- ConstructField();
- ConstructCheckBox();
- ConstructHelp();
- ConstructNormalText();
- ConstructWarningText();
- ConstructHeadingText();
- ContrauctTabs();
- ContrauctStrechedWidth();
- }
- private void Update()
- {
- if (
- (dispType != dispTypeUpdate) ||
- (shaderType != shaderTypeUpdate) ||
- (texPack != texPackUpdate) ||
- (path != pathUpdate) ||
- (connection != connectionUpdate) ||
- (importResolution != importResolutionUpdate) ||
- (lodFadeMode != lodFadeModeUpdate) ||
- (setupCollision != setupCollisionUpdate) ||
- (applyToSelection != applyToSelectionUpdate) ||
- (addAssetToScene != addAssetToSceneUpdate) ||
- (importLODs != importLODsUpdate) ||
- (setupLOD != setupLODUpdate) ||
- (setupPrefabs != setupPrefabsUpdate) ||
- (decalBlendUpdate != decalBlend) ||
- (decalSizeUpdate != decalSize) ||
- (terrainMaterialNameUpdate != terrainMaterialName) ||
- (terrainMaterialPathUpdate != terrainMaterialPath) ||
- (importAllTextures != importAllTexturesUpdate) ||
- (tilingUpdate != tiling)
- )
- {
- SaveDefaults();
- }
- }
- }
- }
- #endif
|