static public Slicer2DSettingsProfile GetProfile() { if (profile == null) { profile = Resources.Load("Profiles/Default") as Slicer2DSettingsProfile; } return(profile); }
public static int GetExplosionSlices() { Slicer2DSettingsProfile profile = GetProfile(); if (profile == null) { Debug.LogWarning("Profile Settings Are Missing"); return(2); } return(profile.explosionPieces); }
public static RenderingPipeline GetRenderingPipeline() { Slicer2DSettingsProfile profile = GetProfile(); if (profile == null) { Debug.LogWarning("Profile Settings Are Missing"); return(RenderingPipeline.Universal); } return(profile.renderingPipeline); }
void Preferences() { Slicer2DSettingsProfile profile = Slicer2DSettings.GetProfile(); if (profile) { profile.renderingPipeline = (Slicer2DSettings.RenderingPipeline)EditorGUILayout.EnumPopup("Rendering Pipeline", profile.renderingPipeline); profile.garbageCollector = EditorGUILayout.Toggle("Garbage Collector", profile.garbageCollector); if (profile.garbageCollector) { profile.garbageCollectorSize = EditorGUILayout.FloatField("Garbage Collector Size", profile.garbageCollectorSize); } profile.explosionPieces = (int)EditorGUILayout.Slider("Explosion Pieces", profile.explosionPieces, 1, 30); profile.componentsCopy = (Slicer2DSettings.InstantiationMethod)EditorGUILayout.EnumPopup("Instatiation Method", profile.componentsCopy); profile.triangulation = (Slicer2DSettings.Triangulation)EditorGUILayout.EnumPopup("Triangulation", profile.triangulation); profile.batching = (Slicer2DSettings.Batching)EditorGUILayout.EnumPopup("Batching", profile.batching); profile.centerOfSliceTransform = (Slicer2DSettings.CenterOfSliceTransform)EditorGUILayout.EnumPopup("Center Of Slice", profile.centerOfSliceTransform); if (GUILayout.Button("Default Settings")) { profile.garbageCollector = true; profile.garbageCollectorSize = 0.005f; profile.componentsCopy = Slicer2DSettings.InstantiationMethod.Default; profile.triangulation = Slicer2DSettings.Triangulation.Default; profile.batching = Slicer2DSettings.Batching.Default; } if (GUI.changed && EditorApplication.isPlaying == false) { EditorUtility.SetDirty(profile); } EditorGUILayout.HelpBox("Settings marked as 'default' will use local component setting", MessageType.Info); EditorGUILayout.HelpBox("Garbage Collector: When enabled, very small unuseful slices are removed", MessageType.None); EditorGUILayout.HelpBox("Instatiation Method: Performance mode would increase performance about 25%, however cannot be used in certain cases", MessageType.None); EditorGUILayout.HelpBox("Triangulation: The more reliable triangulation method, the slower most likely it performs. Simple shapes could use less complicated triangulation", MessageType.None); EditorGUILayout.HelpBox("Batching: when enabled, sliced parts of the object will use same material instance as it's origin (Improves Performance)", MessageType.None); } else { EditorGUILayout.HelpBox("Slicer2D Settings Profile Not Found!", MessageType.Error); } }
public void SetTriangulation(Slicer2D script) { Slicer2DSettingsProfile profile = Slicer2DSettings.GetProfile(); if (profile == null || profile.triangulation == Slicer2DSettings.Triangulation.Default) { script.materialSettings.triangulation = (PolygonTriangulator2D.Triangulation)EditorGUILayout.EnumPopup("Triangulation", script.materialSettings.triangulation); } else { EditorGUI.BeginDisabledGroup(true); EditorGUILayout.EnumPopup("Triangulation", Slicer2DSettings.GetTriangulation(script.materialSettings.triangulation)); EditorGUI.EndDisabledGroup(); } }
public void SetBatching(Slicer2D script) { Slicer2DSettingsProfile profile = Slicer2DSettings.GetProfile(); if (profile == null || profile.batching == Slicer2DSettings.Batching.Default) { script.materialSettings.batchMaterial = EditorGUILayout.Toggle("Batch Material", script.materialSettings.batchMaterial); } else { EditorGUI.BeginDisabledGroup(true); EditorGUILayout.Toggle("Batch Material", Slicer2DSettings.GetBatching(script.materialSettings.batchMaterial)); EditorGUI.EndDisabledGroup(); } }
public void SetComponentsCopy(Slicer2D script) { Slicer2DSettingsProfile profile = Slicer2DSettings.GetProfile(); if (profile == null || profile.componentsCopy == Slicer2DSettings.InstantiationMethod.Default) { script.instantiateMethod = (Slicer2D.InstantiationMethod)EditorGUILayout.EnumPopup("Instantiation Method", script.instantiateMethod); } else { EditorGUI.BeginDisabledGroup(true); EditorGUILayout.EnumPopup("Instantiation", Slicer2DSettings.GetComponentsCopy(script.instantiateMethod)); EditorGUI.EndDisabledGroup(); } }
public static float GetGarbageCollector() { Slicer2DSettingsProfile profile = GetProfile(); if (profile == null) { Debug.LogWarning("Profile Settings Are Missing"); return(-1); } if (profile.garbageCollector) { return(profile.garbageCollectorSize); } else { return(-1); } }
public static PolygonTriangulator2D.Triangulation GetTriangulation(PolygonTriangulator2D.Triangulation setting) { Slicer2DSettingsProfile profile = GetProfile(); if (profile == null) { Debug.LogWarning("Profile Settings Are Missing"); return(setting); } if (profile.triangulation == Triangulation.Default) { return(setting); } else { int triangulationID = (int)profile.triangulation - 1; return((PolygonTriangulator2D.Triangulation)triangulationID); } }
public static Slicer2D.CenterOfSliceTransform GetCenterOfSliceTransform(Slicer2D.CenterOfSliceTransform setting) { Slicer2DSettingsProfile profile = GetProfile(); if (profile == null) { Debug.LogWarning("Profile Settings Are Missing"); return(setting); } if (profile.centerOfSliceTransform == CenterOfSliceTransform.Default) { return(setting); } else { int settingID = (int)profile.centerOfSliceTransform - 1; return((Slicer2D.CenterOfSliceTransform)settingID); } }
public static Slicer2D.InstantiationMethod GetComponentsCopy(Slicer2D.InstantiationMethod setting) { Slicer2DSettingsProfile profile = GetProfile(); if (profile == null) { Debug.LogWarning("Profile Settings Are Missing"); return(setting); } if (profile.componentsCopy == InstantiationMethod.Default) { return(setting); } else { int copyID = (int)profile.componentsCopy - 1; return((Slicer2D.InstantiationMethod)copyID); } }
public static bool GetBatching(bool setting) { Slicer2DSettingsProfile profile = GetProfile(); if (profile == null) { Debug.LogWarning("Profile Settings Are Missing"); return(setting); } switch (profile.batching) { case Batching.On: return(true); case Batching.Off: return(false); default: return(setting); } }