294 lines
12 KiB
C#
294 lines
12 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
|
|
#if UNITY_EDITOR
|
|
using UnityEditor;
|
|
|
|
[CustomEditor (typeof(moveCameraToDevice))]
|
|
[CanEditMultipleObjects]
|
|
public class moveCameraToDeviceEditor : Editor
|
|
{
|
|
SerializedProperty cameraMovementActive;
|
|
SerializedProperty cameraPosition;
|
|
SerializedProperty smoothCameraMovement;
|
|
SerializedProperty useFixedLerpMovement;
|
|
SerializedProperty fixedLerpMovementSpeed;
|
|
SerializedProperty cameraMovementSpeedThirdPerson;
|
|
SerializedProperty cameraMovementSpeedFirstPerson;
|
|
SerializedProperty secondMoveCameraToDevice;
|
|
|
|
SerializedProperty unlockCursor;
|
|
|
|
SerializedProperty ignoreHideCursorOnClick;
|
|
|
|
SerializedProperty setNewMouseCursorControllerSpeed;
|
|
SerializedProperty newMouseCursroControllerSpeed;
|
|
|
|
SerializedProperty disablePlayerMeshGameObject;
|
|
SerializedProperty enablePlayerMeshGameObjectIfFirstPersonActive;
|
|
|
|
SerializedProperty ignoreFBAActiveIfDisablePlayerMesh;
|
|
|
|
SerializedProperty ignoreCameraPositionAdjusmentOnFBA;
|
|
|
|
SerializedProperty customAlignPlayerTransform;
|
|
|
|
SerializedProperty alignPlayerWithCameraPositionOnStopUseDevice;
|
|
SerializedProperty alignPlayerWithCameraPositionOnStartUseDevice;
|
|
|
|
SerializedProperty alignPlayerWithCameraRotationOnStartUseDevice;
|
|
SerializedProperty alignPlayerWithCameraRotationOnStopUseDevice;
|
|
|
|
SerializedProperty resetPlayerCameraDirection;
|
|
|
|
SerializedProperty disableAllPlayerHUD;
|
|
SerializedProperty disableSecondaryPlayerHUD;
|
|
SerializedProperty disableTouchControls;
|
|
|
|
SerializedProperty disableAllDynamicUIElements;
|
|
|
|
SerializedProperty keepWeaponsIfCarrying;
|
|
SerializedProperty drawWeaponsIfPreviouslyCarrying;
|
|
SerializedProperty keepOnlyIfPlayerIsOnFirstPerson;
|
|
SerializedProperty disableWeaponsDirectlyOnStart;
|
|
SerializedProperty disableWeaponsCamera;
|
|
SerializedProperty carryWeaponOnLowerPositionActive;
|
|
SerializedProperty setPlayerCameraRotationOnExit;
|
|
SerializedProperty playerCameraTransformThirdPerson;
|
|
SerializedProperty playerPivotTransformThirdPerson;
|
|
SerializedProperty playerCameraTransformFirstPerson;
|
|
SerializedProperty playerPivotTransformFirstPerson;
|
|
|
|
SerializedProperty disableInteractionTouchButtonOnUsingDevice;
|
|
|
|
SerializedProperty ignoreMoveCameraFunctionEnabled;
|
|
|
|
SerializedProperty ignoreMeleeWeaponCheck;
|
|
|
|
|
|
SerializedProperty showGizmo;
|
|
SerializedProperty gizmoRadius;
|
|
SerializedProperty gizmoLabelColor;
|
|
SerializedProperty gizmoArrowLength;
|
|
SerializedProperty gizmoArrowLineLength;
|
|
SerializedProperty gizmoArrowAngle;
|
|
SerializedProperty gizmoArrowColor;
|
|
|
|
moveCameraToDevice manager;
|
|
GUIStyle style = new GUIStyle ();
|
|
|
|
void OnEnable ()
|
|
{
|
|
cameraMovementActive = serializedObject.FindProperty ("cameraMovementActive");
|
|
cameraPosition = serializedObject.FindProperty ("cameraPosition");
|
|
smoothCameraMovement = serializedObject.FindProperty ("smoothCameraMovement");
|
|
useFixedLerpMovement = serializedObject.FindProperty ("useFixedLerpMovement");
|
|
fixedLerpMovementSpeed = serializedObject.FindProperty ("fixedLerpMovementSpeed");
|
|
cameraMovementSpeedThirdPerson = serializedObject.FindProperty ("cameraMovementSpeedThirdPerson");
|
|
cameraMovementSpeedFirstPerson = serializedObject.FindProperty ("cameraMovementSpeedFirstPerson");
|
|
secondMoveCameraToDevice = serializedObject.FindProperty ("secondMoveCameraToDevice");
|
|
|
|
unlockCursor = serializedObject.FindProperty ("unlockCursor");
|
|
|
|
ignoreHideCursorOnClick = serializedObject.FindProperty ("ignoreHideCursorOnClick");
|
|
|
|
setNewMouseCursorControllerSpeed = serializedObject.FindProperty ("setNewMouseCursorControllerSpeed");
|
|
newMouseCursroControllerSpeed = serializedObject.FindProperty ("newMouseCursroControllerSpeed");
|
|
|
|
disablePlayerMeshGameObject = serializedObject.FindProperty ("disablePlayerMeshGameObject");
|
|
enablePlayerMeshGameObjectIfFirstPersonActive = serializedObject.FindProperty ("enablePlayerMeshGameObjectIfFirstPersonActive");
|
|
|
|
ignoreFBAActiveIfDisablePlayerMesh = serializedObject.FindProperty ("ignoreFBAActiveIfDisablePlayerMesh");
|
|
|
|
ignoreCameraPositionAdjusmentOnFBA = serializedObject.FindProperty ("ignoreCameraPositionAdjusmentOnFBA");
|
|
|
|
customAlignPlayerTransform = serializedObject.FindProperty ("customAlignPlayerTransform");
|
|
|
|
alignPlayerWithCameraPositionOnStopUseDevice = serializedObject.FindProperty ("alignPlayerWithCameraPositionOnStopUseDevice");
|
|
|
|
alignPlayerWithCameraPositionOnStartUseDevice = serializedObject.FindProperty ("alignPlayerWithCameraPositionOnStartUseDevice");
|
|
|
|
alignPlayerWithCameraRotationOnStartUseDevice = serializedObject.FindProperty ("alignPlayerWithCameraRotationOnStartUseDevice");
|
|
alignPlayerWithCameraRotationOnStopUseDevice = serializedObject.FindProperty ("alignPlayerWithCameraRotationOnStopUseDevice");
|
|
|
|
resetPlayerCameraDirection = serializedObject.FindProperty ("resetPlayerCameraDirection");
|
|
|
|
disableAllPlayerHUD = serializedObject.FindProperty ("disableAllPlayerHUD");
|
|
disableSecondaryPlayerHUD = serializedObject.FindProperty ("disableSecondaryPlayerHUD");
|
|
disableTouchControls = serializedObject.FindProperty ("disableTouchControls");
|
|
|
|
disableAllDynamicUIElements = serializedObject.FindProperty ("disableAllDynamicUIElements");
|
|
|
|
keepWeaponsIfCarrying = serializedObject.FindProperty ("keepWeaponsIfCarrying");
|
|
drawWeaponsIfPreviouslyCarrying = serializedObject.FindProperty ("drawWeaponsIfPreviouslyCarrying");
|
|
keepOnlyIfPlayerIsOnFirstPerson = serializedObject.FindProperty ("keepOnlyIfPlayerIsOnFirstPerson");
|
|
disableWeaponsDirectlyOnStart = serializedObject.FindProperty ("disableWeaponsDirectlyOnStart");
|
|
disableWeaponsCamera = serializedObject.FindProperty ("disableWeaponsCamera");
|
|
carryWeaponOnLowerPositionActive = serializedObject.FindProperty ("carryWeaponOnLowerPositionActive");
|
|
setPlayerCameraRotationOnExit = serializedObject.FindProperty ("setPlayerCameraRotationOnExit");
|
|
playerCameraTransformThirdPerson = serializedObject.FindProperty ("playerCameraTransformThirdPerson");
|
|
playerPivotTransformThirdPerson = serializedObject.FindProperty ("playerPivotTransformThirdPerson");
|
|
playerCameraTransformFirstPerson = serializedObject.FindProperty ("playerCameraTransformFirstPerson");
|
|
playerPivotTransformFirstPerson = serializedObject.FindProperty ("playerPivotTransformFirstPerson");
|
|
|
|
disableInteractionTouchButtonOnUsingDevice = serializedObject.FindProperty ("disableInteractionTouchButtonOnUsingDevice");
|
|
|
|
ignoreMoveCameraFunctionEnabled = serializedObject.FindProperty ("ignoreMoveCameraFunctionEnabled");
|
|
|
|
ignoreMeleeWeaponCheck = serializedObject.FindProperty ("ignoreMeleeWeaponCheck");
|
|
|
|
showGizmo = serializedObject.FindProperty ("showGizmo");
|
|
gizmoRadius = serializedObject.FindProperty ("gizmoRadius");
|
|
gizmoLabelColor = serializedObject.FindProperty ("gizmoLabelColor");
|
|
gizmoArrowLength = serializedObject.FindProperty ("gizmoArrowLength");
|
|
gizmoArrowLineLength = serializedObject.FindProperty ("gizmoArrowLineLength");
|
|
gizmoArrowAngle = serializedObject.FindProperty ("gizmoArrowAngle");
|
|
gizmoArrowColor = serializedObject.FindProperty ("gizmoArrowColor");
|
|
|
|
manager = (moveCameraToDevice)target;
|
|
}
|
|
|
|
void OnSceneGUI ()
|
|
{
|
|
if (!Application.isPlaying) {
|
|
if (manager.showGizmo) {
|
|
style.normal.textColor = manager.gizmoLabelColor;
|
|
style.alignment = TextAnchor.MiddleCenter;
|
|
|
|
if (manager.cameraPosition != null) {
|
|
Handles.Label (manager.cameraPosition.transform.position, "Camera \n position", style);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public override void OnInspectorGUI ()
|
|
{
|
|
GUILayout.BeginVertical (GUILayout.Height (30));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Main Settings", "window");
|
|
EditorGUILayout.PropertyField (cameraMovementActive);
|
|
EditorGUILayout.PropertyField (cameraPosition);
|
|
EditorGUILayout.PropertyField (smoothCameraMovement);
|
|
if (smoothCameraMovement.boolValue) {
|
|
EditorGUILayout.PropertyField (useFixedLerpMovement);
|
|
if (useFixedLerpMovement.boolValue) {
|
|
EditorGUILayout.PropertyField (fixedLerpMovementSpeed);
|
|
} else {
|
|
EditorGUILayout.PropertyField (cameraMovementSpeedThirdPerson);
|
|
EditorGUILayout.PropertyField (cameraMovementSpeedFirstPerson);
|
|
}
|
|
}
|
|
|
|
EditorGUILayout.PropertyField (ignoreMoveCameraFunctionEnabled);
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Other Settings", "window");
|
|
EditorGUILayout.PropertyField (secondMoveCameraToDevice);
|
|
|
|
EditorGUILayout.PropertyField (disablePlayerMeshGameObject);
|
|
EditorGUILayout.PropertyField (enablePlayerMeshGameObjectIfFirstPersonActive);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (ignoreFBAActiveIfDisablePlayerMesh);
|
|
|
|
EditorGUILayout.PropertyField (ignoreCameraPositionAdjusmentOnFBA);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (unlockCursor);
|
|
if (unlockCursor.boolValue) {
|
|
EditorGUILayout.PropertyField (ignoreHideCursorOnClick);
|
|
}
|
|
EditorGUILayout.PropertyField (setNewMouseCursorControllerSpeed);
|
|
if (setNewMouseCursorControllerSpeed.boolValue) {
|
|
EditorGUILayout.PropertyField (newMouseCursroControllerSpeed);
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (alignPlayerWithCameraPositionOnStartUseDevice);
|
|
EditorGUILayout.PropertyField (alignPlayerWithCameraPositionOnStopUseDevice);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (alignPlayerWithCameraRotationOnStartUseDevice);
|
|
EditorGUILayout.PropertyField (alignPlayerWithCameraRotationOnStopUseDevice);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (customAlignPlayerTransform);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (resetPlayerCameraDirection);
|
|
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("HUD Settings", "window");
|
|
EditorGUILayout.PropertyField (disableAllPlayerHUD);
|
|
EditorGUILayout.PropertyField (disableSecondaryPlayerHUD);
|
|
EditorGUILayout.PropertyField (disableAllDynamicUIElements);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (disableTouchControls);
|
|
EditorGUILayout.PropertyField (disableInteractionTouchButtonOnUsingDevice);
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Weapons Settings", "window");
|
|
EditorGUILayout.PropertyField (keepWeaponsIfCarrying);
|
|
if (keepWeaponsIfCarrying.boolValue) {
|
|
EditorGUILayout.PropertyField (drawWeaponsIfPreviouslyCarrying);
|
|
EditorGUILayout.PropertyField (keepOnlyIfPlayerIsOnFirstPerson);
|
|
EditorGUILayout.PropertyField (disableWeaponsDirectlyOnStart);
|
|
}
|
|
EditorGUILayout.PropertyField (disableWeaponsCamera);
|
|
EditorGUILayout.PropertyField (carryWeaponOnLowerPositionActive);
|
|
EditorGUILayout.PropertyField (ignoreMeleeWeaponCheck);
|
|
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
GUILayout.BeginVertical ("Camera Rotation On Exit Settings", "window");
|
|
EditorGUILayout.PropertyField (setPlayerCameraRotationOnExit);
|
|
if (setPlayerCameraRotationOnExit.boolValue) {
|
|
EditorGUILayout.PropertyField (playerCameraTransformThirdPerson);
|
|
EditorGUILayout.PropertyField (playerPivotTransformThirdPerson);
|
|
EditorGUILayout.PropertyField (playerCameraTransformFirstPerson);
|
|
EditorGUILayout.PropertyField (playerPivotTransformFirstPerson);
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Gizmo Settings", "window");
|
|
EditorGUILayout.PropertyField (showGizmo);
|
|
if (showGizmo.boolValue) {
|
|
EditorGUILayout.PropertyField (gizmoRadius);
|
|
EditorGUILayout.PropertyField (gizmoLabelColor);
|
|
EditorGUILayout.PropertyField (gizmoArrowLength);
|
|
EditorGUILayout.PropertyField (gizmoArrowLineLength);
|
|
EditorGUILayout.PropertyField (gizmoArrowAngle);
|
|
EditorGUILayout.PropertyField (gizmoArrowColor);
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.EndVertical ();
|
|
if (GUI.changed) {
|
|
serializedObject.ApplyModifiedProperties ();
|
|
}
|
|
}
|
|
}
|
|
#endif |