3323 lines
158 KiB
C#
3323 lines
158 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
|
|
#if UNITY_EDITOR
|
|
using UnityEditor;
|
|
|
|
[CustomEditor (typeof (IKWeaponSystem))]
|
|
public class IKWeaponSystemEditor : Editor
|
|
{
|
|
SerializedProperty weaponEnabled;
|
|
SerializedProperty currentWeapon;
|
|
SerializedProperty carrying;
|
|
SerializedProperty aiming;
|
|
SerializedProperty moving;
|
|
|
|
SerializedProperty actionActive;
|
|
|
|
SerializedProperty IKPausedOnHandsActive;
|
|
|
|
SerializedProperty surfaceDetected;
|
|
SerializedProperty weaponInRunPosition;
|
|
SerializedProperty jumpingOnProcess;
|
|
SerializedProperty playerOnJumpStart;
|
|
SerializedProperty playerOnJumpEnd;
|
|
SerializedProperty crouchingActive;
|
|
SerializedProperty reloadingWeapon;
|
|
SerializedProperty weaponUpdateActive;
|
|
SerializedProperty usingDualWeapon;
|
|
SerializedProperty disablingDualWeapon;
|
|
SerializedProperty usingRightHandDualWeapon;
|
|
SerializedProperty weaponConfiguredAsDualWeapon;
|
|
SerializedProperty linkedDualWeaponName;
|
|
SerializedProperty showSettings;
|
|
SerializedProperty showElementSettings;
|
|
SerializedProperty showPrefabSettings;
|
|
SerializedProperty weaponGameObject;
|
|
SerializedProperty extraRotation;
|
|
SerializedProperty aimFovValue;
|
|
SerializedProperty aimFovSpeed;
|
|
SerializedProperty hideWeaponIfKeptInThirdPerson;
|
|
SerializedProperty canBeDropped;
|
|
SerializedProperty canUnlockCursor;
|
|
SerializedProperty canUnlockCursorOnThirdPerson;
|
|
SerializedProperty disableHUDWhenCursorUnlocked;
|
|
SerializedProperty weaponSystemManager;
|
|
SerializedProperty weaponsManager;
|
|
SerializedProperty weaponTransform;
|
|
SerializedProperty layer;
|
|
SerializedProperty weaponUsesAttachment;
|
|
SerializedProperty mainWeaponAttachmentSystem;
|
|
|
|
SerializedProperty showThirdPersonSettings;
|
|
SerializedProperty thirdPersonWeaponInfo;
|
|
SerializedProperty thirdPersonUseSwayInfo;
|
|
SerializedProperty showSwaySettings;
|
|
SerializedProperty thirdPersonUseRunPosition;
|
|
SerializedProperty thirdPersonUseRunSwayInfo;
|
|
SerializedProperty showWalkSwaySettings;
|
|
SerializedProperty thirdPersonSwayInfo;
|
|
SerializedProperty showRunSwaySettings;
|
|
|
|
SerializedProperty showFullBodyAwarernessSettings;
|
|
|
|
SerializedProperty runThirdPersonSwayInfo;
|
|
SerializedProperty showFirstPersonSettings;
|
|
SerializedProperty firstPersonWeaponInfo;
|
|
SerializedProperty firstPersonUseSwayInfo;
|
|
SerializedProperty firstPersonUseRunPosition;
|
|
SerializedProperty firstPersonUseRunSwayInfo;
|
|
SerializedProperty firstPersonSwayInfo;
|
|
SerializedProperty runFirstPersonSwayInfo;
|
|
SerializedProperty showIdleSettings;
|
|
SerializedProperty useWeaponIdle;
|
|
SerializedProperty timeToActiveWeaponIdle;
|
|
SerializedProperty idlePositionAmount;
|
|
SerializedProperty idleRotationAmount;
|
|
SerializedProperty idleSpeed;
|
|
SerializedProperty playerMoving;
|
|
SerializedProperty idleActive;
|
|
|
|
SerializedProperty showShotShakeSettings;
|
|
|
|
SerializedProperty showShotCameraNoiseSettings;
|
|
|
|
SerializedProperty sameValueBothViews;
|
|
SerializedProperty thirdPersonshotShakeInfo;
|
|
SerializedProperty useShotShakeInThirdPerson;
|
|
SerializedProperty useShotShakeInFirstPerson;
|
|
SerializedProperty firstPersonshotShakeInfo;
|
|
SerializedProperty useShotCameraNoise;
|
|
|
|
SerializedProperty useShotCameraNoiseDuration;
|
|
|
|
SerializedProperty shotCameraNoiseDuration;
|
|
|
|
SerializedProperty showThirdPersonGizmo;
|
|
SerializedProperty showFirstPersonGizmo;
|
|
|
|
SerializedProperty showCollisionDetectionGizmo;
|
|
|
|
SerializedProperty showEditAttachmentGizmo;
|
|
|
|
SerializedProperty showMainWeaponPositionsGizmo;
|
|
|
|
SerializedProperty showFBAGizmo;
|
|
SerializedProperty showFBAWalkGizmo;
|
|
SerializedProperty showFBAAimGizmo;
|
|
SerializedProperty showFBACrouchGizmo;
|
|
SerializedProperty showFBAJumpGizmo;
|
|
|
|
SerializedProperty showFBARunGizmo;
|
|
SerializedProperty showFBAObstacleGizmo;
|
|
|
|
SerializedProperty gizmoLabelColor;
|
|
SerializedProperty showHandsWaypointGizmo;
|
|
SerializedProperty showWeaponWaypointGizmo;
|
|
SerializedProperty showPositionGizmo;
|
|
SerializedProperty thirdPersonUseHandle;
|
|
SerializedProperty thirdPersonHandleRadius;
|
|
SerializedProperty thirdPersonHandleGizmoColor;
|
|
SerializedProperty thirdPersonUsePositionHandle;
|
|
SerializedProperty firstPersonUseHandle;
|
|
SerializedProperty firstPersonHandleRadius;
|
|
SerializedProperty firstPersonHandleGizmoColor;
|
|
SerializedProperty firstPersonUsePositionHandle;
|
|
SerializedProperty relativePathWeaponsPickups;
|
|
SerializedProperty emtpyWeaponPrefab;
|
|
SerializedProperty weaponPrefabModel;
|
|
SerializedProperty inventoryWeaponPrefabObject;
|
|
SerializedProperty relativePathWeaponsMesh;
|
|
SerializedProperty relativePathWeaponsAmmoMesh;
|
|
SerializedProperty inventoryWeaponCategoryName;
|
|
SerializedProperty weaponName;
|
|
SerializedProperty inventoryAmmoCategoryName;
|
|
SerializedProperty ammoAmountPerPickup;
|
|
SerializedProperty weaponAmmoMesh;
|
|
SerializedProperty weaponAmmoIconTexture;
|
|
SerializedProperty useLowerRotationSpeedAimedThirdPerson;
|
|
SerializedProperty verticalRotationSpeedAimedInThirdPerson;
|
|
SerializedProperty horizontalRotationSpeedAimedInThirdPerson;
|
|
SerializedProperty canAimInFirstPerson;
|
|
SerializedProperty useLowerRotationSpeedAimed;
|
|
SerializedProperty verticalRotationSpeedAimedInFirstPerson;
|
|
SerializedProperty horizontalRotationSpeedAimedInFirstPerson;
|
|
|
|
SerializedProperty firstPersonArms;
|
|
|
|
SerializedProperty disableOnlyFirstPersonArmsMesh;
|
|
|
|
SerializedProperty firstPersonArmsMesh;
|
|
|
|
SerializedProperty extraFirstPersonArmsMeshes;
|
|
|
|
SerializedProperty useWeaponAnimatorFirstPerson;
|
|
SerializedProperty mainWeaponAnimatorSystem;
|
|
|
|
|
|
SerializedProperty thirdPersonDeactivateIKDrawPath;
|
|
SerializedProperty thirdPersonMeleeAttackShakeInfo;
|
|
SerializedProperty firstPersonMeleeAttackShakeInfo;
|
|
SerializedProperty thirdPersonKeepPath;
|
|
SerializedProperty thirdPersonHandsInfo;
|
|
SerializedProperty headLookWhenAiming;
|
|
SerializedProperty headLookSpeed;
|
|
SerializedProperty headLookTarget;
|
|
|
|
SerializedProperty rightHandMountPoint;
|
|
SerializedProperty leftHandMountPoint;
|
|
|
|
SerializedProperty setNewAnimatorWeaponID;
|
|
SerializedProperty newAnimatorWeaponID;
|
|
|
|
SerializedProperty setNewAnimatorDualWeaponID;
|
|
SerializedProperty newAnimatorDualWeaponID;
|
|
|
|
SerializedProperty setUpperBodyBendingMultiplier;
|
|
SerializedProperty horizontalBendingMultiplier;
|
|
SerializedProperty verticalBendingMultiplier;
|
|
|
|
SerializedProperty followFullRotationPointDirection;
|
|
|
|
SerializedProperty followFullRotationClampX;
|
|
SerializedProperty followFullRotationClampY;
|
|
SerializedProperty followFullRotationClampZ;
|
|
|
|
SerializedProperty setNewAnimatorCrouchID;
|
|
SerializedProperty newAnimatorCrouchID;
|
|
|
|
SerializedProperty ignoreCrouchWhileWeaponActive;
|
|
|
|
SerializedProperty pivotPointRotationActive;
|
|
|
|
SerializedProperty useNewMaxAngleDifference;
|
|
SerializedProperty horizontalMaxAngleDifference;
|
|
SerializedProperty verticalMaxAngleDifference;
|
|
|
|
SerializedProperty extraColliderScaleOnFireWeaponOnFBA;
|
|
SerializedProperty extraColliderCenterOnFireWeaponOnFBA;
|
|
|
|
SerializedProperty fullBodyAwarenessActive;
|
|
|
|
IKWeaponSystem IKWeaponManager;
|
|
|
|
GUIStyle style = new GUIStyle ();
|
|
|
|
GUIStyle gizmoStyle = new GUIStyle ();
|
|
|
|
GUIStyle sectionStyle = new GUIStyle ();
|
|
|
|
bool showElbowInfo;
|
|
|
|
bool showSingleWeaponSettings;
|
|
bool showDualWeaponSettings;
|
|
|
|
Color buttonColor;
|
|
Vector3 oldPoint;
|
|
Vector3 newPoint;
|
|
|
|
Color listButtonBackgroundColor;
|
|
|
|
string inputListOpenedText;
|
|
|
|
bool expanded;
|
|
|
|
Vector3 curretPositionHandle;
|
|
Quaternion currentRotationHandle;
|
|
|
|
Vector3 currentFreeHandlePosition;
|
|
Vector3 newFreeHandlePosition;
|
|
|
|
Vector3 snapValue = new Vector3 (.25f, .25f, .25f);
|
|
|
|
float thirdPersonHandleRadiusValue;
|
|
float firstPersonHandleRadiusValue;
|
|
|
|
GUIStyle buttonStyle = new GUIStyle ();
|
|
|
|
void OnEnable ()
|
|
{
|
|
weaponEnabled = serializedObject.FindProperty ("weaponEnabled");
|
|
currentWeapon = serializedObject.FindProperty ("currentWeapon");
|
|
carrying = serializedObject.FindProperty ("carrying");
|
|
aiming = serializedObject.FindProperty ("aiming");
|
|
|
|
actionActive = serializedObject.FindProperty ("actionActive");
|
|
|
|
moving = serializedObject.FindProperty ("moving");
|
|
|
|
IKPausedOnHandsActive = serializedObject.FindProperty ("IKPausedOnHandsActive");
|
|
|
|
surfaceDetected = serializedObject.FindProperty ("surfaceDetected");
|
|
weaponInRunPosition = serializedObject.FindProperty ("weaponInRunPosition");
|
|
jumpingOnProcess = serializedObject.FindProperty ("jumpingOnProcess");
|
|
playerOnJumpStart = serializedObject.FindProperty ("playerOnJumpStart");
|
|
playerOnJumpEnd = serializedObject.FindProperty ("playerOnJumpEnd");
|
|
crouchingActive = serializedObject.FindProperty ("crouchingActive");
|
|
reloadingWeapon = serializedObject.FindProperty ("reloadingWeapon");
|
|
weaponUpdateActive = serializedObject.FindProperty ("weaponUpdateActive");
|
|
usingDualWeapon = serializedObject.FindProperty ("usingDualWeapon");
|
|
disablingDualWeapon = serializedObject.FindProperty ("disablingDualWeapon");
|
|
usingRightHandDualWeapon = serializedObject.FindProperty ("usingRightHandDualWeapon");
|
|
weaponConfiguredAsDualWeapon = serializedObject.FindProperty ("weaponConfiguredAsDualWeapon");
|
|
linkedDualWeaponName = serializedObject.FindProperty ("linkedDualWeaponName");
|
|
showSettings = serializedObject.FindProperty ("showSettings");
|
|
showElementSettings = serializedObject.FindProperty ("showElementSettings");
|
|
showPrefabSettings = serializedObject.FindProperty ("showPrefabSettings");
|
|
weaponGameObject = serializedObject.FindProperty ("weaponGameObject");
|
|
extraRotation = serializedObject.FindProperty ("extraRotation");
|
|
aimFovValue = serializedObject.FindProperty ("aimFovValue");
|
|
aimFovSpeed = serializedObject.FindProperty ("aimFovSpeed");
|
|
hideWeaponIfKeptInThirdPerson = serializedObject.FindProperty ("hideWeaponIfKeptInThirdPerson");
|
|
canBeDropped = serializedObject.FindProperty ("canBeDropped");
|
|
canUnlockCursor = serializedObject.FindProperty ("canUnlockCursor");
|
|
canUnlockCursorOnThirdPerson = serializedObject.FindProperty ("canUnlockCursorOnThirdPerson");
|
|
disableHUDWhenCursorUnlocked = serializedObject.FindProperty ("disableHUDWhenCursorUnlocked");
|
|
weaponSystemManager = serializedObject.FindProperty ("weaponSystemManager");
|
|
weaponsManager = serializedObject.FindProperty ("weaponsManager");
|
|
weaponTransform = serializedObject.FindProperty ("weaponTransform");
|
|
layer = serializedObject.FindProperty ("layer");
|
|
weaponUsesAttachment = serializedObject.FindProperty ("weaponUsesAttachment");
|
|
mainWeaponAttachmentSystem = serializedObject.FindProperty ("mainWeaponAttachmentSystem");
|
|
showThirdPersonSettings = serializedObject.FindProperty ("showThirdPersonSettings");
|
|
thirdPersonWeaponInfo = serializedObject.FindProperty ("thirdPersonWeaponInfo");
|
|
thirdPersonUseSwayInfo = serializedObject.FindProperty ("thirdPersonWeaponInfo.useSwayInfo");
|
|
showSwaySettings = serializedObject.FindProperty ("showSwaySettings");
|
|
thirdPersonUseRunPosition = serializedObject.FindProperty ("thirdPersonWeaponInfo.useRunPosition");
|
|
thirdPersonUseRunSwayInfo = serializedObject.FindProperty ("thirdPersonWeaponInfo.useRunSwayInfo");
|
|
showWalkSwaySettings = serializedObject.FindProperty ("showWalkSwaySettings");
|
|
thirdPersonSwayInfo = serializedObject.FindProperty ("thirdPersonSwayInfo");
|
|
showRunSwaySettings = serializedObject.FindProperty ("showRunSwaySettings");
|
|
|
|
showFullBodyAwarernessSettings = serializedObject.FindProperty ("showFullBodyAwarernessSettings");
|
|
|
|
runThirdPersonSwayInfo = serializedObject.FindProperty ("runThirdPersonSwayInfo");
|
|
showFirstPersonSettings = serializedObject.FindProperty ("showFirstPersonSettings");
|
|
firstPersonWeaponInfo = serializedObject.FindProperty ("firstPersonWeaponInfo");
|
|
firstPersonUseSwayInfo = serializedObject.FindProperty ("firstPersonWeaponInfo.useSwayInfo");
|
|
firstPersonUseRunPosition = serializedObject.FindProperty ("firstPersonWeaponInfo.useRunPosition");
|
|
firstPersonUseRunSwayInfo = serializedObject.FindProperty ("firstPersonWeaponInfo.useRunSwayInfo");
|
|
firstPersonSwayInfo = serializedObject.FindProperty ("firstPersonSwayInfo");
|
|
runFirstPersonSwayInfo = serializedObject.FindProperty ("runFirstPersonSwayInfo");
|
|
showIdleSettings = serializedObject.FindProperty ("showIdleSettings");
|
|
useWeaponIdle = serializedObject.FindProperty ("useWeaponIdle");
|
|
timeToActiveWeaponIdle = serializedObject.FindProperty ("timeToActiveWeaponIdle");
|
|
idlePositionAmount = serializedObject.FindProperty ("idlePositionAmount");
|
|
idleRotationAmount = serializedObject.FindProperty ("idleRotationAmount");
|
|
idleSpeed = serializedObject.FindProperty ("idleSpeed");
|
|
playerMoving = serializedObject.FindProperty ("playerMoving");
|
|
idleActive = serializedObject.FindProperty ("idleActive");
|
|
|
|
showShotShakeSettings = serializedObject.FindProperty ("showShotShakeSettings");
|
|
|
|
showShotCameraNoiseSettings = serializedObject.FindProperty ("showShotCameraNoiseSettings");
|
|
|
|
sameValueBothViews = serializedObject.FindProperty ("sameValueBothViews");
|
|
thirdPersonshotShakeInfo = serializedObject.FindProperty ("thirdPersonshotShakeInfo");
|
|
useShotShakeInThirdPerson = serializedObject.FindProperty ("useShotShakeInThirdPerson");
|
|
useShotShakeInFirstPerson = serializedObject.FindProperty ("useShotShakeInFirstPerson");
|
|
firstPersonshotShakeInfo = serializedObject.FindProperty ("firstPersonshotShakeInfo");
|
|
useShotCameraNoise = serializedObject.FindProperty ("useShotCameraNoise");
|
|
|
|
useShotCameraNoiseDuration = serializedObject.FindProperty ("useShotCameraNoiseDuration");
|
|
|
|
shotCameraNoiseDuration = serializedObject.FindProperty ("shotCameraNoiseDuration");
|
|
|
|
showThirdPersonGizmo = serializedObject.FindProperty ("showThirdPersonGizmo");
|
|
showFirstPersonGizmo = serializedObject.FindProperty ("showFirstPersonGizmo");
|
|
|
|
showCollisionDetectionGizmo = serializedObject.FindProperty ("showCollisionDetectionGizmo");
|
|
showEditAttachmentGizmo = serializedObject.FindProperty ("showEditAttachmentGizmo");
|
|
|
|
showMainWeaponPositionsGizmo = serializedObject.FindProperty ("showMainWeaponPositionsGizmo");
|
|
|
|
showFBAGizmo = serializedObject.FindProperty ("showFBAGizmo");
|
|
showFBAWalkGizmo = serializedObject.FindProperty ("showFBAWalkGizmo");
|
|
showFBAAimGizmo = serializedObject.FindProperty ("showFBAAimGizmo");
|
|
showFBACrouchGizmo = serializedObject.FindProperty ("showFBACrouchGizmo");
|
|
showFBAJumpGizmo = serializedObject.FindProperty ("showFBAJumpGizmo");
|
|
|
|
showFBARunGizmo = serializedObject.FindProperty ("showFBARunGizmo");
|
|
showFBAObstacleGizmo = serializedObject.FindProperty ("showFBAObstacleGizmo");
|
|
|
|
gizmoLabelColor = serializedObject.FindProperty ("gizmoLabelColor");
|
|
showHandsWaypointGizmo = serializedObject.FindProperty ("showHandsWaypointGizmo");
|
|
showWeaponWaypointGizmo = serializedObject.FindProperty ("showWeaponWaypointGizmo");
|
|
showPositionGizmo = serializedObject.FindProperty ("showPositionGizmo");
|
|
thirdPersonUseHandle = serializedObject.FindProperty ("thirdPersonWeaponInfo.useHandle");
|
|
thirdPersonHandleRadius = serializedObject.FindProperty ("thirdPersonWeaponInfo.handleRadius");
|
|
thirdPersonHandleGizmoColor = serializedObject.FindProperty ("thirdPersonWeaponInfo.handleGizmoColor");
|
|
thirdPersonUsePositionHandle = serializedObject.FindProperty ("thirdPersonWeaponInfo.usePositionHandle");
|
|
firstPersonUseHandle = serializedObject.FindProperty ("firstPersonWeaponInfo.useHandle");
|
|
firstPersonHandleRadius = serializedObject.FindProperty ("firstPersonWeaponInfo.handleRadius");
|
|
firstPersonHandleGizmoColor = serializedObject.FindProperty ("firstPersonWeaponInfo.handleGizmoColor");
|
|
firstPersonUsePositionHandle = serializedObject.FindProperty ("firstPersonWeaponInfo.usePositionHandle");
|
|
relativePathWeaponsPickups = serializedObject.FindProperty ("relativePathWeaponsPickups");
|
|
emtpyWeaponPrefab = serializedObject.FindProperty ("emtpyWeaponPrefab");
|
|
weaponPrefabModel = serializedObject.FindProperty ("weaponPrefabModel");
|
|
inventoryWeaponPrefabObject = serializedObject.FindProperty ("inventoryWeaponPrefabObject");
|
|
relativePathWeaponsMesh = serializedObject.FindProperty ("relativePathWeaponsMesh");
|
|
relativePathWeaponsAmmoMesh = serializedObject.FindProperty ("relativePathWeaponsAmmoMesh");
|
|
inventoryWeaponCategoryName = serializedObject.FindProperty ("inventoryWeaponCategoryName");
|
|
weaponName = serializedObject.FindProperty ("weaponName");
|
|
inventoryAmmoCategoryName = serializedObject.FindProperty ("inventoryAmmoCategoryName");
|
|
ammoAmountPerPickup = serializedObject.FindProperty ("ammoAmountPerPickup");
|
|
weaponAmmoMesh = serializedObject.FindProperty ("weaponAmmoMesh");
|
|
weaponAmmoIconTexture = serializedObject.FindProperty ("weaponAmmoIconTexture");
|
|
useLowerRotationSpeedAimedThirdPerson = serializedObject.FindProperty ("useLowerRotationSpeedAimedThirdPerson");
|
|
verticalRotationSpeedAimedInThirdPerson = serializedObject.FindProperty ("verticalRotationSpeedAimedInThirdPerson");
|
|
horizontalRotationSpeedAimedInThirdPerson = serializedObject.FindProperty ("horizontalRotationSpeedAimedInThirdPerson");
|
|
canAimInFirstPerson = serializedObject.FindProperty ("canAimInFirstPerson");
|
|
useLowerRotationSpeedAimed = serializedObject.FindProperty ("useLowerRotationSpeedAimed");
|
|
verticalRotationSpeedAimedInFirstPerson = serializedObject.FindProperty ("verticalRotationSpeedAimedInFirstPerson");
|
|
horizontalRotationSpeedAimedInFirstPerson = serializedObject.FindProperty ("horizontalRotationSpeedAimedInFirstPerson");
|
|
|
|
firstPersonArms = serializedObject.FindProperty ("firstPersonArms");
|
|
|
|
disableOnlyFirstPersonArmsMesh = serializedObject.FindProperty ("disableOnlyFirstPersonArmsMesh");
|
|
|
|
firstPersonArmsMesh = serializedObject.FindProperty ("firstPersonArmsMesh");
|
|
|
|
extraFirstPersonArmsMeshes = serializedObject.FindProperty ("extraFirstPersonArmsMeshes");
|
|
|
|
thirdPersonDeactivateIKDrawPath = serializedObject.FindProperty ("thirdPersonWeaponInfo.deactivateIKDrawPath");
|
|
thirdPersonMeleeAttackShakeInfo = serializedObject.FindProperty ("thirdPersonMeleeAttackShakeInfo");
|
|
firstPersonMeleeAttackShakeInfo = serializedObject.FindProperty ("firstPersonMeleeAttackShakeInfo");
|
|
thirdPersonKeepPath = serializedObject.FindProperty ("thirdPersonWeaponInfo.keepPath");
|
|
thirdPersonHandsInfo = serializedObject.FindProperty ("thirdPersonWeaponInfo.handsInfo");
|
|
headLookWhenAiming = serializedObject.FindProperty ("headLookWhenAiming");
|
|
headLookSpeed = serializedObject.FindProperty ("headLookSpeed");
|
|
headLookTarget = serializedObject.FindProperty ("headLookTarget");
|
|
|
|
useWeaponAnimatorFirstPerson = serializedObject.FindProperty ("useWeaponAnimatorFirstPerson");
|
|
mainWeaponAnimatorSystem = serializedObject.FindProperty ("mainWeaponAnimatorSystem");
|
|
|
|
rightHandMountPoint = serializedObject.FindProperty ("rightHandMountPoint");
|
|
leftHandMountPoint = serializedObject.FindProperty ("leftHandMountPoint");
|
|
|
|
setNewAnimatorWeaponID = serializedObject.FindProperty ("setNewAnimatorWeaponID");
|
|
newAnimatorWeaponID = serializedObject.FindProperty ("newAnimatorWeaponID");
|
|
|
|
setNewAnimatorDualWeaponID = serializedObject.FindProperty ("setNewAnimatorDualWeaponID");
|
|
newAnimatorDualWeaponID = serializedObject.FindProperty ("newAnimatorDualWeaponID");
|
|
|
|
setUpperBodyBendingMultiplier = serializedObject.FindProperty ("setUpperBodyBendingMultiplier");
|
|
horizontalBendingMultiplier = serializedObject.FindProperty ("horizontalBendingMultiplier");
|
|
verticalBendingMultiplier = serializedObject.FindProperty ("verticalBendingMultiplier");
|
|
|
|
followFullRotationPointDirection = serializedObject.FindProperty ("followFullRotationPointDirection");
|
|
|
|
followFullRotationClampX = serializedObject.FindProperty ("followFullRotationClampX");
|
|
followFullRotationClampY = serializedObject.FindProperty ("followFullRotationClampY");
|
|
followFullRotationClampZ = serializedObject.FindProperty ("followFullRotationClampZ");
|
|
|
|
setNewAnimatorCrouchID = serializedObject.FindProperty ("setNewAnimatorCrouchID");
|
|
newAnimatorCrouchID = serializedObject.FindProperty ("newAnimatorCrouchID");
|
|
|
|
ignoreCrouchWhileWeaponActive = serializedObject.FindProperty ("ignoreCrouchWhileWeaponActive");
|
|
|
|
pivotPointRotationActive = serializedObject.FindProperty ("pivotPointRotationActive");
|
|
|
|
useNewMaxAngleDifference = serializedObject.FindProperty ("useNewMaxAngleDifference");
|
|
horizontalMaxAngleDifference = serializedObject.FindProperty ("horizontalMaxAngleDifference");
|
|
verticalMaxAngleDifference = serializedObject.FindProperty ("verticalMaxAngleDifference");
|
|
|
|
extraColliderScaleOnFireWeaponOnFBA = serializedObject.FindProperty ("extraColliderScaleOnFireWeaponOnFBA");
|
|
extraColliderCenterOnFireWeaponOnFBA = serializedObject.FindProperty ("extraColliderCenterOnFireWeaponOnFBA");
|
|
|
|
fullBodyAwarenessActive = serializedObject.FindProperty ("fullBodyAwarenessActive");
|
|
|
|
IKWeaponManager = (IKWeaponSystem)target;
|
|
}
|
|
|
|
void OnSceneGUI ()
|
|
{
|
|
if (IKWeaponManager.showThirdPersonGizmo) {
|
|
gizmoStyle.normal.textColor = IKWeaponManager.gizmoLabelColor;
|
|
gizmoStyle.alignment = TextAnchor.MiddleCenter;
|
|
|
|
gizmoStyle.fontStyle = FontStyle.Normal;
|
|
gizmoStyle.fontSize = 10;
|
|
|
|
if (IKWeaponManager.showPositionGizmo) {
|
|
if (IKWeaponManager.showMainWeaponPositionsGizmo) {
|
|
Handles.Label (IKWeaponManager.thirdPersonWeaponInfo.aimPosition.position, "Aim \n Position", gizmoStyle);
|
|
Handles.Label (IKWeaponManager.thirdPersonWeaponInfo.walkPosition.position, "Walk \n Position", gizmoStyle);
|
|
Handles.Label (IKWeaponManager.thirdPersonWeaponInfo.keepPosition.position, "Keep \n Position", gizmoStyle);
|
|
Handles.Label (IKWeaponManager.thirdPersonWeaponInfo.aimRecoilPosition.position, "Aim \n Recoil \n Position", gizmoStyle);
|
|
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.useRunPosition &&
|
|
IKWeaponManager.thirdPersonWeaponInfo.runPosition != null) {
|
|
|
|
Handles.Label (IKWeaponManager.thirdPersonWeaponInfo.runPosition.position, "Run \n Position", gizmoStyle);
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showCollisionDetectionGizmo) {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.checkSurfaceCollision) {
|
|
Handles.Label (IKWeaponManager.thirdPersonWeaponInfo.surfaceCollisionPosition.position, "Surface \n Collision \n Position", gizmoStyle);
|
|
Handles.Label (IKWeaponManager.thirdPersonWeaponInfo.surfaceCollisionRayPosition.position, "Surface \n Collision \n Ray \n Position", gizmoStyle);
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showEditAttachmentGizmo) {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.hasAttachments) {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.editAttachmentPosition != null) {
|
|
Handles.Label (IKWeaponManager.thirdPersonWeaponInfo.editAttachmentPosition.position, "Edit \n Attachment \n Position", gizmoStyle);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showCollisionDetectionGizmo) {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.checkSurfaceCollision) {
|
|
gizmoStyle.normal.textColor = IKWeaponManager.gizmoLabelColor;
|
|
gizmoStyle.alignment = TextAnchor.MiddleCenter;
|
|
|
|
Handles.Label (IKWeaponManager.thirdPersonWeaponInfo.surfaceCollisionRayPosition.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.surfaceCollisionRayPosition.forward * IKWeaponManager.thirdPersonWeaponInfo.collisionRayDistance,
|
|
"Collision \n Ray \n Distance", gizmoStyle);
|
|
}
|
|
}
|
|
}
|
|
|
|
thirdPersonHandleRadiusValue = IKWeaponManager.thirdPersonWeaponInfo.handleRadius;
|
|
|
|
if (IKWeaponManager.showHandsWaypointGizmo) {
|
|
for (int i = 0; i < IKWeaponManager.thirdPersonWeaponInfo.handsInfo.Count; i++) {
|
|
Handles.Label (IKWeaponManager.thirdPersonWeaponInfo.handsInfo [i].position.position, IKWeaponManager.thirdPersonWeaponInfo.handsInfo [i].Name, gizmoStyle);
|
|
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.useHandle) {
|
|
for (int j = 0; j < IKWeaponManager.thirdPersonWeaponInfo.handsInfo [i].wayPoints.Count; j++) {
|
|
|
|
Handles.color = IKWeaponManager.thirdPersonWeaponInfo.handleGizmoColor;
|
|
|
|
showFreeMoveHandle (IKWeaponManager.thirdPersonWeaponInfo.handsInfo [i].wayPoints [j],
|
|
"move Third IKWeapon Waypoint Info Handle" + i, thirdPersonHandleRadiusValue);
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.usePositionHandle) {
|
|
for (int j = 0; j < IKWeaponManager.thirdPersonWeaponInfo.handsInfo [i].wayPoints.Count; j++) {
|
|
|
|
showPositionHandle (IKWeaponManager.thirdPersonWeaponInfo.handsInfo [i].wayPoints [j], "move handle waypoint" + i);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showWeaponWaypointGizmo) {
|
|
for (int i = 0; i < IKWeaponManager.thirdPersonWeaponInfo.keepPath.Count; i++) {
|
|
Handles.Label (IKWeaponManager.thirdPersonWeaponInfo.keepPath [i].position, (1 + i).ToString (), gizmoStyle);
|
|
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.useHandle) {
|
|
for (int j = 0; j < IKWeaponManager.thirdPersonWeaponInfo.keepPath.Count; j++) {
|
|
|
|
Handles.color = IKWeaponManager.thirdPersonWeaponInfo.handleGizmoColor;
|
|
|
|
showFreeMoveHandle (IKWeaponManager.thirdPersonWeaponInfo.keepPath [i], "move Third IKWeapon Weapon Waypoint Info Handle" + i, thirdPersonHandleRadiusValue);
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.usePositionHandle) {
|
|
showPositionHandle (IKWeaponManager.thirdPersonWeaponInfo.keepPath [i], "move weapon handle waypoint" + i);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showPositionGizmo) {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.useHandle) {
|
|
if (IKWeaponManager.showMainWeaponPositionsGizmo) {
|
|
showFreeMoveHandle (IKWeaponManager.thirdPersonWeaponInfo.aimPosition, "move Third Aim Position Info Handle", thirdPersonHandleRadiusValue);
|
|
|
|
showFreeMoveHandle (IKWeaponManager.thirdPersonWeaponInfo.walkPosition, "move Third Walk Position Info Handle", thirdPersonHandleRadiusValue);
|
|
showFreeMoveHandle (IKWeaponManager.thirdPersonWeaponInfo.keepPosition, "move Third Keep Position Info Handle", thirdPersonHandleRadiusValue);
|
|
showFreeMoveHandle (IKWeaponManager.thirdPersonWeaponInfo.aimRecoilPosition, "move Third Aim Recoil Position Info Handle", thirdPersonHandleRadiusValue);
|
|
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.useRunPosition && IKWeaponManager.thirdPersonWeaponInfo.runPosition) {
|
|
showFreeMoveHandle (IKWeaponManager.thirdPersonWeaponInfo.runPosition, "move Third Run Position Info Handle", thirdPersonHandleRadiusValue);
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showCollisionDetectionGizmo) {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.checkSurfaceCollision) {
|
|
showFreeMoveHandle (IKWeaponManager.thirdPersonWeaponInfo.surfaceCollisionPosition, "move Third Aim Surface Collision Position Info Handle", thirdPersonHandleRadiusValue);
|
|
|
|
showFreeMoveHandle (IKWeaponManager.thirdPersonWeaponInfo.surfaceCollisionRayPosition, "move Third Aim Surface Collision Ray Position Info Handle", thirdPersonHandleRadiusValue);
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showEditAttachmentGizmo) {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.hasAttachments) {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.editAttachmentPosition != null) {
|
|
showFreeMoveHandle (IKWeaponManager.thirdPersonWeaponInfo.editAttachmentPosition, "move Third Edit Attachment Position Info Handle", thirdPersonHandleRadiusValue);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.usePositionHandle) {
|
|
if (IKWeaponManager.showMainWeaponPositionsGizmo) {
|
|
showPositionHandle (IKWeaponManager.thirdPersonWeaponInfo.aimPosition, "move Third Aim Position Info Handle");
|
|
|
|
showPositionHandle (IKWeaponManager.thirdPersonWeaponInfo.walkPosition, "move Third Walk Position Info Handle");
|
|
showPositionHandle (IKWeaponManager.thirdPersonWeaponInfo.keepPosition, "move Third Keep Position Info Handle");
|
|
showPositionHandle (IKWeaponManager.thirdPersonWeaponInfo.aimRecoilPosition, "move Third Aim Recoil Position Info Handle");
|
|
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.useRunPosition &&
|
|
IKWeaponManager.thirdPersonWeaponInfo.runPosition != null) {
|
|
showPositionHandle (IKWeaponManager.thirdPersonWeaponInfo.runPosition, "move Third Run Position Info Handle");
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showCollisionDetectionGizmo) {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.checkSurfaceCollision) {
|
|
showPositionHandle (IKWeaponManager.thirdPersonWeaponInfo.surfaceCollisionPosition, "move Third Aim Surface Collision Position Info Handle");
|
|
|
|
showPositionHandle (IKWeaponManager.thirdPersonWeaponInfo.surfaceCollisionRayPosition, "move Third Aim Surface Collision Ray Position Info Handle");
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showEditAttachmentGizmo) {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.hasAttachments) {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.editAttachmentPosition != null) {
|
|
showPositionHandle (IKWeaponManager.thirdPersonWeaponInfo.editAttachmentPosition, "move Third Edit Attachment Position Info Handle");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showFirstPersonGizmo) {
|
|
gizmoStyle.normal.textColor = IKWeaponManager.gizmoLabelColor;
|
|
gizmoStyle.alignment = TextAnchor.MiddleCenter;
|
|
|
|
if (IKWeaponManager.showPositionGizmo) {
|
|
if (IKWeaponManager.showMainWeaponPositionsGizmo) {
|
|
Handles.Label (IKWeaponManager.firstPersonWeaponInfo.aimPosition.position, "Aim \n Position", gizmoStyle);
|
|
Handles.Label (IKWeaponManager.firstPersonWeaponInfo.walkPosition.position, "Walk \n Position", gizmoStyle);
|
|
Handles.Label (IKWeaponManager.firstPersonWeaponInfo.keepPosition.position, "Keep \n Position", gizmoStyle);
|
|
Handles.Label (IKWeaponManager.firstPersonWeaponInfo.aimRecoilPosition.position, "Aim \n Recoil \n Position", gizmoStyle);
|
|
Handles.Label (IKWeaponManager.firstPersonWeaponInfo.walkRecoilPosition.position, "Walk \n Recoil \n Position", gizmoStyle);
|
|
|
|
if (IKWeaponManager.firstPersonWeaponInfo.useRunPosition) {
|
|
Handles.Label (IKWeaponManager.firstPersonWeaponInfo.runPosition.position, "Run \n Position", gizmoStyle);
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showCollisionDetectionGizmo) {
|
|
if (IKWeaponManager.firstPersonWeaponInfo.checkSurfaceCollision) {
|
|
Handles.Label (IKWeaponManager.firstPersonWeaponInfo.surfaceCollisionPosition.position, "Surface \n Collision \n Position", gizmoStyle);
|
|
Handles.Label (IKWeaponManager.firstPersonWeaponInfo.surfaceCollisionRayPosition.position, "Surface \n Collision \n Ray \n Position", gizmoStyle);
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showEditAttachmentGizmo) {
|
|
if (IKWeaponManager.firstPersonWeaponInfo.hasAttachments) {
|
|
if (IKWeaponManager.firstPersonWeaponInfo.editAttachmentPosition != null) {
|
|
Handles.Label (IKWeaponManager.firstPersonWeaponInfo.editAttachmentPosition.position, "Edit \n Attachment \n Position", gizmoStyle);
|
|
}
|
|
|
|
if (IKWeaponManager.firstPersonWeaponInfo.useSightPosition) {
|
|
if (IKWeaponManager.firstPersonWeaponInfo.sightPosition != null) {
|
|
Handles.Label (IKWeaponManager.firstPersonWeaponInfo.sightPosition.position, "Sight \n Position", gizmoStyle);
|
|
}
|
|
|
|
if (IKWeaponManager.firstPersonWeaponInfo.sightRecoilPosition != null) {
|
|
Handles.Label (IKWeaponManager.firstPersonWeaponInfo.sightRecoilPosition.position, "Sight \n Recoil \n Position", gizmoStyle);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showCollisionDetectionGizmo) {
|
|
if (IKWeaponManager.firstPersonWeaponInfo.checkSurfaceCollision) {
|
|
gizmoStyle.normal.textColor = IKWeaponManager.gizmoLabelColor;
|
|
gizmoStyle.alignment = TextAnchor.MiddleCenter;
|
|
|
|
Handles.Label (IKWeaponManager.firstPersonWeaponInfo.surfaceCollisionRayPosition.position +
|
|
IKWeaponManager.firstPersonWeaponInfo.surfaceCollisionRayPosition.forward * IKWeaponManager.firstPersonWeaponInfo.collisionRayDistance,
|
|
"Collision \n Ray \n Distance", gizmoStyle);
|
|
}
|
|
}
|
|
}
|
|
|
|
firstPersonHandleRadiusValue = IKWeaponManager.firstPersonWeaponInfo.handleRadius;
|
|
|
|
if (IKWeaponManager.showPositionGizmo) {
|
|
if (IKWeaponManager.firstPersonWeaponInfo.useHandle) {
|
|
Handles.color = IKWeaponManager.firstPersonWeaponInfo.handleGizmoColor;
|
|
|
|
if (IKWeaponManager.showMainWeaponPositionsGizmo) {
|
|
showFreeMoveHandle (IKWeaponManager.firstPersonWeaponInfo.aimPosition, "move First Aim Position Info Handle", firstPersonHandleRadiusValue);
|
|
showFreeMoveHandle (IKWeaponManager.firstPersonWeaponInfo.walkPosition, "move First Walk Position Info Handle", firstPersonHandleRadiusValue);
|
|
showFreeMoveHandle (IKWeaponManager.firstPersonWeaponInfo.keepPosition, "move First Keep Position Info Handle", firstPersonHandleRadiusValue);
|
|
showFreeMoveHandle (IKWeaponManager.firstPersonWeaponInfo.aimRecoilPosition, "move First Aim Recoil Position Info Handle", firstPersonHandleRadiusValue);
|
|
|
|
showFreeMoveHandle (IKWeaponManager.firstPersonWeaponInfo.walkRecoilPosition, "move First Walk Recoil Position Info Handle", firstPersonHandleRadiusValue);
|
|
|
|
|
|
if (IKWeaponManager.firstPersonWeaponInfo.useRunPosition &&
|
|
IKWeaponManager.firstPersonWeaponInfo.runPosition != null) {
|
|
showFreeMoveHandle (IKWeaponManager.firstPersonWeaponInfo.runPosition, "move First Run Position Info Handle", firstPersonHandleRadiusValue);
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showCollisionDetectionGizmo) {
|
|
if (IKWeaponManager.firstPersonWeaponInfo.checkSurfaceCollision) {
|
|
showFreeMoveHandle (IKWeaponManager.firstPersonWeaponInfo.surfaceCollisionPosition, "move First Aim Surface Collision Position Info Handle", firstPersonHandleRadiusValue);
|
|
showFreeMoveHandle (IKWeaponManager.firstPersonWeaponInfo.surfaceCollisionRayPosition, "move First Aim Surface Collision Ray Position Info Handle", firstPersonHandleRadiusValue);
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showEditAttachmentGizmo) {
|
|
if (IKWeaponManager.firstPersonWeaponInfo.hasAttachments) {
|
|
if (IKWeaponManager.firstPersonWeaponInfo.editAttachmentPosition != null) {
|
|
showFreeMoveHandle (IKWeaponManager.firstPersonWeaponInfo.editAttachmentPosition, "move First Edit Attachment Position Info Handle", firstPersonHandleRadiusValue);
|
|
}
|
|
|
|
if (IKWeaponManager.firstPersonWeaponInfo.useSightPosition) {
|
|
if (IKWeaponManager.firstPersonWeaponInfo.sightPosition != null) {
|
|
showFreeMoveHandle (IKWeaponManager.firstPersonWeaponInfo.sightPosition, "move First Sight Position Info Handle", firstPersonHandleRadiusValue);
|
|
}
|
|
|
|
if (IKWeaponManager.firstPersonWeaponInfo.sightRecoilPosition != null) {
|
|
showFreeMoveHandle (IKWeaponManager.firstPersonWeaponInfo.sightRecoilPosition, "move First Sight Recoil Position Info Handle", firstPersonHandleRadiusValue);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.firstPersonWeaponInfo.usePositionHandle) {
|
|
Handles.color = IKWeaponManager.firstPersonWeaponInfo.handleGizmoColor;
|
|
|
|
if (IKWeaponManager.showMainWeaponPositionsGizmo) {
|
|
showPositionHandle (IKWeaponManager.firstPersonWeaponInfo.aimPosition, "move First Aim Position Info Handle");
|
|
showPositionHandle (IKWeaponManager.firstPersonWeaponInfo.walkPosition, "move First Walk Position Info Handle");
|
|
showPositionHandle (IKWeaponManager.firstPersonWeaponInfo.keepPosition, "move First Keep Position Info Handle");
|
|
showPositionHandle (IKWeaponManager.firstPersonWeaponInfo.aimRecoilPosition, "move First Aim Recoil Position Info Handle");
|
|
|
|
showPositionHandle (IKWeaponManager.firstPersonWeaponInfo.walkRecoilPosition, "move First Walk Recoil Position Info Handle");
|
|
|
|
if (IKWeaponManager.firstPersonWeaponInfo.useRunPosition &&
|
|
IKWeaponManager.firstPersonWeaponInfo.runPosition != null) {
|
|
showPositionHandle (IKWeaponManager.firstPersonWeaponInfo.runPosition, "move First Run Position Info Handle");
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showCollisionDetectionGizmo) {
|
|
if (IKWeaponManager.firstPersonWeaponInfo.checkSurfaceCollision) {
|
|
showPositionHandle (IKWeaponManager.firstPersonWeaponInfo.surfaceCollisionPosition, "move First Aim Surface Collision Position Info Handle");
|
|
showPositionHandle (IKWeaponManager.firstPersonWeaponInfo.surfaceCollisionRayPosition, "move First Aim Surface Collision Ray Position Info Handle");
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showEditAttachmentGizmo) {
|
|
if (IKWeaponManager.firstPersonWeaponInfo.hasAttachments) {
|
|
if (IKWeaponManager.firstPersonWeaponInfo.editAttachmentPosition != null) {
|
|
showPositionHandle (IKWeaponManager.firstPersonWeaponInfo.editAttachmentPosition, "move First Edit Attachment Position Info Handle");
|
|
}
|
|
|
|
if (IKWeaponManager.firstPersonWeaponInfo.useSightPosition) {
|
|
if (IKWeaponManager.firstPersonWeaponInfo.sightPosition != null) {
|
|
showPositionHandle (IKWeaponManager.firstPersonWeaponInfo.sightPosition, "move First Sight Position Info Handle");
|
|
}
|
|
|
|
if (IKWeaponManager.firstPersonWeaponInfo.sightRecoilPosition != null) {
|
|
showPositionHandle (IKWeaponManager.firstPersonWeaponInfo.sightRecoilPosition, "move First Sight Recoil Position Info Handle");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showFBAGizmo) {
|
|
|
|
gizmoStyle.normal.textColor = IKWeaponManager.gizmoLabelColor;
|
|
gizmoStyle.alignment = TextAnchor.MiddleCenter;
|
|
|
|
|
|
Vector3 targetPosition = Vector3.zero;
|
|
|
|
Quaternion targetRotation = Quaternion.identity;
|
|
|
|
if (IKWeaponManager.showFBAWalkGizmo) {
|
|
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.overrideFBAValuesForOffset) {
|
|
targetPosition = IKWeaponManager.transform.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBAWalkPositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.transform.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBAWalkRotationOffset);
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBAWalkPositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBAWalkRotationOffset,
|
|
IKWeaponManager.transform.position, IKWeaponManager.transform.rotation,
|
|
"Move FBA Walk Position Handle");
|
|
} else {
|
|
targetPosition = IKWeaponManager.thirdPersonWeaponInfo.walkPosition.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBAWalkPositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.thirdPersonWeaponInfo.walkPosition.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBAWalkRotationOffset);
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBAWalkPositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBAWalkRotationOffset,
|
|
IKWeaponManager.thirdPersonWeaponInfo.walkPosition.position, IKWeaponManager.thirdPersonWeaponInfo.walkPosition.rotation,
|
|
"Move FBA Walk Position Handle");
|
|
}
|
|
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.overrideFBAValuesForOffset) {
|
|
targetPosition = IKWeaponManager.transform.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBAWalkRecoilPositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.transform.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBAWalkRecoilRotationOffset);
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBAWalkRecoilPositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBAWalkRecoilRotationOffset,
|
|
IKWeaponManager.transform.position, IKWeaponManager.transform.rotation,
|
|
"Move FBA Walk Recoil Position Handle");
|
|
} else {
|
|
targetPosition = IKWeaponManager.thirdPersonWeaponInfo.walkPosition.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBAWalkRecoilPositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.thirdPersonWeaponInfo.walkPosition.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBAWalkRecoilRotationOffset);
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBAWalkRecoilPositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBAWalkRecoilRotationOffset,
|
|
IKWeaponManager.thirdPersonWeaponInfo.walkPosition.position, IKWeaponManager.thirdPersonWeaponInfo.walkPosition.rotation,
|
|
"Move FBA Walk Recoil Position Handle");
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showFBAAimGizmo) {
|
|
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.overrideFBAValuesForOffset) {
|
|
targetPosition = IKWeaponManager.transform.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBAAimPositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.transform.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBAAimRotationOffset);
|
|
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBAAimPositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBAAimRotationOffset,
|
|
IKWeaponManager.transform.position, IKWeaponManager.transform.rotation,
|
|
"Move FBA Aim Position Handle");
|
|
} else {
|
|
targetPosition = IKWeaponManager.thirdPersonWeaponInfo.aimPosition.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBAAimPositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.thirdPersonWeaponInfo.aimPosition.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBAAimRotationOffset);
|
|
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBAAimPositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBAAimRotationOffset,
|
|
IKWeaponManager.thirdPersonWeaponInfo.aimPosition.position, IKWeaponManager.thirdPersonWeaponInfo.aimPosition.rotation,
|
|
"Move FBA Aim Position Handle");
|
|
}
|
|
|
|
|
|
|
|
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.overrideFBAValuesForOffset) {
|
|
targetPosition = IKWeaponManager.transform.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBAAimRecoilPositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.transform.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBAAimRecoilRotationOffset);
|
|
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBAAimRecoilPositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBAAimRecoilRotationOffset,
|
|
IKWeaponManager.transform.position, IKWeaponManager.transform.rotation,
|
|
"Move FBA Aim Recoil Position Handle");
|
|
} else {
|
|
targetPosition = IKWeaponManager.thirdPersonWeaponInfo.aimRecoilPosition.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBAAimRecoilPositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.thirdPersonWeaponInfo.aimRecoilPosition.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBAAimRecoilRotationOffset);
|
|
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBAAimRecoilPositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBAAimRecoilRotationOffset,
|
|
IKWeaponManager.thirdPersonWeaponInfo.aimRecoilPosition.position, IKWeaponManager.thirdPersonWeaponInfo.aimRecoilPosition.rotation,
|
|
"Move FBA Aim Recoil Position Handle");
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showFBACrouchGizmo) {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.overrideFBAValuesForOffset) {
|
|
targetPosition = IKWeaponManager.transform.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBACrouchPositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.transform.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBACrouchRotationOffset);
|
|
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBACrouchPositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBACrouchRotationOffset,
|
|
IKWeaponManager.transform.position, IKWeaponManager.transform.rotation,
|
|
"Move FBA Crouch Position Handle");
|
|
} else {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.crouchPosition != null) {
|
|
targetPosition = IKWeaponManager.thirdPersonWeaponInfo.crouchPosition.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBACrouchPositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.thirdPersonWeaponInfo.crouchPosition.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBACrouchRotationOffset);
|
|
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBACrouchPositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBACrouchRotationOffset,
|
|
IKWeaponManager.thirdPersonWeaponInfo.crouchPosition.position, IKWeaponManager.thirdPersonWeaponInfo.crouchPosition.rotation,
|
|
"Move FBA Crouch Position Handle");
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.overrideFBAValuesForOffset) {
|
|
targetPosition = IKWeaponManager.transform.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBACrouchRecoilPositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.transform.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBACrouchRecoilRotationOffset);
|
|
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBACrouchRecoilPositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBACrouchRecoilRotationOffset,
|
|
IKWeaponManager.transform.position, IKWeaponManager.transform.rotation,
|
|
"Move FBA Crouch Recoil Position Handle");
|
|
} else {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.crouchRecoilPosition != null) {
|
|
targetPosition = IKWeaponManager.thirdPersonWeaponInfo.crouchRecoilPosition.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBACrouchRecoilPositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.thirdPersonWeaponInfo.crouchRecoilPosition.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBACrouchRecoilRotationOffset);
|
|
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBACrouchRecoilPositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBACrouchRecoilRotationOffset,
|
|
IKWeaponManager.thirdPersonWeaponInfo.crouchRecoilPosition.position, IKWeaponManager.thirdPersonWeaponInfo.crouchRecoilPosition.rotation,
|
|
"Move FBA Crouch Recoil Position Handle");
|
|
}
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showFBAJumpGizmo) {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.overrideFBAValuesForOffset) {
|
|
targetPosition = IKWeaponManager.transform.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBAJumpStartPositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.transform.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBAJumpStartRotationOffset);
|
|
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBAJumpStartPositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBAJumpStartRotationOffset,
|
|
IKWeaponManager.transform.position, IKWeaponManager.transform.rotation,
|
|
"Move FBA Jump Start Position Handle");
|
|
} else {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.jumpStartPosition != null) {
|
|
targetPosition = IKWeaponManager.thirdPersonWeaponInfo.jumpStartPosition.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBAJumpStartPositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.thirdPersonWeaponInfo.jumpStartPosition.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBAJumpStartRotationOffset);
|
|
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBAJumpStartPositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBAJumpStartRotationOffset,
|
|
IKWeaponManager.thirdPersonWeaponInfo.jumpStartPosition.position, IKWeaponManager.thirdPersonWeaponInfo.jumpStartPosition.rotation,
|
|
"Move FBA Jump Start Position Handle");
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.overrideFBAValuesForOffset) {
|
|
targetPosition = IKWeaponManager.transform.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBAJumpEndPositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.transform.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBAJumpEndRotationOffset);
|
|
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBAJumpEndPositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBAJumpEndRotationOffset,
|
|
IKWeaponManager.transform.position, IKWeaponManager.transform.rotation,
|
|
"Move FBA Jump End Position Handle");
|
|
} else {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.jumpEndPosition != null) {
|
|
targetPosition = IKWeaponManager.thirdPersonWeaponInfo.jumpEndPosition.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBAJumpEndPositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.thirdPersonWeaponInfo.jumpEndPosition.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBAJumpEndRotationOffset);
|
|
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBAJumpEndPositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBAJumpEndRotationOffset,
|
|
IKWeaponManager.thirdPersonWeaponInfo.jumpEndPosition.position, IKWeaponManager.thirdPersonWeaponInfo.jumpEndPosition.rotation,
|
|
"Move FBA Jump End Position Handle");
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
if (IKWeaponManager.showFBARunGizmo) {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.overrideFBAValuesForOffset) {
|
|
targetPosition = IKWeaponManager.transform.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBARunPositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.transform.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBARunRotationOffset);
|
|
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBARunPositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBARunRotationOffset,
|
|
IKWeaponManager.transform.position, IKWeaponManager.transform.rotation,
|
|
"Move FBA Run Start Position Handle");
|
|
} else {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.FBARunPositionOffset != null) {
|
|
targetPosition = IKWeaponManager.thirdPersonWeaponInfo.runPosition.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBARunPositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.thirdPersonWeaponInfo.runPosition.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBARunRotationOffset);
|
|
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBARunPositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBARunRotationOffset,
|
|
IKWeaponManager.thirdPersonWeaponInfo.runPosition.position, IKWeaponManager.thirdPersonWeaponInfo.runPosition.rotation,
|
|
"Move FBA Run Start Position Handle");
|
|
}
|
|
}
|
|
}
|
|
|
|
if (IKWeaponManager.showFBAObstacleGizmo) {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.overrideFBAValuesForOffset) {
|
|
targetPosition = IKWeaponManager.transform.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBAObstaclePositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.transform.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBAObstacleRotationOffset);
|
|
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBAObstaclePositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBAObstacleRotationOffset,
|
|
IKWeaponManager.transform.position, IKWeaponManager.transform.rotation,
|
|
"Move FBA Run Start Position Handle");
|
|
} else {
|
|
if (IKWeaponManager.thirdPersonWeaponInfo.FBAObstaclePositionOffset != null) {
|
|
targetPosition = IKWeaponManager.thirdPersonWeaponInfo.runPosition.position +
|
|
IKWeaponManager.thirdPersonWeaponInfo.FBAObstaclePositionOffset;
|
|
|
|
targetRotation = IKWeaponManager.thirdPersonWeaponInfo.runPosition.rotation *
|
|
Quaternion.Euler (IKWeaponManager.thirdPersonWeaponInfo.FBAObstacleRotationOffset);
|
|
|
|
|
|
showPositionHandleDirectly (targetPosition, targetRotation,
|
|
ref IKWeaponManager.thirdPersonWeaponInfo.FBAObstaclePositionOffset, ref IKWeaponManager.thirdPersonWeaponInfo.FBAObstacleRotationOffset,
|
|
IKWeaponManager.thirdPersonWeaponInfo.runPosition.position, IKWeaponManager.thirdPersonWeaponInfo.runPosition.rotation,
|
|
"Move FBA Run Start Position Handle");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public void showPositionHandle (Transform currentTransform, string handleName)
|
|
{
|
|
currentRotationHandle = Tools.pivotRotation == PivotRotation.Local ? currentTransform.rotation : Quaternion.identity;
|
|
|
|
EditorGUI.BeginChangeCheck ();
|
|
|
|
curretPositionHandle = currentTransform.position;
|
|
|
|
if (Tools.current == Tool.Move) {
|
|
curretPositionHandle = Handles.DoPositionHandle (curretPositionHandle, currentRotationHandle);
|
|
}
|
|
|
|
currentRotationHandle = currentTransform.rotation;
|
|
|
|
if (Tools.current == Tool.Rotate) {
|
|
currentRotationHandle = Handles.DoRotationHandle (currentRotationHandle, curretPositionHandle);
|
|
}
|
|
|
|
if (EditorGUI.EndChangeCheck ()) {
|
|
Undo.RecordObject (currentTransform, handleName);
|
|
currentTransform.position = curretPositionHandle;
|
|
currentTransform.rotation = currentRotationHandle;
|
|
}
|
|
}
|
|
|
|
public void showPositionHandleDirectly (Vector3 transformPosition, Quaternion transformRotation,
|
|
ref Vector3 FBAWalkPositionOffset, ref Vector3 FBAWalkRotationOffset,
|
|
Vector3 originPosition, Quaternion originRotation, string handleName)
|
|
{
|
|
currentRotationHandle = Tools.pivotRotation == PivotRotation.Local ? transformRotation : Quaternion.identity;
|
|
|
|
EditorGUI.BeginChangeCheck ();
|
|
|
|
curretPositionHandle = transformPosition;
|
|
|
|
if (Tools.current == Tool.Move) {
|
|
curretPositionHandle = Handles.DoPositionHandle (curretPositionHandle, currentRotationHandle);
|
|
}
|
|
|
|
currentRotationHandle = transformRotation;
|
|
|
|
if (Tools.current == Tool.Rotate) {
|
|
currentRotationHandle = Handles.DoRotationHandle (currentRotationHandle, curretPositionHandle);
|
|
}
|
|
|
|
if (EditorGUI.EndChangeCheck ()) {
|
|
Undo.RecordObject (IKWeaponManager.transform, handleName);
|
|
FBAWalkPositionOffset = curretPositionHandle - originPosition;
|
|
FBAWalkRotationOffset = (Quaternion.Inverse (originRotation) * currentRotationHandle).eulerAngles;
|
|
}
|
|
}
|
|
|
|
public void showFreeMoveHandle (Transform currentTransform, string handleName, float handleRadius)
|
|
{
|
|
EditorGUI.BeginChangeCheck ();
|
|
|
|
currentFreeHandlePosition = currentTransform.position;
|
|
var fmh_1094_84_638979118404681935 = Quaternion.identity; newFreeHandlePosition = Handles.FreeMoveHandle (currentFreeHandlePosition, handleRadius, snapValue, Handles.CircleHandleCap);
|
|
|
|
if (EditorGUI.EndChangeCheck ()) {
|
|
Undo.RecordObject (currentTransform, handleName);
|
|
currentTransform.position = newFreeHandlePosition;
|
|
}
|
|
}
|
|
|
|
public override void OnInspectorGUI ()
|
|
{
|
|
EditorGUILayout.Space ();
|
|
|
|
buttonStyle = new GUIStyle (GUI.skin.button);
|
|
|
|
buttonStyle.fontStyle = FontStyle.Bold;
|
|
buttonStyle.fontSize = 12;
|
|
|
|
GUILayout.BeginVertical ("Weapon State", "window", GUILayout.Height (30));
|
|
|
|
GUILayout.Label ("Weapon Enabled\t\t" + weaponEnabled.boolValue);
|
|
|
|
GUILayout.Label ("Is Current Weapon\t\t" + currentWeapon.boolValue);
|
|
|
|
GUILayout.Label ("Carrying Weapon\t\t" + carrying.boolValue);
|
|
|
|
GUILayout.Label ("Aiming Weapon\t\t\t" + aiming.boolValue);
|
|
|
|
GUILayout.Label ("Moving Weapon\t\t\t" + moving.boolValue);
|
|
GUILayout.Label ("IK Paused\t\t\t" + IKPausedOnHandsActive.boolValue);
|
|
|
|
GUILayout.Label ("Surface Detected\t\t" + surfaceDetected.boolValue);
|
|
|
|
GUILayout.Label ("In Run Position\t\t\t" + weaponInRunPosition.boolValue);
|
|
|
|
GUILayout.Label ("Jump In Process\t\t\t" + jumpingOnProcess.boolValue);
|
|
GUILayout.Label ("Player Jump Start\t\t" + playerOnJumpStart.boolValue);
|
|
GUILayout.Label ("Player Jump End\t\t" + playerOnJumpEnd.boolValue);
|
|
GUILayout.Label ("Crouch Active\t\t\t" + crouchingActive.boolValue);
|
|
GUILayout.Label ("Reloading\t\t\t" + reloadingWeapon.boolValue);
|
|
GUILayout.Label ("Action Active\t\t\t" + actionActive.boolValue);
|
|
GUILayout.Label ("Update Active\t\t\t" + weaponUpdateActive.boolValue);
|
|
|
|
GUILayout.Label ("FBA Active\t\t\t" + fullBodyAwarenessActive.boolValue);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Dual Weapon State", "window");
|
|
GUILayout.Label ("Using Dual Weapons\t\t" + usingDualWeapon.boolValue);
|
|
GUILayout.Label ("Disabling Dual State\t\t" + disablingDualWeapon.boolValue);
|
|
GUILayout.Label ("Right Dual Weapon\t\t" + usingRightHandDualWeapon.boolValue);
|
|
GUILayout.Label ("Configured as Dual\t\t" + weaponConfiguredAsDualWeapon.boolValue);
|
|
GUILayout.Label ("Linked Weapon\t\t" + linkedDualWeaponName.stringValue);
|
|
GUILayout.EndVertical ();
|
|
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
buttonColor = GUI.backgroundColor;
|
|
|
|
EditorGUILayout.BeginVertical ();
|
|
if (showSettings.boolValue) {
|
|
GUI.backgroundColor = Color.gray;
|
|
inputListOpenedText = "Hide Main Settings";
|
|
} else {
|
|
GUI.backgroundColor = buttonColor;
|
|
inputListOpenedText = "Show Main Settings";
|
|
}
|
|
if (GUILayout.Button (inputListOpenedText)) {
|
|
showSettings.boolValue = !showSettings.boolValue;
|
|
}
|
|
|
|
if (showElementSettings.boolValue) {
|
|
GUI.backgroundColor = Color.gray;
|
|
inputListOpenedText = "Hide Element Settings";
|
|
} else {
|
|
GUI.backgroundColor = buttonColor;
|
|
inputListOpenedText = "Show Element Settings";
|
|
}
|
|
if (GUILayout.Button (inputListOpenedText)) {
|
|
showElementSettings.boolValue = !showElementSettings.boolValue;
|
|
}
|
|
|
|
if (showPrefabSettings.boolValue) {
|
|
GUI.backgroundColor = Color.gray;
|
|
inputListOpenedText = "Hide Prefab Settings";
|
|
} else {
|
|
GUI.backgroundColor = buttonColor;
|
|
inputListOpenedText = "Show Prefab Settings";
|
|
}
|
|
if (GUILayout.Button (inputListOpenedText)) {
|
|
showPrefabSettings.boolValue = !showPrefabSettings.boolValue;
|
|
}
|
|
|
|
if (GUILayout.Button ("Hide All Settings")) {
|
|
showSettings.boolValue = false;
|
|
showElementSettings.boolValue = false;
|
|
showPrefabSettings.boolValue = false;
|
|
showThirdPersonSettings.boolValue = false;
|
|
|
|
showSwaySettings.boolValue = false;
|
|
showWalkSwaySettings.boolValue = false;
|
|
showRunSwaySettings.boolValue = false;
|
|
showFirstPersonSettings.boolValue = false;
|
|
showSwaySettings.boolValue = false;
|
|
showWalkSwaySettings.boolValue = false;
|
|
showRunSwaySettings.boolValue = false;
|
|
|
|
showIdleSettings.boolValue = false;
|
|
showShotShakeSettings.boolValue = false;
|
|
showShotCameraNoiseSettings.boolValue = false;
|
|
showSingleWeaponSettings = false;
|
|
showDualWeaponSettings = false;
|
|
showElbowInfo = false;
|
|
}
|
|
GUI.backgroundColor = buttonColor;
|
|
EditorGUILayout.EndVertical ();
|
|
|
|
if (showSettings.boolValue) {
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.LabelField ("MAIN SETTINGS", style);
|
|
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Main Settings", "window");
|
|
EditorGUILayout.PropertyField (weaponGameObject);
|
|
EditorGUILayout.PropertyField (extraRotation);
|
|
EditorGUILayout.PropertyField (aimFovValue);
|
|
EditorGUILayout.PropertyField (aimFovSpeed);
|
|
EditorGUILayout.PropertyField (weaponEnabled);
|
|
EditorGUILayout.PropertyField (hideWeaponIfKeptInThirdPerson);
|
|
EditorGUILayout.PropertyField (canBeDropped);
|
|
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("New Animator Weapon ID Settings", "window");
|
|
EditorGUILayout.PropertyField (setNewAnimatorWeaponID);
|
|
if (setNewAnimatorWeaponID.boolValue) {
|
|
EditorGUILayout.PropertyField (newAnimatorWeaponID);
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (setNewAnimatorDualWeaponID);
|
|
if (setNewAnimatorDualWeaponID.boolValue) {
|
|
EditorGUILayout.PropertyField (newAnimatorDualWeaponID);
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (setUpperBodyBendingMultiplier);
|
|
if (setUpperBodyBendingMultiplier.boolValue) {
|
|
EditorGUILayout.PropertyField (horizontalBendingMultiplier);
|
|
EditorGUILayout.PropertyField (verticalBendingMultiplier);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (followFullRotationPointDirection);
|
|
if (followFullRotationPointDirection.boolValue) {
|
|
EditorGUILayout.PropertyField (followFullRotationClampX);
|
|
EditorGUILayout.PropertyField (followFullRotationClampY);
|
|
EditorGUILayout.PropertyField (followFullRotationClampZ);
|
|
}
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (setNewAnimatorCrouchID);
|
|
if (setNewAnimatorCrouchID.boolValue) {
|
|
EditorGUILayout.PropertyField (newAnimatorCrouchID);
|
|
}
|
|
|
|
EditorGUILayout.PropertyField (ignoreCrouchWhileWeaponActive);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (pivotPointRotationActive);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (useNewMaxAngleDifference);
|
|
if (useNewMaxAngleDifference.boolValue) {
|
|
EditorGUILayout.PropertyField (horizontalMaxAngleDifference);
|
|
EditorGUILayout.PropertyField (verticalMaxAngleDifference);
|
|
}
|
|
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Unlock Cursor Settings", "window");
|
|
EditorGUILayout.PropertyField (canUnlockCursor, new GUIContent ("Can Unlock Cursor On First Person"));
|
|
EditorGUILayout.PropertyField (canUnlockCursorOnThirdPerson);
|
|
EditorGUILayout.PropertyField (disableHUDWhenCursorUnlocked);
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Weapon Components", "window");
|
|
EditorGUILayout.PropertyField (weaponSystemManager);
|
|
EditorGUILayout.PropertyField (weaponsManager);
|
|
EditorGUILayout.PropertyField (weaponTransform);
|
|
|
|
EditorGUILayout.PropertyField (rightHandMountPoint);
|
|
EditorGUILayout.PropertyField (leftHandMountPoint);
|
|
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("First Person Animator Settings", "window");
|
|
EditorGUILayout.PropertyField (useWeaponAnimatorFirstPerson);
|
|
if (useWeaponAnimatorFirstPerson.boolValue) {
|
|
EditorGUILayout.PropertyField (mainWeaponAnimatorSystem);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (GUILayout.Button ("Select Weapon Animator On Editor")) {
|
|
IKWeaponManager.selectWeaponAnimator ();
|
|
}
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Weapon Surface Collision Settings", "window");
|
|
EditorGUILayout.PropertyField (layer);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (extraColliderCenterOnFireWeaponOnFBA);
|
|
EditorGUILayout.PropertyField (extraColliderScaleOnFireWeaponOnFBA);
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Weapon Attachment Components", "window");
|
|
GUILayout.Label ("Attachment Assigned\t " + weaponUsesAttachment.boolValue);
|
|
EditorGUILayout.PropertyField (mainWeaponAttachmentSystem);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (GUILayout.Button ("Check Attachments Assigned")) {
|
|
IKWeaponManager.checkIfWeaponAttachmentAssigned ();
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (GUILayout.Button ("Select Attachment System On Editor")) {
|
|
IKWeaponManager.selectAttachmentSystemOnEditor ();
|
|
}
|
|
|
|
GUILayout.EndVertical ();
|
|
}
|
|
|
|
if (showSettings.boolValue || showElementSettings.boolValue || showPrefabSettings.boolValue) {
|
|
style.fontStyle = FontStyle.Bold;
|
|
style.fontSize = 30;
|
|
style.alignment = TextAnchor.MiddleCenter;
|
|
style.normal.textColor = Color.black;
|
|
}
|
|
|
|
if (showElementSettings.boolValue) {
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.LabelField ("WEAPON SETTINGS", style);
|
|
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUI.color = Color.cyan;
|
|
EditorGUILayout.HelpBox ("Configure the settings for third and first person", MessageType.None);
|
|
GUI.color = Color.white;
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
buttonColor = GUI.backgroundColor;
|
|
EditorGUILayout.BeginVertical ();
|
|
if (showThirdPersonSettings.boolValue) {
|
|
GUI.backgroundColor = Color.gray;
|
|
inputListOpenedText = "\nHide Third Person Settings\n";
|
|
} else {
|
|
GUI.backgroundColor = buttonColor;
|
|
inputListOpenedText = "\nShow Third Person Settings\n";
|
|
}
|
|
if (GUILayout.Button (inputListOpenedText)) {
|
|
showThirdPersonSettings.boolValue = !showThirdPersonSettings.boolValue;
|
|
}
|
|
GUI.backgroundColor = buttonColor;
|
|
EditorGUILayout.EndVertical ();
|
|
|
|
if (showThirdPersonSettings.boolValue) {
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
showSectionTitle ("THIRD PERSON WEAPON SETTINGS");
|
|
|
|
GUILayout.BeginVertical ("Third Person Weapon Settings", "window");
|
|
showWeaponSettings (thirdPersonWeaponInfo, true);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (thirdPersonUseSwayInfo);
|
|
|
|
if (thirdPersonUseSwayInfo.boolValue) {
|
|
EditorGUILayout.BeginVertical ();
|
|
if (showSwaySettings.boolValue) {
|
|
GUI.backgroundColor = Color.gray;
|
|
inputListOpenedText = "Hide Third Person Sway Settings";
|
|
} else {
|
|
GUI.backgroundColor = buttonColor;
|
|
inputListOpenedText = "Show Third Person Sway Settings";
|
|
}
|
|
if (GUILayout.Button (inputListOpenedText)) {
|
|
showSwaySettings.boolValue = !showSwaySettings.boolValue;
|
|
}
|
|
GUI.backgroundColor = buttonColor;
|
|
EditorGUILayout.EndVertical ();
|
|
|
|
if (showSwaySettings.boolValue) {
|
|
if (thirdPersonUseRunPosition.boolValue && thirdPersonUseRunSwayInfo.boolValue) {
|
|
GUILayout.BeginVertical ("box");
|
|
|
|
EditorGUILayout.BeginVertical ();
|
|
if (showWalkSwaySettings.boolValue) {
|
|
GUI.backgroundColor = Color.gray;
|
|
inputListOpenedText = "Hide Walk Sway Settings";
|
|
} else {
|
|
GUI.backgroundColor = buttonColor;
|
|
inputListOpenedText = "Show Walk Sway Settings";
|
|
}
|
|
if (GUILayout.Button (inputListOpenedText)) {
|
|
showWalkSwaySettings.boolValue = !showWalkSwaySettings.boolValue;
|
|
}
|
|
GUI.backgroundColor = buttonColor;
|
|
EditorGUILayout.EndVertical ();
|
|
|
|
if (showWalkSwaySettings.boolValue) {
|
|
showSelectedSwaySettings (thirdPersonSwayInfo);
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.BeginVertical ();
|
|
if (showRunSwaySettings.boolValue) {
|
|
GUI.backgroundColor = Color.gray;
|
|
inputListOpenedText = "Hide Run Sway Settings";
|
|
} else {
|
|
GUI.backgroundColor = buttonColor;
|
|
inputListOpenedText = "Show Run Sway Settings";
|
|
}
|
|
if (GUILayout.Button (inputListOpenedText)) {
|
|
showRunSwaySettings.boolValue = !showRunSwaySettings.boolValue;
|
|
}
|
|
GUI.backgroundColor = buttonColor;
|
|
EditorGUILayout.EndVertical ();
|
|
|
|
if (showRunSwaySettings.boolValue) {
|
|
showSelectedSwaySettings (runThirdPersonSwayInfo);
|
|
}
|
|
EditorGUILayout.EndVertical ();
|
|
} else {
|
|
showSelectedSwaySettings (thirdPersonSwayInfo);
|
|
}
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
}
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
buttonColor = GUI.backgroundColor;
|
|
EditorGUILayout.BeginVertical ();
|
|
if (showFirstPersonSettings.boolValue) {
|
|
GUI.backgroundColor = Color.gray;
|
|
inputListOpenedText = "\nHide First Person Settings\n";
|
|
} else {
|
|
GUI.backgroundColor = buttonColor;
|
|
inputListOpenedText = "\nShow First Person Settings\n";
|
|
}
|
|
if (GUILayout.Button (inputListOpenedText)) {
|
|
showFirstPersonSettings.boolValue = !showFirstPersonSettings.boolValue;
|
|
}
|
|
GUI.backgroundColor = buttonColor;
|
|
EditorGUILayout.EndVertical ();
|
|
|
|
if (showFirstPersonSettings.boolValue) {
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
showSectionTitle ("FIRST PERSON WEAPON SETTINGS");
|
|
|
|
GUILayout.BeginVertical ("First Person Weapon Settings", "window");
|
|
showWeaponSettings (firstPersonWeaponInfo, false);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (firstPersonUseSwayInfo);
|
|
|
|
if (firstPersonUseSwayInfo.boolValue) {
|
|
EditorGUILayout.BeginVertical ();
|
|
if (showSwaySettings.boolValue) {
|
|
GUI.backgroundColor = Color.gray;
|
|
inputListOpenedText = "Hide First Person Sway Settings";
|
|
} else {
|
|
GUI.backgroundColor = buttonColor;
|
|
inputListOpenedText = "Show First Person Sway Settings";
|
|
}
|
|
if (GUILayout.Button (inputListOpenedText)) {
|
|
showSwaySettings.boolValue = !showSwaySettings.boolValue;
|
|
}
|
|
GUI.backgroundColor = buttonColor;
|
|
EditorGUILayout.EndVertical ();
|
|
|
|
if (showSwaySettings.boolValue) {
|
|
|
|
if (firstPersonUseRunPosition.boolValue && firstPersonUseRunSwayInfo.boolValue) {
|
|
GUILayout.BeginVertical ("box");
|
|
|
|
EditorGUILayout.BeginVertical ();
|
|
if (showWalkSwaySettings.boolValue) {
|
|
GUI.backgroundColor = Color.gray;
|
|
inputListOpenedText = "Hide Walk Sway Settings";
|
|
} else {
|
|
GUI.backgroundColor = buttonColor;
|
|
inputListOpenedText = "Show Walk Sway Settings";
|
|
}
|
|
if (GUILayout.Button (inputListOpenedText)) {
|
|
showWalkSwaySettings.boolValue = !showWalkSwaySettings.boolValue;
|
|
}
|
|
GUI.backgroundColor = buttonColor;
|
|
EditorGUILayout.EndVertical ();
|
|
|
|
if (showWalkSwaySettings.boolValue) {
|
|
showSelectedSwaySettings (firstPersonSwayInfo);
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.BeginVertical ();
|
|
if (showRunSwaySettings.boolValue) {
|
|
GUI.backgroundColor = Color.gray;
|
|
inputListOpenedText = "Hide Run Sway Settings";
|
|
} else {
|
|
GUI.backgroundColor = buttonColor;
|
|
inputListOpenedText = "Show Run Sway Settings";
|
|
}
|
|
if (GUILayout.Button (inputListOpenedText)) {
|
|
showRunSwaySettings.boolValue = !showRunSwaySettings.boolValue;
|
|
}
|
|
GUI.backgroundColor = buttonColor;
|
|
EditorGUILayout.EndVertical ();
|
|
|
|
if (showRunSwaySettings.boolValue) {
|
|
showSelectedSwaySettings (runFirstPersonSwayInfo);
|
|
}
|
|
EditorGUILayout.EndVertical ();
|
|
} else {
|
|
showSelectedSwaySettings (firstPersonSwayInfo);
|
|
}
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
}
|
|
|
|
EditorGUILayout.BeginVertical ();
|
|
if (showIdleSettings.boolValue) {
|
|
GUI.backgroundColor = Color.gray;
|
|
inputListOpenedText = "Hide Idle Settings";
|
|
} else {
|
|
GUI.backgroundColor = buttonColor;
|
|
inputListOpenedText = "Show Idle Settings";
|
|
}
|
|
if (GUILayout.Button (inputListOpenedText)) {
|
|
showIdleSettings.boolValue = !showIdleSettings.boolValue;
|
|
}
|
|
GUI.backgroundColor = buttonColor;
|
|
EditorGUILayout.EndVertical ();
|
|
|
|
if (showIdleSettings.boolValue) {
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("First Person Weapon Idle Settings", "window");
|
|
EditorGUILayout.PropertyField (useWeaponIdle);
|
|
if (useWeaponIdle.boolValue) {
|
|
EditorGUILayout.PropertyField (timeToActiveWeaponIdle);
|
|
EditorGUILayout.PropertyField (idlePositionAmount);
|
|
EditorGUILayout.PropertyField (idleRotationAmount);
|
|
EditorGUILayout.PropertyField (idleSpeed);
|
|
GUILayout.BeginVertical ("Weapon State", "window");
|
|
EditorGUILayout.PropertyField (playerMoving);
|
|
EditorGUILayout.PropertyField (idleActive);
|
|
GUILayout.EndVertical ();
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
}
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
buttonColor = GUI.backgroundColor;
|
|
EditorGUILayout.BeginVertical ();
|
|
if (showFullBodyAwarernessSettings.boolValue) {
|
|
GUI.backgroundColor = Color.gray;
|
|
inputListOpenedText = "\nHide Full Body Awareness Settings\n";
|
|
} else {
|
|
GUI.backgroundColor = buttonColor;
|
|
inputListOpenedText = "\nShow Full Body Awareness Settings\n";
|
|
}
|
|
if (GUILayout.Button (inputListOpenedText)) {
|
|
showFullBodyAwarernessSettings.boolValue = !showFullBodyAwarernessSettings.boolValue;
|
|
}
|
|
GUI.backgroundColor = buttonColor;
|
|
EditorGUILayout.EndVertical ();
|
|
|
|
if (showFullBodyAwarernessSettings.boolValue) {
|
|
EditorGUILayout.Space ();
|
|
|
|
showSectionTitle ("FULL BODY AWARENESS SETTINGS");
|
|
|
|
GUILayout.BeginVertical ("Full Body Awareness Settings", "window");
|
|
showFullBodyAwarenessWeaponSettings (thirdPersonWeaponInfo, true);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (showFBAGizmo);
|
|
EditorGUILayout.PropertyField (showFBAWalkGizmo);
|
|
EditorGUILayout.PropertyField (showFBAAimGizmo);
|
|
EditorGUILayout.PropertyField (showFBACrouchGizmo);
|
|
EditorGUILayout.PropertyField (showFBAJumpGizmo);
|
|
EditorGUILayout.PropertyField (showFBARunGizmo);
|
|
EditorGUILayout.PropertyField (showFBAObstacleGizmo);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.EndVertical ();
|
|
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.BeginVertical ();
|
|
if (showShotShakeSettings.boolValue) {
|
|
GUI.backgroundColor = Color.gray;
|
|
inputListOpenedText = "Hide Shot Shake Settings";
|
|
} else {
|
|
GUI.backgroundColor = buttonColor;
|
|
inputListOpenedText = "Show Shot Shake Settings";
|
|
}
|
|
if (GUILayout.Button (inputListOpenedText)) {
|
|
showShotShakeSettings.boolValue = !showShotShakeSettings.boolValue;
|
|
}
|
|
GUI.backgroundColor = buttonColor;
|
|
EditorGUILayout.EndVertical ();
|
|
|
|
if (showShotShakeSettings.boolValue) {
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Shot Shake Settings", "window");
|
|
EditorGUILayout.PropertyField (sameValueBothViews);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (sameValueBothViews.boolValue) {
|
|
showShakeInfo (thirdPersonshotShakeInfo, false, true);
|
|
} else {
|
|
EditorGUILayout.PropertyField (useShotShakeInThirdPerson);
|
|
if (useShotShakeInThirdPerson.boolValue) {
|
|
showShakeInfo (thirdPersonshotShakeInfo, false, true);
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (useShotShakeInFirstPerson);
|
|
if (useShotShakeInFirstPerson.boolValue) {
|
|
showShakeInfo (firstPersonshotShakeInfo, true, true);
|
|
}
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.BeginVertical ();
|
|
if (showShotCameraNoiseSettings.boolValue) {
|
|
GUI.backgroundColor = Color.gray;
|
|
inputListOpenedText = "Hide Shot Camera Noise Settings";
|
|
} else {
|
|
GUI.backgroundColor = buttonColor;
|
|
inputListOpenedText = "Show Shot Camera Noise Settings";
|
|
}
|
|
if (GUILayout.Button (inputListOpenedText)) {
|
|
showShotCameraNoiseSettings.boolValue = !showShotCameraNoiseSettings.boolValue;
|
|
}
|
|
GUI.backgroundColor = buttonColor;
|
|
EditorGUILayout.EndVertical ();
|
|
|
|
if (showShotCameraNoiseSettings.boolValue) {
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Shot Camera Noise Settings", "window");
|
|
EditorGUILayout.PropertyField (useShotCameraNoise);
|
|
if (useShotCameraNoise.boolValue) {
|
|
GUILayout.Label (new GUIContent ("Third Person"), EditorStyles.boldLabel);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.Label (new GUIContent ("Vertical Range"), EditorStyles.boldLabel);
|
|
GUILayout.BeginHorizontal ();
|
|
|
|
IKWeaponManager.verticalShotCameraNoiseAmountThirdPerson.x =
|
|
EditorGUILayout.FloatField (IKWeaponManager.verticalShotCameraNoiseAmountThirdPerson.x, GUILayout.MaxWidth (50));
|
|
|
|
EditorGUILayout.MinMaxSlider (ref IKWeaponManager.verticalShotCameraNoiseAmountThirdPerson.x,
|
|
ref IKWeaponManager.verticalShotCameraNoiseAmountThirdPerson.y, -2, 2);
|
|
|
|
IKWeaponManager.verticalShotCameraNoiseAmountThirdPerson.y =
|
|
EditorGUILayout.FloatField (IKWeaponManager.verticalShotCameraNoiseAmountThirdPerson.y, GUILayout.MaxWidth (50));
|
|
|
|
GUILayout.EndHorizontal ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.Label (new GUIContent ("Horizontal Range"), EditorStyles.boldLabel);
|
|
|
|
GUILayout.BeginHorizontal ();
|
|
|
|
IKWeaponManager.horizontalShotCameraNoiseAmountThirdPerson.x =
|
|
EditorGUILayout.FloatField (IKWeaponManager.horizontalShotCameraNoiseAmountThirdPerson.x, GUILayout.MaxWidth (50));
|
|
|
|
EditorGUILayout.MinMaxSlider (ref IKWeaponManager.horizontalShotCameraNoiseAmountThirdPerson.x,
|
|
ref IKWeaponManager.horizontalShotCameraNoiseAmountThirdPerson.y, -2, 2);
|
|
|
|
IKWeaponManager.horizontalShotCameraNoiseAmountThirdPerson.y =
|
|
EditorGUILayout.FloatField (IKWeaponManager.horizontalShotCameraNoiseAmountThirdPerson.y, GUILayout.MaxWidth (50));
|
|
|
|
GUILayout.EndHorizontal ();
|
|
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.Label (new GUIContent ("First Person"), EditorStyles.boldLabel);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.Label (new GUIContent ("Vertical Range"), EditorStyles.boldLabel);
|
|
GUILayout.BeginHorizontal ();
|
|
|
|
IKWeaponManager.verticalShotCameraNoiseAmountFirstPerson.x =
|
|
EditorGUILayout.FloatField (IKWeaponManager.verticalShotCameraNoiseAmountFirstPerson.x, GUILayout.MaxWidth (50));
|
|
|
|
EditorGUILayout.MinMaxSlider (ref IKWeaponManager.verticalShotCameraNoiseAmountFirstPerson.x,
|
|
ref IKWeaponManager.verticalShotCameraNoiseAmountFirstPerson.y, -2, 2);
|
|
|
|
IKWeaponManager.verticalShotCameraNoiseAmountFirstPerson.y =
|
|
EditorGUILayout.FloatField (IKWeaponManager.verticalShotCameraNoiseAmountFirstPerson.y, GUILayout.MaxWidth (50));
|
|
|
|
GUILayout.EndHorizontal ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
|
|
GUILayout.Label (new GUIContent ("Horizontal Range"), EditorStyles.boldLabel);
|
|
|
|
GUILayout.BeginHorizontal ();
|
|
IKWeaponManager.horizontalShotCameraNoiseAmountFirstPerson.x =
|
|
EditorGUILayout.FloatField (IKWeaponManager.horizontalShotCameraNoiseAmountFirstPerson.x, GUILayout.MaxWidth (50));
|
|
|
|
EditorGUILayout.MinMaxSlider (ref IKWeaponManager.horizontalShotCameraNoiseAmountFirstPerson.x,
|
|
ref IKWeaponManager.horizontalShotCameraNoiseAmountFirstPerson.y, -2, 2);
|
|
|
|
IKWeaponManager.horizontalShotCameraNoiseAmountFirstPerson.y =
|
|
EditorGUILayout.FloatField (IKWeaponManager.horizontalShotCameraNoiseAmountFirstPerson.y, GUILayout.MaxWidth (50));
|
|
|
|
GUILayout.EndHorizontal ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (useShotCameraNoiseDuration);
|
|
if (useShotCameraNoiseDuration.boolValue) {
|
|
EditorGUILayout.PropertyField (shotCameraNoiseDuration);
|
|
}
|
|
}
|
|
GUILayout.EndVertical ();
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Gizmo Options", "window");
|
|
EditorGUILayout.PropertyField (showThirdPersonGizmo);
|
|
EditorGUILayout.PropertyField (showFirstPersonGizmo);
|
|
|
|
if (showThirdPersonGizmo.boolValue || showFirstPersonGizmo.boolValue) {
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (gizmoLabelColor);
|
|
|
|
EditorGUILayout.PropertyField (showPositionGizmo);
|
|
|
|
EditorGUILayout.PropertyField (showMainWeaponPositionsGizmo);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (showCollisionDetectionGizmo);
|
|
EditorGUILayout.PropertyField (showEditAttachmentGizmo);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (showHandsWaypointGizmo);
|
|
EditorGUILayout.PropertyField (showWeaponWaypointGizmo);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Handle Options", "window");
|
|
if (showThirdPersonGizmo.boolValue) {
|
|
EditorGUILayout.PropertyField (thirdPersonUseHandle);
|
|
if (thirdPersonUseHandle.boolValue) {
|
|
EditorGUILayout.PropertyField (thirdPersonHandleRadius);
|
|
EditorGUILayout.PropertyField (thirdPersonHandleGizmoColor);
|
|
}
|
|
EditorGUILayout.PropertyField (thirdPersonUsePositionHandle);
|
|
}
|
|
|
|
if (showFirstPersonGizmo.boolValue) {
|
|
EditorGUILayout.PropertyField (firstPersonUseHandle);
|
|
if (firstPersonUseHandle.boolValue) {
|
|
EditorGUILayout.PropertyField (firstPersonHandleRadius);
|
|
EditorGUILayout.PropertyField (firstPersonHandleGizmoColor);
|
|
}
|
|
EditorGUILayout.PropertyField (firstPersonUsePositionHandle);
|
|
}
|
|
GUILayout.EndVertical ();
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.EndVertical ();
|
|
}
|
|
|
|
if (showPrefabSettings.boolValue) {
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.LabelField ("WEAPON PREFAB SETTINGS", style);
|
|
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Weapon Pickup Prefab (No Inventory) Settings", "window");
|
|
EditorGUILayout.PropertyField (relativePathWeaponsPickups);
|
|
EditorGUILayout.PropertyField (emtpyWeaponPrefab);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (weaponPrefabModel, new GUIContent ("Weapon Pickup (No Inventory)"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (GUILayout.Button ("Create Weapon Pickup Prefab (No Inventory)")) {
|
|
IKWeaponManager.createWeaponPrefab ();
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Weapon Pickup Prefab (Inventory) Settings", "window");
|
|
|
|
EditorGUILayout.PropertyField (inventoryWeaponPrefabObject, new GUIContent ("Weapon Pickup (Inventory)"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (GUILayout.Button ("Assign Weapon Pickup Prefab (Inventory)")) {
|
|
IKWeaponManager.assignWeaponPrefab ();
|
|
}
|
|
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Create Inventory Weapon And Ammo Prefabs Settings", "window");
|
|
EditorGUILayout.PropertyField (relativePathWeaponsMesh);
|
|
EditorGUILayout.PropertyField (relativePathWeaponsAmmoMesh);
|
|
EditorGUILayout.PropertyField (inventoryWeaponCategoryName);
|
|
EditorGUILayout.PropertyField (weaponName);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (GUILayout.Button ("Create Inventory Weapon Object")) {
|
|
IKWeaponManager.createInventoryWeapon ();
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (inventoryAmmoCategoryName);
|
|
EditorGUILayout.PropertyField (ammoAmountPerPickup);
|
|
EditorGUILayout.PropertyField (weaponAmmoMesh);
|
|
EditorGUILayout.PropertyField (weaponAmmoIconTexture);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (GUILayout.Button ("Create Inventory Weapon Ammo Object")) {
|
|
IKWeaponManager.createInventoryWeaponAmmo ();
|
|
}
|
|
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
}
|
|
|
|
if (GUI.changed) {
|
|
serializedObject.ApplyModifiedProperties ();
|
|
EditorUtility.SetDirty (target);
|
|
}
|
|
}
|
|
|
|
void showSelectedSwaySettings (SerializedProperty list)
|
|
{
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Sway Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useSway"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (list.FindPropertyRelative ("useSway").boolValue) {
|
|
GUILayout.BeginVertical ("Sway Position Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("usePositionSway"));
|
|
if (list.FindPropertyRelative ("usePositionSway").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("swayPositionVertical"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("swayPositionHorizontal"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("swayPositionMaxAmount"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("swayPositionSmooth"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Sway Rotation Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useRotationSway"));
|
|
if (list.FindPropertyRelative ("useRotationSway").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("swayRotationVertical"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("swayRotationHorizontal"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("swayRotationSmooth"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Sway Bob Position Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useBobPosition"));
|
|
if (list.FindPropertyRelative ("useBobPosition").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("bobPositionSpeed"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("bobPositionAmount"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useInputMultiplierForBobPosition"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Sway Bob Rotation Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useBobRotation"));
|
|
if (list.FindPropertyRelative ("useBobRotation").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("bobRotationVertical"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("bobRotationHorizontal"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useInputMultiplierForBobRotation"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Position Clamp Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useSwayPositionClamp"));
|
|
if (list.FindPropertyRelative ("useSwayPositionClamp").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("swayPositionHorizontalClamp"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("swayPositionVerticalClamp"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Rotation Clamp Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useSwayRotationClamp"));
|
|
if (list.FindPropertyRelative ("useSwayRotationClamp").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("swayRotationClampX"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("swayRotationClampZ"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Reset Position Rotation Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("resetSwayPositionSmooth"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("resetSwayRotationSmooth"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("resetSwayValueSpeed"));
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Extra Sway Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("movingExtraPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("swayPositionRunningMultiplier"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("swayRotationRunningMultiplier"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("bobPositionRunningMultiplier"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("bobRotationRunningMultiplier"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("swayPositionPercentageAiming"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("swayRotationPercentageAiming"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("bobPositionPercentageAiming"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("bobRotationPercentageAiming"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("minMouseAmountForSway"));
|
|
GUILayout.EndVertical ();
|
|
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
}
|
|
|
|
void showWeaponSettings (SerializedProperty list, bool isThirdPerson)
|
|
{
|
|
EditorGUILayout.Space ();
|
|
|
|
showSingleWeaponSettings = list.FindPropertyRelative ("showSingleWeaponSettings").boolValue;
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
listButtonBackgroundColor = GUI.backgroundColor;
|
|
EditorGUILayout.BeginHorizontal ();
|
|
if (showSingleWeaponSettings) {
|
|
GUI.backgroundColor = Color.gray;
|
|
} else {
|
|
GUI.backgroundColor = buttonColor;
|
|
}
|
|
if (GUILayout.Button ("Show Single Weapon Settings")) {
|
|
showSingleWeaponSettings = !showSingleWeaponSettings;
|
|
}
|
|
GUI.backgroundColor = listButtonBackgroundColor;
|
|
EditorGUILayout.EndHorizontal ();
|
|
|
|
list.FindPropertyRelative ("showSingleWeaponSettings").boolValue = showSingleWeaponSettings;
|
|
|
|
if (showSingleWeaponSettings) {
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.LabelField ("SINGLE WEAPON SETTINGS", style);
|
|
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Main Settings", "window");
|
|
|
|
if (isThirdPerson) {
|
|
EditorGUILayout.PropertyField (useLowerRotationSpeedAimedThirdPerson);
|
|
if (useLowerRotationSpeedAimedThirdPerson.boolValue) {
|
|
EditorGUILayout.PropertyField (verticalRotationSpeedAimedInThirdPerson);
|
|
EditorGUILayout.PropertyField (horizontalRotationSpeedAimedInThirdPerson);
|
|
}
|
|
|
|
} else {
|
|
EditorGUILayout.PropertyField (canAimInFirstPerson);
|
|
EditorGUILayout.PropertyField (useLowerRotationSpeedAimed);
|
|
if (useLowerRotationSpeedAimed.boolValue) {
|
|
EditorGUILayout.PropertyField (verticalRotationSpeedAimedInFirstPerson);
|
|
EditorGUILayout.PropertyField (horizontalRotationSpeedAimedInFirstPerson);
|
|
}
|
|
}
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("drawWeaponMovementSpeed"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("aimMovementSpeed"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("crouchMovementSpeed"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("resetWeaponPositionAfterReloadSpeed"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("resetWeaponPositionAfterActionSpeed"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("resumeWeaponIKPositionAfterActionSpeed"));
|
|
|
|
|
|
if (isThirdPerson) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("changeOneOrTwoHandWieldSpeed"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
if (!isThirdPerson) {
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("First Person Arms Settings", "window");
|
|
EditorGUILayout.PropertyField (firstPersonArms);
|
|
|
|
EditorGUILayout.PropertyField (disableOnlyFirstPersonArmsMesh);
|
|
|
|
EditorGUILayout.PropertyField (firstPersonArmsMesh);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
showSimpleList (extraFirstPersonArmsMeshes);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (GUILayout.Button ("Enable Arms On Editor")) {
|
|
IKWeaponManager.enableOrDisableFirstPersonArmsFromEditor (true);
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (GUILayout.Button ("Disable Arms On Editor")) {
|
|
IKWeaponManager.enableOrDisableFirstPersonArmsFromEditor (false);
|
|
}
|
|
|
|
GUILayout.EndVertical ();
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Weapon Positions", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("aimPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("walkPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("keepPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("aimRecoilPosition"));
|
|
|
|
if (!isThirdPerson) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("walkRecoilPosition"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useCrouchPosition"));
|
|
if (list.FindPropertyRelative ("useCrouchPosition").boolValue) {
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("crouchPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("crouchRecoilPosition"));
|
|
}
|
|
}
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("lowerWeaponPosition"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (isThirdPerson) {
|
|
GUILayout.BeginVertical ("Deactivate IK If Not Aiming Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("deactivateIKIfNotAiming"));
|
|
if (list.FindPropertyRelative ("deactivateIKIfNotAiming").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("placeWeaponOnWalkPositionBeforeDeactivateIK"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("weaponPositionInHandForDeactivateIK"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (GUILayout.Button ("Copy Weapon Position In Hand")) {
|
|
IKWeaponManager.copyTransformValuesToBuffer (IKWeaponManager.weaponTransform);
|
|
}
|
|
|
|
if (GUILayout.Button ("Paste Weapon Position In Hand")) {
|
|
IKWeaponManager.pasteTransformValuesToBuffer (list.FindPropertyRelative ("weaponPositionInHandForDeactivateIK").objectReferenceValue as Transform);
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Draw Deactivate IK Weapon Path", "window");
|
|
showSimpleList (thirdPersonDeactivateIKDrawPath);
|
|
GUILayout.EndVertical ();
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Weapon Rotation Point Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useWeaponRotationPoint"));
|
|
if (list.FindPropertyRelative ("useWeaponRotationPoint").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("weaponRotationPoint"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("weaponRotationPointHolder"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("weaponRotationPointHeadLookTarget"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("rotationPointInfo.rotationUpPointAmountMultiplier"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("rotationPointInfo.rotationDownPointAmountMultiplier"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("rotationPointInfo.rotationPointSpeed"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("rotationPointInfo.useRotationUpClamp"));
|
|
if (list.FindPropertyRelative ("rotationPointInfo.useRotationUpClamp").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("rotationPointInfo.rotationUpClampAmount"));
|
|
}
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("rotationPointInfo.useRotationDownClamp"));
|
|
if (list.FindPropertyRelative ("rotationPointInfo.useRotationDownClamp").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("rotationPointInfo.rotationDownClamp"));
|
|
}
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("weaponPivotPoint"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
} else {
|
|
GUILayout.BeginVertical ("Reload Path Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useReloadMovement"));
|
|
if (list.FindPropertyRelative ("useReloadMovement").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("reloadSpline"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("reloadDuration"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("reloadLookDirectionSpeed"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
}
|
|
|
|
GUILayout.BeginVertical ("Surface Position Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("checkSurfaceCollision"));
|
|
if (list.FindPropertyRelative ("checkSurfaceCollision").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("collisionRayDistance"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("collisionMovementSpeed"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("surfaceCollisionPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("surfaceCollisionRayPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("hideCursorOnCollision"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("checkSurfaceOnlyOnAiming"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("avoidShootOnSurfaceDetected"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("avoidAimingIfSurfaceDetected"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Run Position Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useRunPosition"));
|
|
if (list.FindPropertyRelative ("useRunPosition").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("runMovementSpeed"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("runPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("hideCursorOnRun"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useRunSwayInfo"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Jump Position Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useJumpPositions"));
|
|
if (list.FindPropertyRelative ("useJumpPositions").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("jumpStartPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("jumpEndPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("jumpStartMovementSpeed"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("jumpEndtMovementSpeed"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("resetJumpMovementSped"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("delayAtJumpEnd"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Run Fov Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useNewFovOnRun"));
|
|
if (list.FindPropertyRelative ("useNewFovOnRun").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("changeFovSpeed"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("newFovOnRun"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Melee Attack Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useMeleeAttack"));
|
|
if (list.FindPropertyRelative ("useMeleeAttack").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useCustomMeleeAttackLayer"));
|
|
if (list.FindPropertyRelative ("useCustomMeleeAttackLayer").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("customMeleeAttackLayer"));
|
|
}
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackPosition"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useCapsuleRaycast"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackStartMovementSpeed"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackEndMovementSpeed"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackEndDelay"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackRaycastPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackRaycastDistance"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackCapsuleDistance"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackRaycastRadius"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackDamageAmount"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackIgnoreShield"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("ignoreDamageValueOnLayer"));
|
|
if (list.FindPropertyRelative ("ignoreDamageValueOnLayer").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("layerToIgnoreDamage"));
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useMeleeAttackShakeInfo"));
|
|
if (list.FindPropertyRelative ("useMeleeAttackShakeInfo").boolValue) {
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Melee Attack Shake Settings", "window");
|
|
if (isThirdPerson) {
|
|
showShakeInfo (thirdPersonMeleeAttackShakeInfo, false, false);
|
|
} else {
|
|
showShakeInfo (firstPersonMeleeAttackShakeInfo, true, false);
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
}
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("applyMeleeAtackForce"));
|
|
if (list.FindPropertyRelative ("applyMeleeAtackForce").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackForceAmount"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackForceMode"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackApplyForceToVehicles"));
|
|
if (list.FindPropertyRelative ("meleeAttackApplyForceToVehicles").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleAttackForceToVehicles"));
|
|
}
|
|
}
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useMeleeAttackSound"));
|
|
if (list.FindPropertyRelative ("useMeleeAttackSound").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackSurfaceSound"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackSurfaceAudioElement"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackAirSound"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackAirAudioElement"));
|
|
}
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useMeleeAttackParticles"));
|
|
if (list.FindPropertyRelative ("useMeleeAttackParticles").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackParticles"));
|
|
}
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("canActivateReactionSystemTemporally"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("damageReactionID"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("damageTypeID"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("damageCanBeBlocked"));
|
|
|
|
if (isThirdPerson) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useActionSystemForMeleeAttack"));
|
|
if (list.FindPropertyRelative ("useActionSystemForMeleeAttack").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackActionName"));
|
|
}
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useRemoteEvent"));
|
|
if (list.FindPropertyRelative ("useRemoteEvent").boolValue) {
|
|
showSimpleList (list.FindPropertyRelative ("remoteEventNameList"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("checkObjectsToUseRemoteEventsOnDamage"));
|
|
if (list.FindPropertyRelative ("checkObjectsToUseRemoteEventsOnDamage").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("layerToUseRemoteEventsOnDamage"));
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useRemoteEventToEnableParryInteraction"));
|
|
|
|
if (list.FindPropertyRelative ("useRemoteEventToEnableParryInteraction").boolValue) {
|
|
showSimpleList (list.FindPropertyRelative ("remoteEventToEnableParryInteractionNameList"));
|
|
}
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("showMeleeAttackGizmo"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Attachment Positions", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("hasAttachments"));
|
|
if (list.FindPropertyRelative ("hasAttachments").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("editAttachmentPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("leftHandMesh"));
|
|
|
|
if (!isThirdPerson) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("extraLeftHandMesh"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("extraLeftHandMeshParent"));
|
|
}
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("leftHandEditPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("editAttachmentMovementSpeed"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("editAttachmentHandSpeed"));
|
|
|
|
if (!isThirdPerson) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useSightPosition"));
|
|
if (list.FindPropertyRelative ("useSightPosition").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("sightPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("sightRecoilPosition"));
|
|
}
|
|
} else {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("attachmentCameraPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("leftHandParent"));
|
|
}
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("usingSecondPositionForHand"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("secondPositionForHand"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Player Movement Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("canRunWhileCarrying"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("canRunWhileAiming"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useNewCarrySpeed"));
|
|
if (list.FindPropertyRelative ("useNewCarrySpeed").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("newCarrySpeed"));
|
|
}
|
|
|
|
if (!isThirdPerson) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useNewAimSpeed"));
|
|
if (list.FindPropertyRelative ("useNewAimSpeed").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("newAimSpeed"));
|
|
}
|
|
}
|
|
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Recoil Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("weaponHasRecoil"));
|
|
if (list.FindPropertyRelative ("weaponHasRecoil").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("recoilSpeed"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("endRecoilSpeed"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useExtraRandomRecoil"));
|
|
if (list.FindPropertyRelative ("useExtraRandomRecoil").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useExtraRandomRecoilPosition"));
|
|
if (list.FindPropertyRelative ("useExtraRandomRecoilPosition").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("extraRandomRecoilPosition"));
|
|
}
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useExtraRandomRecoilRotation"));
|
|
if (list.FindPropertyRelative ("useExtraRandomRecoilRotation").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("extraRandomRecoilRotation"));
|
|
}
|
|
}
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (isThirdPerson) {
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Quick Draw Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useQuickDrawKeepWeapon"));
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Hands State", "window");
|
|
|
|
GUILayout.Label ("Hands In Position To Aim\t" + list.FindPropertyRelative ("handsInPosition").boolValue);
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Draw/Keep Weapon Bezier Path", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useBezierCurve"));
|
|
if (list.FindPropertyRelative ("useBezierCurve").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("spline"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("bezierDuration"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("lookDirectionSpeed"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Draw/Keep Weapon Path", "window");
|
|
showSimpleList (thirdPersonKeepPath);
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Hands Info", "window");
|
|
showHandList (thirdPersonHandsInfo);
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Head Look Settings", "window");
|
|
EditorGUILayout.PropertyField (headLookWhenAiming);
|
|
if (headLookWhenAiming.boolValue) {
|
|
EditorGUILayout.PropertyField (headLookSpeed);
|
|
EditorGUILayout.PropertyField (headLookTarget);
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Custom Camera State Third Person Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useCustomThirdPersonAimActive"));
|
|
if (list.FindPropertyRelative ("useCustomThirdPersonAimActive").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("customDefaultThirdPersonAimRightStateName"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("customDefaultThirdPersonAimLeftStateName"));
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useCustomThirdPersonAimCrouchActive"));
|
|
if (list.FindPropertyRelative ("useCustomThirdPersonAimCrouchActive").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("customDefaultThirdPersonAimRightCrouchStateName"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("customDefaultThirdPersonAimLeftCrouchStateName"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Custom Camera State Third Person Withot Aim Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useCustomThirdPersonWithoutAimActive"));
|
|
if (list.FindPropertyRelative ("useCustomThirdPersonWithoutAimActive").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("customDefaultThirdPersonWithoutAimRightStateName"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("customDefaultThirdPersonWithoutAimLeftStateName"));
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useCustomThirdPersonWithoutAimCrouchActive"));
|
|
if (list.FindPropertyRelative ("useCustomThirdPersonWithoutAimCrouchActive").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("customDefaultThirdPersonWithoutAimRightCrouchStateName"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("customDefaultThirdPersonWithoutAimLeftCrouchStateName"));
|
|
}
|
|
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Idle ID Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useNewIdleID"));
|
|
if (list.FindPropertyRelative ("useNewIdleID").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("newIdleID"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Draw/Keep Weapon Settings Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useDrawKeepWeaponAnimation"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("drawWeaponActionName"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("keepWeaponActionName"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("delayToPlaceWeaponOnHandOnDrawAnimation"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("delayToPlaceWeaponOnKeepAnimation"));
|
|
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
}
|
|
|
|
showDualWeaponSettings = list.FindPropertyRelative ("showDualWeaponSettings").boolValue;
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
listButtonBackgroundColor = GUI.backgroundColor;
|
|
EditorGUILayout.BeginHorizontal ();
|
|
if (showDualWeaponSettings) {
|
|
GUI.backgroundColor = Color.gray;
|
|
} else {
|
|
GUI.backgroundColor = buttonColor;
|
|
}
|
|
if (GUILayout.Button ("Show Dual Weapon Settings")) {
|
|
showDualWeaponSettings = !showDualWeaponSettings;
|
|
}
|
|
GUI.backgroundColor = listButtonBackgroundColor;
|
|
EditorGUILayout.EndHorizontal ();
|
|
|
|
list.FindPropertyRelative ("showDualWeaponSettings").boolValue = showDualWeaponSettings;
|
|
|
|
if (showDualWeaponSettings) {
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.LabelField ("DUAL WEAPON SETTINGS", style);
|
|
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Dual Weapon Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("canBeUsedAsDualWeapon"));
|
|
if (list.FindPropertyRelative ("canBeUsedAsDualWeapon").boolValue) {
|
|
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.LabelField ("RIGHT HAND WEAPON SETTINGS", style);
|
|
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Right Hand Weapon Settings", "window");
|
|
showDualWeaponInfo (list.FindPropertyRelative ("rightHandDualWeaopnInfo"), isThirdPerson);
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.LabelField ("LEFT HAND WEAPON SETTINGS", style);
|
|
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Left Hand Weapon Settings", "window");
|
|
showDualWeaponInfo (list.FindPropertyRelative ("leftHandDualWeaponInfo"), isThirdPerson);
|
|
GUILayout.EndVertical ();
|
|
}
|
|
GUILayout.EndVertical ();
|
|
}
|
|
}
|
|
|
|
void showDualWeaponInfo (SerializedProperty list, bool isThirdPerson)
|
|
{
|
|
GUILayout.BeginVertical ("Weapon Positions", "window");
|
|
if (isThirdPerson) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("aimPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("aimRecoilPosition"));
|
|
}
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("walkPosition"));
|
|
|
|
if (!isThirdPerson) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("walkRecoilPosition"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("crouchPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("crouchRecoilPosition"));
|
|
}
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("keepPosition"));
|
|
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Weapon Rotation Point Settings", "window");
|
|
if (isThirdPerson) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useDualRotationPoint"));
|
|
if (list.FindPropertyRelative ("useDualRotationPoint").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("weaponRotationPoint"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("weaponRotationPointHolder"));
|
|
}
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (!isThirdPerson) {
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Lower Position Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("lowerWeaponPosition"));
|
|
GUILayout.EndVertical ();
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Surface Position Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("collisionRayDistance"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("surfaceCollisionPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("surfaceCollisionRayPosition"));
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Run Position Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("runPosition"));
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (!isThirdPerson) {
|
|
GUILayout.BeginVertical ("Jump Position Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("jumpStartPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("jumpEndPosition"));
|
|
GUILayout.EndVertical ();
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Melee Attack Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackPosition"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("meleeAttackRaycastPosition"));
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Attachment Positions", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("editAttachmentPosition"));
|
|
if (isThirdPerson) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("attachmentCameraPosition"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
if (!isThirdPerson) {
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("First Person Arms Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("firstPersonHandMesh"));
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Reload Path Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useReloadMovement"));
|
|
if (list.FindPropertyRelative ("useReloadMovement").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("reloadSpline"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("reloadDuration"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("reloadLookDirectionSpeed"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
}
|
|
|
|
if (isThirdPerson) {
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Hands State", "window");
|
|
|
|
GUILayout.Label ("Hands In Position To Aim\t" + list.FindPropertyRelative ("handsInPosition").boolValue);
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Draw/Keep Weapon Bezier Path", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useBezierCurve"));
|
|
if (list.FindPropertyRelative ("useBezierCurve").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("spline"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("bezierDuration"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("lookDirectionSpeed"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Draw/Keep Weapon Path", "window");
|
|
showSimpleList (list.FindPropertyRelative ("keepPath"));
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Hands Info", "window");
|
|
showHandList (list.FindPropertyRelative ("handsInfo"));
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Draw/Keep Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useQuickDrawKeepWeapon"));
|
|
|
|
if (isThirdPerson) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("placeWeaponOnKeepPositionSideBeforeDraw"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
|
|
if (isThirdPerson) {
|
|
GUILayout.BeginVertical ("Deactivate IK If Not Aiming Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("deactivateIKIfNotAiming"));
|
|
if (list.FindPropertyRelative ("deactivateIKIfNotAiming").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("placeWeaponOnWalkPositionBeforeDeactivateIK"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("weaponPositionInHandForDeactivateIK"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (GUILayout.Button ("Copy Weapon Position In Hand")) {
|
|
IKWeaponManager.copyTransformValuesToBuffer (IKWeaponManager.weaponTransform);
|
|
}
|
|
|
|
if (GUILayout.Button ("Paste Weapon Position In Hand")) {
|
|
IKWeaponManager.pasteTransformValuesToBuffer (list.FindPropertyRelative ("weaponPositionInHandForDeactivateIK").objectReferenceValue as Transform);
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Draw Deactivate IK Weapon Path", "window");
|
|
showSimpleList (list.FindPropertyRelative ("deactivateIKDrawPath"));
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
}
|
|
|
|
GUILayout.EndVertical ();
|
|
}
|
|
}
|
|
|
|
void showSimpleList (SerializedProperty list)
|
|
{
|
|
EditorGUILayout.Space ();
|
|
|
|
if (GUILayout.Button ("Show/Hide " + list.displayName, buttonStyle)) {
|
|
list.isExpanded = !list.isExpanded;
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (list.isExpanded) {
|
|
GUILayout.BeginVertical ("box");
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.Label ("Number Of Elements: \t" + list.arraySize);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginHorizontal ();
|
|
if (GUILayout.Button ("Add Element")) {
|
|
list.arraySize++;
|
|
}
|
|
if (GUILayout.Button ("Clear")) {
|
|
list.arraySize = 0;
|
|
}
|
|
GUILayout.EndHorizontal ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
for (int i = 0; i < list.arraySize; i++) {
|
|
GUILayout.BeginHorizontal ();
|
|
if (i < list.arraySize && i >= 0) {
|
|
EditorGUILayout.PropertyField (list.GetArrayElementAtIndex (i), new GUIContent ("", null, ""), false);
|
|
}
|
|
GUILayout.BeginHorizontal ();
|
|
if (GUILayout.Button ("x")) {
|
|
list.DeleteArrayElementAtIndex (i);
|
|
}
|
|
if (GUILayout.Button ("v")) {
|
|
if (i >= 0) {
|
|
list.MoveArrayElement (i, i + 1);
|
|
}
|
|
}
|
|
if (GUILayout.Button ("^")) {
|
|
if (i < list.arraySize) {
|
|
list.MoveArrayElement (i, i - 1);
|
|
}
|
|
}
|
|
GUILayout.EndHorizontal ();
|
|
GUILayout.EndHorizontal ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
}
|
|
GUILayout.EndVertical ();
|
|
}
|
|
}
|
|
|
|
void showHandElementInfo (SerializedProperty list)
|
|
{
|
|
Color listButtonBackgroundColor;
|
|
showElbowInfo = list.FindPropertyRelative ("showElbowInfo").boolValue;
|
|
|
|
GUILayout.BeginVertical ("box");
|
|
|
|
GUILayout.BeginVertical ("Hand Main Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("Name"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("handTransform"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("limb"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("position"), new GUIContent ("IK Position"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("waypointFollower"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("handMovementSpeed"));
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Grabbing Hand ID Settings", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useGrabbingHandID"));
|
|
if (list.FindPropertyRelative ("useGrabbingHandID").boolValue) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("grabbingHandID"));
|
|
}
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Hand Way Points", "window");
|
|
// EditorGUILayout.PropertyField (list.FindPropertyRelative ("useBezierCurve"));
|
|
// if (list.FindPropertyRelative ("useBezierCurve").boolValue) {
|
|
// EditorGUILayout.PropertyField (list.FindPropertyRelative ("spline"));
|
|
// EditorGUILayout.PropertyField (list.FindPropertyRelative ("bezierDuration"));
|
|
// EditorGUILayout.PropertyField (list.FindPropertyRelative ("lookDirectionSpeed"));
|
|
// } else {
|
|
// EditorGUILayout.Space ();
|
|
|
|
showSimpleList (list.FindPropertyRelative ("wayPoints"));
|
|
// }
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("Hand Settings and State", "window");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("handUsedInWeapon"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("usedToDrawWeapon"));
|
|
|
|
GUILayout.Label ("Hand In Position To Aim\t" + list.FindPropertyRelative ("handInPositionToAim").boolValue);
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("HandIKWeight"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("targetValue"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("IKSpeed"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("handMovementSpeed"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("waypointFollower"));
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
listButtonBackgroundColor = GUI.backgroundColor;
|
|
EditorGUILayout.BeginHorizontal ();
|
|
if (showElbowInfo) {
|
|
GUI.backgroundColor = Color.gray;
|
|
} else {
|
|
GUI.backgroundColor = buttonColor;
|
|
}
|
|
if (GUILayout.Button ("Elbow Settings")) {
|
|
showElbowInfo = !showElbowInfo;
|
|
}
|
|
GUI.backgroundColor = listButtonBackgroundColor;
|
|
EditorGUILayout.EndHorizontal ();
|
|
|
|
list.FindPropertyRelative ("showElbowInfo").boolValue = showElbowInfo;
|
|
|
|
if (showElbowInfo) {
|
|
GUILayout.BeginVertical ("box");
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("elbowInfo.Name"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("elbowInfo.elbow"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("elbowInfo.position"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("elbowInfo.elbowOriginalPosition"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("elbowInfo.targetValue"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("elbowInfo.elbowIKWeight"));
|
|
GUILayout.EndVertical ();
|
|
}
|
|
GUILayout.EndVertical ();
|
|
}
|
|
|
|
void showHandList (SerializedProperty list)
|
|
{
|
|
EditorGUILayout.Space ();
|
|
|
|
if (GUILayout.Button ("Show/Hide " + list.displayName, buttonStyle)) {
|
|
list.isExpanded = !list.isExpanded;
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (list.isExpanded) {
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (list.arraySize < 2) {
|
|
GUILayout.BeginHorizontal ();
|
|
if (GUILayout.Button ("Add Hand")) {
|
|
list.arraySize++;
|
|
}
|
|
if (GUILayout.Button ("Clear")) {
|
|
list.arraySize = 0;
|
|
}
|
|
GUILayout.EndHorizontal ();
|
|
|
|
EditorGUILayout.Space ();
|
|
}
|
|
for (int i = 0; i < list.arraySize; i++) {
|
|
expanded = false;
|
|
GUILayout.BeginHorizontal ();
|
|
GUILayout.BeginHorizontal ("box");
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (i < list.arraySize && i >= 0) {
|
|
EditorGUILayout.BeginVertical ();
|
|
EditorGUILayout.PropertyField (list.GetArrayElementAtIndex (i), false);
|
|
if (list.GetArrayElementAtIndex (i).isExpanded) {
|
|
expanded = true;
|
|
showHandElementInfo (list.GetArrayElementAtIndex (i));
|
|
}
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.EndVertical ();
|
|
}
|
|
GUILayout.EndHorizontal ();
|
|
if (expanded) {
|
|
GUILayout.BeginVertical ();
|
|
} else {
|
|
GUILayout.BeginHorizontal ();
|
|
}
|
|
if (GUILayout.Button ("x")) {
|
|
list.DeleteArrayElementAtIndex (i);
|
|
}
|
|
if (GUILayout.Button ("v")) {
|
|
if (i >= 0) {
|
|
list.MoveArrayElement (i, i + 1);
|
|
}
|
|
}
|
|
if (GUILayout.Button ("^")) {
|
|
if (i < list.arraySize) {
|
|
list.MoveArrayElement (i, i - 1);
|
|
}
|
|
}
|
|
if (expanded) {
|
|
GUILayout.EndVertical ();
|
|
} else {
|
|
GUILayout.EndHorizontal ();
|
|
}
|
|
GUILayout.EndHorizontal ();
|
|
}
|
|
}
|
|
}
|
|
|
|
void showShakeInfo (SerializedProperty list, bool isFirstPerson, bool isShootShake)
|
|
{
|
|
GUILayout.BeginVertical ();
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("shotForce"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("shakeSmooth"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("shakeDuration"));
|
|
if (isFirstPerson) {
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("shakePosition"));
|
|
}
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("shakeRotation"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (GUILayout.Button ("Test Shake")) {
|
|
if (Application.isPlaying) {
|
|
if (isShootShake) {
|
|
IKWeaponManager.checkWeaponCameraShake ();
|
|
} else {
|
|
IKWeaponManager.checkMeleeAttackShakeInfo ();
|
|
}
|
|
}
|
|
}
|
|
GUILayout.EndVertical ();
|
|
}
|
|
|
|
void showFullBodyAwarenessWeaponSettings (SerializedProperty list, bool isThirdPerson)
|
|
{
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAWalkPositionOffset"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAWalkRotationOffset"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAWalkRecoilPositionOffset"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAWalkRecoilRotationOffset"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("useFBARunPosition"));
|
|
|
|
if (list.FindPropertyRelative ("useFBARunPosition").boolValue) {
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBARunPositionOffset"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBARunRotationOffset"));
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAAimPositionOffset"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAAimRotationOffset"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAAimRecoilPositionOffset"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAAimRecoilRotationOffset"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBACrouchPositionOffset"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBACrouchRotationOffset"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBACrouchRecoilPositionOffset"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBACrouchRecoilRotationOffset"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAJumpStartPositionOffset"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAJumpStartRotationOffset"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAJumpEndPositionOffset"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAJumpEndRotationOffset"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAObstaclePositionOffset"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAObstacleRotationOffset"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAMoveWalkPositionSpeed"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("overrideFBAValuesForOffset"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBARandomRecoilWalkPositionMultiplier"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBARandomRecoilAimPositionMultiplier"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("ignoreIKElbowsOnFBA"));
|
|
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginVertical ("FBA Aim Info List", "window", GUILayout.Height (30));
|
|
showFBAAimInfoList (list.FindPropertyRelative ("FBAAimInfoList"));
|
|
GUILayout.EndVertical ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (GUILayout.Button ("Reset FBA Values")) {
|
|
IKWeaponManager.resetFBAValues ();
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (GUILayout.Button ("Set Default Rifle FBA Values")) {
|
|
IKWeaponManager.updateFBAValues (true);
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (GUILayout.Button ("Set Default Pistol FBA Values")) {
|
|
IKWeaponManager.updateFBAValues (false);
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
}
|
|
|
|
|
|
void showFBAAimInfoList (SerializedProperty list)
|
|
{
|
|
EditorGUILayout.Space ();
|
|
|
|
if (GUILayout.Button ("Show/Hide " + list.displayName, buttonStyle)) {
|
|
list.isExpanded = !list.isExpanded;
|
|
}
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (list.isExpanded) {
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginHorizontal ();
|
|
if (GUILayout.Button ("Add")) {
|
|
list.arraySize++;
|
|
}
|
|
if (GUILayout.Button ("Clear")) {
|
|
list.arraySize = 0;
|
|
}
|
|
GUILayout.EndHorizontal ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.BeginHorizontal ();
|
|
if (GUILayout.Button ("Expand All")) {
|
|
for (int i = 0; i < list.arraySize; i++) {
|
|
list.GetArrayElementAtIndex (i).isExpanded = true;
|
|
}
|
|
}
|
|
if (GUILayout.Button ("Collapse All")) {
|
|
for (int i = 0; i < list.arraySize; i++) {
|
|
list.GetArrayElementAtIndex (i).isExpanded = false;
|
|
}
|
|
}
|
|
GUILayout.EndHorizontal ();
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
for (int i = 0; i < list.arraySize; i++) {
|
|
expanded = false;
|
|
GUILayout.BeginHorizontal ();
|
|
GUILayout.BeginHorizontal ("box");
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
if (i < list.arraySize && i >= 0) {
|
|
EditorGUILayout.BeginVertical ();
|
|
EditorGUILayout.PropertyField (list.GetArrayElementAtIndex (i), false);
|
|
if (list.GetArrayElementAtIndex (i).isExpanded) {
|
|
expanded = true;
|
|
showFBAAimInfoElement (list.GetArrayElementAtIndex (i));
|
|
}
|
|
EditorGUILayout.Space ();
|
|
|
|
GUILayout.EndVertical ();
|
|
}
|
|
GUILayout.EndHorizontal ();
|
|
if (expanded) {
|
|
GUILayout.BeginVertical ();
|
|
} else {
|
|
GUILayout.BeginHorizontal ();
|
|
}
|
|
if (GUILayout.Button ("x")) {
|
|
list.DeleteArrayElementAtIndex (i);
|
|
}
|
|
if (GUILayout.Button ("v")) {
|
|
if (i >= 0) {
|
|
list.MoveArrayElement (i, i + 1);
|
|
}
|
|
}
|
|
if (GUILayout.Button ("^")) {
|
|
if (i < list.arraySize) {
|
|
list.MoveArrayElement (i, i - 1);
|
|
}
|
|
}
|
|
if (expanded) {
|
|
GUILayout.EndVertical ();
|
|
} else {
|
|
GUILayout.EndHorizontal ();
|
|
}
|
|
GUILayout.EndHorizontal ();
|
|
}
|
|
}
|
|
}
|
|
|
|
void showFBAAimInfoElement (SerializedProperty list)
|
|
{
|
|
GUILayout.BeginVertical ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("Name"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAAimPositionOffset"));
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAAimRotationOffset"));
|
|
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAAimRecoilPositionOffset"));
|
|
|
|
EditorGUILayout.PropertyField (list.FindPropertyRelative ("FBAAimRecoilRotationOffset"));
|
|
|
|
GUILayout.EndVertical ();
|
|
}
|
|
|
|
void showSectionTitle (string sectionTitle)
|
|
{
|
|
sectionStyle.fontStyle = FontStyle.Bold;
|
|
sectionStyle.fontSize = 30;
|
|
sectionStyle.alignment = TextAnchor.MiddleCenter;
|
|
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
|
|
EditorGUILayout.LabelField (sectionTitle, sectionStyle);
|
|
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
EditorGUILayout.Space ();
|
|
}
|
|
}
|
|
#endif |