114 lines
7.4 KiB
C#
114 lines
7.4 KiB
C#
using PA_DronePack;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
//[CanEditMultipleObjects]
|
|
[CustomEditor(typeof(UAVController))]
|
|
public class UAVControllerEditor : Editor
|
|
{
|
|
private UAVController dcoScript;
|
|
private bool fold;
|
|
public void OnEnable()
|
|
{
|
|
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0011: Expected O, but got Unknown
|
|
dcoScript = (UAVController)base.target;
|
|
}
|
|
|
|
public override void OnInspectorGUI()
|
|
{
|
|
GUI.enabled = false;
|
|
EditorGUILayout.ObjectField("Script", MonoScript.FromMonoBehaviour((MonoBehaviour)(object)dcoScript), typeof(DroneController), false);
|
|
GUI.enabled = true;
|
|
EditorGUILayout.LabelField("Movement Values", EditorStyles.boldLabel);
|
|
dcoScript.forwardSpeed = EditorGUILayout.FloatField(new GUIContent("Forward Speed", "sets the drone's max forward speed"), dcoScript.forwardSpeed);
|
|
dcoScript.backwardSpeed = EditorGUILayout.FloatField(new GUIContent("Backward Speed", "sets the drone's max backward speed"), dcoScript.backwardSpeed);
|
|
GUILayout.Space(10f);
|
|
dcoScript.rightSpeed = EditorGUILayout.FloatField(new GUIContent("Strafe Right Speed", "sets the drone's max right strafe speed"), dcoScript.rightSpeed);
|
|
dcoScript.leftSpeed = EditorGUILayout.FloatField(new GUIContent("Strafe Left Speed", "sets the drone's max left strafe speed"), dcoScript.leftSpeed);
|
|
GUILayout.Space(10f);
|
|
dcoScript.riseSpeed = EditorGUILayout.FloatField(new GUIContent("Height Rise Speed", "sets the drone's max rise speed"), dcoScript.riseSpeed);
|
|
dcoScript.lowerSpeed = EditorGUILayout.FloatField(new GUIContent("Height Lower Speed", "sets the drone's max lower speed"), dcoScript.lowerSpeed);
|
|
GUILayout.Space(10f);
|
|
dcoScript.acceleration = EditorGUILayout.Slider(new GUIContent("¼ÓËÙ¶È", "how fast the drone speeds up"), dcoScript.acceleration, 0.1f, 1f);
|
|
dcoScript.deceleration = EditorGUILayout.Slider(new GUIContent("¼õËÙ¶È", "how fast the drone slows down"), dcoScript.deceleration, 0.1f, 1f);
|
|
dcoScript.stability = EditorGUILayout.Slider(new GUIContent("Îȶ¨ÐÔ", "how eaisly the drone is affected by outside forces"), dcoScript.stability, 0f, 1f);
|
|
dcoScript.turnSensitivty = EditorGUILayout.Slider(new GUIContent("ת¶¯ÁéÃô¶È", "how fast the drone rotates"), dcoScript.turnSensitivty, 0.1f, 5f);
|
|
GUILayout.Space(10f);
|
|
dcoScript.motorOn = EditorGUILayout.Toggle(new GUIContent("ÎÞÈË»úÒýÇæÊÇ·ñÆô¶¯", "states whether or not the drone active on start"), dcoScript.motorOn);
|
|
dcoScript.mode_fly_by_propeller = EditorGUILayout.Toggle(new GUIContent("¸÷ÐýÒíµ¥¿ØÄ£Ê½", "states whether or not the drone use single model"), dcoScript.mode_fly_by_propeller);
|
|
//EditorGUILayout.PropertyField(base.serializedObject.FindProperty("single_propeller_mode"), true);
|
|
dcoScript.headless = EditorGUILayout.Toggle(new GUIContent("Use Headless Mode?", "makes the drone move relative to an external compass"), dcoScript.headless);
|
|
if (dcoScript.headless)
|
|
{
|
|
dcoScript.compass = EditorGUILayout.ObjectField(new GUIContent("Headless Compass", "the external compass used to control the drone's flight direction"), dcoScript.compass, typeof(Transform), true) as Transform;
|
|
}
|
|
else
|
|
{
|
|
GUILayout.Space(18f);
|
|
}
|
|
|
|
//GUILayout.Space(10f);
|
|
//EditorGUILayout.HelpBox("Download the Full version of this DronePack to Unlock more customization options!", MessageType.Info);
|
|
fold = EditorGUILayout.BeginFoldoutHeaderGroup(fold, "Other Opitions");
|
|
EditorGUILayout.EndFoldoutHeaderGroup();
|
|
if (fold)
|
|
{
|
|
EditorGUI.BeginDisabledGroup(disabled: false);
|
|
EditorGUILayout.LabelField("Appearance", EditorStyles.boldLabel);
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("propellers"), true);
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("propSpinSpeed"));
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("propStopSpeed"));
|
|
|
|
if (dcoScript.headless)
|
|
{
|
|
EditorGUI.BeginDisabledGroup(disabled: true);
|
|
EditorGUILayout.TextField(new GUIContent("Front Tilt", "tilt points disabled in headless mode"), "Tilt Points disabled in Headless mode...");
|
|
EditorGUILayout.TextField(new GUIContent("Back Tilt", "tilt points disabled in headless mode"), "...");
|
|
EditorGUILayout.TextField(new GUIContent("Right Tilt", "tilt points disabled in headless mode"), "...");
|
|
EditorGUILayout.TextField(new GUIContent("Left Tilt", "tilt points disabled in headless mode"), "...");
|
|
EditorGUI.EndDisabledGroup();
|
|
}
|
|
else
|
|
{
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("frontTilt"));
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("backTilt"));
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("rightTilt"));
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("leftTilt"));
|
|
}
|
|
|
|
GUILayout.Space(10f);
|
|
EditorGUILayout.LabelField("Collision Settings", EditorStyles.boldLabel);
|
|
dcoScript.fallAfterCollision = EditorGUILayout.Toggle(new GUIContent("Fall After Collision?", "set whether or not the drone falls after a large impact"), dcoScript.fallAfterCollision);
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("fallMinimumForce"));
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("sparkMinimumForce"));
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("sparkPrefab"));
|
|
GUILayout.Space(10f);
|
|
EditorGUILayout.LabelField("Sound Effects", EditorStyles.boldLabel);
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("flyingSound"));
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("sparkSound"));
|
|
GUILayout.Space(10f);
|
|
EditorGUILayout.LabelField("Read Only Variables", EditorStyles.boldLabel);
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("collisionMagnitude"));
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("liftForce"));
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("driveForce"));
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("strafeForce"));
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("turnForce"));
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("groundDistance"));
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("uprightAngleDistance"));
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("calPropSpeed"));
|
|
EditorGUILayout.PropertyField(base.serializedObject.FindProperty("startRotation"), true);
|
|
EditorGUI.EndDisabledGroup();
|
|
}
|
|
|
|
if (GUI.changed)
|
|
{
|
|
base.serializedObject.ApplyModifiedProperties();
|
|
EditorUtility.SetDirty((UnityEngine.Object)(object)dcoScript);
|
|
EditorUtility.SetDirty(((Component)(object)dcoScript).gameObject);
|
|
}
|
|
}
|
|
}
|