Exemple #1
0
    static public Slicer2DSettingsProfile GetProfile()
    {
        if (profile == null)
        {
            profile = Resources.Load("Profiles/Default") as Slicer2DSettingsProfile;
        }

        return(profile);
    }
Exemple #2
0
    public static int GetExplosionSlices()
    {
        Slicer2DSettingsProfile profile = GetProfile();

        if (profile == null)
        {
            Debug.LogWarning("Profile Settings Are Missing");
            return(2);
        }

        return(profile.explosionPieces);
    }
Exemple #3
0
    public static RenderingPipeline GetRenderingPipeline()
    {
        Slicer2DSettingsProfile profile = GetProfile();

        if (profile == null)
        {
            Debug.LogWarning("Profile Settings Are Missing");
            return(RenderingPipeline.Universal);
        }


        return(profile.renderingPipeline);
    }
    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 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();
        }
    }
    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);

            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;
            }

            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);
        }
    }
Exemple #8
0
    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);
        }
    }
Exemple #9
0
    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);
        }
    }
Exemple #10
0
    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);
        }
    }
Exemple #11
0
    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);
        }
    }