Ejemplo n.º 1
0
    void DestructionTypesUpdate(Destruction2DController script)
    {
        Destruction2DVisuals visuals = script.visuals;

        switch (script.destructionType)
        {
        case Destruction2DController.DestructionType.LinearCut:
            foldout = EditorGUILayout.Foldout(foldout, "Linear Cut");
            if (foldout)
            {
                EditorLinearCut(script.linearCutControlelrObject);
            }
            break;

        case Destruction2DController.DestructionType.ComplexCut:
            foldout = EditorGUILayout.Foldout(foldout, "Complex Cut");
            if (foldout)
            {
                EditorComplexCut(script.complexCutControllerObject);
                visuals.minVertexDistance = EditorGUILayout.FloatField("Min Vertex Size", visuals.minVertexDistance);
            }
            break;

        case Destruction2DController.DestructionType.Polygon:
            foldout = EditorGUILayout.Foldout(foldout, "Polygon Cut");
            if (foldout)
            {
                EditorPolygon(script.polygonControllerObject);
                visuals.minVertexDistance = EditorGUILayout.FloatField("Min Vertex Size", visuals.minVertexDistance);
            }
            break;

        case Destruction2DController.DestructionType.PolygonBrush:
            foldout = EditorGUILayout.Foldout(foldout, "Polygon Brush");
            if (foldout)
            {
                EditorPolygonBrush(script.polygonBrushControllerObject);
                visuals.minVertexDistance = EditorGUILayout.FloatField("Min Vertext Size", visuals.minVertexDistance);
            }
            break;

        case Destruction2DController.DestructionType.ComplexBrush:
            foldout = EditorGUILayout.Foldout(foldout, "Complex Brush");
            if (foldout)
            {
                EditorComplexBrush(script.complexBrushControllerObject);
                visuals.minVertexDistance = EditorGUILayout.FloatField("Min Vertex Size", visuals.minVertexDistance);
            }
            break;
        }
    }
Ejemplo n.º 2
0
    override public void OnInspectorGUI()
    {
        Destruction2DController script = target as Destruction2DController;

        script.destructionType = (Destruction2DController.DestructionType)EditorGUILayout.EnumPopup("Destruction Type", script.destructionType);
        script.destructionLayer.SetLayerType((Destruction2DLayerType)EditorGUILayout.EnumPopup("Destruction Layer", script.destructionLayer.GetLayerType()));

        EditorGUI.indentLevel = EditorGUI.indentLevel + 2;

        if (script.destructionLayer.GetLayerType() == Destruction2DLayerType.Selected)
        {
            for (int i = 0; i < 8; i++)
            {
                script.destructionLayer.SetLayer(i, EditorGUILayout.Toggle("Layer " + (i + 1), script.destructionLayer.GetLayerState(i)));
            }
        }

        EditorGUI.indentLevel = EditorGUI.indentLevel - 2;

        visualsFoldout = EditorGUILayout.Foldout(visualsFoldout, "Visuals");
        if (visualsFoldout)
        {
            EditorVisuals(script.visuals);
        }

        DestructionTypesUpdate(script);

        if (Destruction2DController.DestructionType.Polygon == script.destructionType || Destruction2DController.DestructionType.Modifier == script.destructionType)
        {
            modifiersFoldout = EditorGUILayout.Foldout(modifiersFoldout, "Mofidiers");
            if (modifiersFoldout)
            {
                EditorModifier(script.modifierControllerObject);
            }
        }
    }
Ejemplo n.º 3
0
 void Awake()
 {
     instance = this;
 }