You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
3.1 KiB
93 lines
3.1 KiB
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();
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|