[TASK] Initial commit with basic product setup
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
namespace Mapbox.Editor
|
||||
{
|
||||
using UnityEngine;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using UnityEditor;
|
||||
using Mapbox.Unity.Map;
|
||||
using Mapbox.Editor;
|
||||
using Mapbox.Unity.MeshGeneration.Modifiers;
|
||||
|
||||
public class ModelingSectionDrawer
|
||||
{
|
||||
private string objectId = "";
|
||||
bool showModeling
|
||||
{
|
||||
get
|
||||
{
|
||||
return EditorPrefs.GetBool(objectId + "VectorSubLayerProperties_showModeling");
|
||||
}
|
||||
set
|
||||
{
|
||||
EditorPrefs.SetBool(objectId + "VectorSubLayerProperties_showModeling", value);
|
||||
}
|
||||
}
|
||||
static float _lineHeight = EditorGUIUtility.singleLineHeight;
|
||||
|
||||
public void DrawUI(SerializedProperty subLayerCoreOptions, SerializedProperty layerProperty, VectorPrimitiveType primitiveTypeProp)
|
||||
{
|
||||
|
||||
objectId = layerProperty.serializedObject.targetObject.GetInstanceID().ToString();
|
||||
|
||||
EditorGUILayout.BeginVertical();
|
||||
showModeling = EditorGUILayout.Foldout(showModeling, new GUIContent { text = "Modeling", tooltip = "This section provides you with options to fine tune your meshes" });
|
||||
if (showModeling)
|
||||
{
|
||||
GUILayout.Space(-_lineHeight);
|
||||
EditorGUILayout.PropertyField(subLayerCoreOptions);
|
||||
|
||||
if (primitiveTypeProp == VectorPrimitiveType.Line)
|
||||
{
|
||||
GUILayout.Space(-_lineHeight);
|
||||
var lineGeometryOptions = layerProperty.FindPropertyRelative("lineGeometryOptions");
|
||||
EditorGUILayout.PropertyField(lineGeometryOptions);
|
||||
}
|
||||
|
||||
if (primitiveTypeProp != VectorPrimitiveType.Point && primitiveTypeProp != VectorPrimitiveType.Custom)
|
||||
{
|
||||
GUILayout.Space(-_lineHeight);
|
||||
var extrusionOptions = layerProperty.FindPropertyRelative("extrusionOptions");
|
||||
extrusionOptions.FindPropertyRelative("_selectedLayerName").stringValue = subLayerCoreOptions.FindPropertyRelative("layerName").stringValue;
|
||||
EditorGUILayout.PropertyField(extrusionOptions);
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
var snapToTerrainProperty = subLayerCoreOptions.FindPropertyRelative("snapToTerrain");
|
||||
snapToTerrainProperty.boolValue = EditorGUILayout.Toggle(snapToTerrainProperty.displayName, snapToTerrainProperty.boolValue);
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
EditorHelper.CheckForModifiedProperty(subLayerCoreOptions);
|
||||
}
|
||||
}
|
||||
|
||||
if (primitiveTypeProp != VectorPrimitiveType.Point)
|
||||
{
|
||||
EditorGUI.BeginChangeCheck();
|
||||
var combineMeshesProperty = subLayerCoreOptions.FindPropertyRelative("combineMeshes");
|
||||
combineMeshesProperty.boolValue = EditorGUILayout.Toggle(combineMeshesProperty.displayName, combineMeshesProperty.boolValue);
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
EditorHelper.CheckForModifiedProperty(subLayerCoreOptions);
|
||||
}
|
||||
}
|
||||
|
||||
if (primitiveTypeProp != VectorPrimitiveType.Point && primitiveTypeProp != VectorPrimitiveType.Custom)
|
||||
{
|
||||
GUILayout.Space(-_lineHeight);
|
||||
|
||||
var colliderOptionsProperty = layerProperty.FindPropertyRelative("colliderOptions");
|
||||
EditorGUI.BeginChangeCheck();
|
||||
EditorGUILayout.PropertyField(colliderOptionsProperty);
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
Debug.Log("Collider UI changed");
|
||||
EditorHelper.CheckForModifiedProperty(colliderOptionsProperty);
|
||||
}
|
||||
}
|
||||
}
|
||||
EditorGUILayout.EndVertical();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user