Pre-Unity6 compatibilty
This commit is contained in:
parent
402300960e
commit
1c6a404dfd
@ -24,8 +24,7 @@ namespace Passer.Humanoid {
|
||||
if (humanoid.isRemote)
|
||||
return;
|
||||
|
||||
if (grabSocket != null)
|
||||
grabSocket.handTarget = this;
|
||||
grabSocket.handTarget = this;
|
||||
|
||||
// Gun Interaction pointer creates an Event System
|
||||
// First solve that before enabling this warning
|
||||
@ -33,7 +32,11 @@ namespace Passer.Humanoid {
|
||||
|
||||
inputModule = humanoid.GetComponent<InteractionModule>();
|
||||
if (inputModule == null) {
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
inputModule = Object.FindAnyObjectByType<InteractionModule>();
|
||||
#else
|
||||
inputModule = Object.FindObjectOfType<InteractionModule>();
|
||||
#endif
|
||||
if (inputModule == null) {
|
||||
inputModule = humanoid.gameObject.AddComponent<InteractionModule>();
|
||||
}
|
||||
@ -826,7 +829,11 @@ namespace Passer.Humanoid {
|
||||
Rigidbody objRigidbody = RigidbodyDisabled.UnparentRigidbody(handPalm, grabbedObject.transform);
|
||||
if (objRigidbody != null && !objRigidbody.isKinematic) {
|
||||
if (handRigidbody != null) {
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
objRigidbody.linearVelocity = handRigidbody.linearVelocity;
|
||||
#else
|
||||
objRigidbody.velocity = handRigidbody.velocity;
|
||||
#endif
|
||||
objRigidbody.angularVelocity = handRigidbody.angularVelocity;
|
||||
}
|
||||
HumanoidNetworking.ReenableNetworkSync(objRigidbody.gameObject);
|
||||
@ -854,13 +861,17 @@ namespace Passer.Humanoid {
|
||||
//grabbedRigidbody.centerOfMass = handTarget.storedCOM;
|
||||
|
||||
if (grabbedRigidbody.isKinematic == false) {
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
grabbedRigidbody.linearVelocity = handRigidbody.linearVelocity;
|
||||
#else
|
||||
grabbedRigidbody.velocity = handRigidbody.velocity;
|
||||
#endif
|
||||
grabbedRigidbody.angularVelocity = handRigidbody.angularVelocity;
|
||||
}
|
||||
|
||||
if (grabbedHandle != null)
|
||||
LetGoHandle(grabbedHandle);
|
||||
|
||||
|
||||
handRigidbody.mass = 1;
|
||||
}
|
||||
this.grabbedRigidbody = false;
|
||||
|
@ -53,8 +53,13 @@ namespace Passer.Humanoid {
|
||||
handTarget.handRigidbody = handTarget.hand.bone.transform.gameObject.AddComponent<Rigidbody>();
|
||||
}
|
||||
handTarget.handRigidbody.mass = 1;
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
handTarget.handRigidbody.linearDamping = 0;
|
||||
handTarget.handRigidbody.angularDamping = 10;
|
||||
#else
|
||||
handTarget.handRigidbody.drag = 0;
|
||||
handTarget.handRigidbody.angularDrag = 10;
|
||||
#endif
|
||||
handTarget.handRigidbody.useGravity = false;
|
||||
handTarget.handRigidbody.isKinematic = true;
|
||||
handTarget.handRigidbody.interpolation = RigidbodyInterpolation.None;
|
||||
|
@ -5,7 +5,7 @@ using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using GLTFast;
|
||||
//using GLTFast;
|
||||
|
||||
|
||||
#if hNW_ROBOID
|
||||
|
@ -227,7 +227,11 @@ namespace Passer.Humanoid {
|
||||
|
||||
//Compensate for absolute rigidbody speed (specifically when on a moving platform)
|
||||
if (handRigidbody != null) {
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
Vector3 residualVelocity = handRigidbody.linearVelocity - velocityTowardsTarget;
|
||||
#else
|
||||
Vector3 residualVelocity = handRigidbody.velocity - velocityTowardsTarget;
|
||||
#endif
|
||||
damper += residualVelocity * 10;
|
||||
}
|
||||
}
|
||||
@ -552,7 +556,11 @@ namespace Passer.Humanoid {
|
||||
|
||||
Vector3 velocityTarget = (positionDelta * velocityMagic) * Time.fixedDeltaTime;
|
||||
if (float.IsNaN(velocityTarget.x) == false)
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
handRigidbody.linearVelocity = Vector3.MoveTowards(handRigidbody.linearVelocity, velocityTarget, MaxVelocityChange);
|
||||
#else
|
||||
handRigidbody.velocity = Vector3.MoveTowards(handRigidbody.velocity, velocityTarget, MaxVelocityChange);
|
||||
#endif
|
||||
|
||||
rotationDelta.ToAngleAxis(out angle, out axis);
|
||||
|
||||
|
@ -15,8 +15,13 @@ namespace Passer {
|
||||
|
||||
public RigidbodyData(Rigidbody rb) {
|
||||
mass = rb.mass;
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
drag = rb.linearDamping;
|
||||
angularDrag = rb.angularDamping;
|
||||
#else
|
||||
drag = rb.drag;
|
||||
angularDrag = rb.angularDrag;
|
||||
#endif
|
||||
useGravity = rb.useGravity;
|
||||
isKinematic = rb.isKinematic;
|
||||
interpolation = rb.interpolation;
|
||||
@ -28,8 +33,13 @@ namespace Passer {
|
||||
|
||||
public void CopyToRigidbody(Rigidbody rb) {
|
||||
rb.mass = mass;
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
rb.linearDamping = drag;
|
||||
rb.angularDamping = angularDrag;
|
||||
#else
|
||||
rb.drag = drag;
|
||||
rb.angularDrag = angularDrag;
|
||||
#endif
|
||||
rb.useGravity = useGravity;
|
||||
rb.isKinematic = isKinematic;
|
||||
rb.interpolation = interpolation;
|
||||
|
@ -103,13 +103,7 @@ namespace Passer.Humanoid {
|
||||
[System.Serializable]
|
||||
[HelpURL("https://passervr.com/apis/HumanoidControl/Unity/class_passer_1_1_humanoid_1_1_hand_target.html")]
|
||||
public partial class HandTarget : HumanoidTarget {
|
||||
/// <summary>
|
||||
/// Pseudo-constructor because Unity does not use real constructors
|
||||
/// </summary>
|
||||
/// <param name="humanoid">The humanoid for this hand target</param>
|
||||
/// <param name="isLeft">Is this the left hand target?</param>
|
||||
public void Constructor(HumanoidControl humanoid, bool isLeft) {
|
||||
this.humanoid = humanoid;
|
||||
public HandTarget() {
|
||||
shoulder = new TargetedShoulderBone(this);
|
||||
upperArm = new TargetedUpperArmBone(this);
|
||||
forearm = new TargetedForearmBone(this);
|
||||
@ -122,11 +116,6 @@ namespace Passer.Humanoid {
|
||||
};
|
||||
|
||||
fingers = new FingersTarget(this);
|
||||
|
||||
this.isLeft = isLeft;
|
||||
this.side = isLeft ? Side.Left : Side.Right;
|
||||
this.outward = this.isLeft ? Vector3.left : Vector3.right;
|
||||
InitSubTargets();
|
||||
}
|
||||
|
||||
#if pCEREBELLUM
|
||||
@ -202,7 +191,7 @@ namespace Passer.Humanoid {
|
||||
#if pUNITYXR
|
||||
public UnityXRHand unityXR = new UnityXRHand();
|
||||
#endif
|
||||
#if hVIVETRACKER
|
||||
#if hVIVETRACKER && UNITY_STANDALONE_WIN
|
||||
public ViveTrackerArm viveTracker = new ViveTrackerArm();
|
||||
#endif
|
||||
#if hWINDOWSMR && UNITY_WSA_10_0
|
||||
@ -211,9 +200,9 @@ namespace Passer.Humanoid {
|
||||
#if hWAVEVR
|
||||
public WaveVRHand waveVR = new WaveVRHand();
|
||||
#endif
|
||||
//#if hNEURON
|
||||
// public NeuronHand neuron = new NeuronHand();
|
||||
//#endif
|
||||
//#if hNEURON
|
||||
// public NeuronHand neuron = new NeuronHand();
|
||||
//#endif
|
||||
#if hLEAP
|
||||
public LeapHand leap = new LeapHand();
|
||||
#endif
|
||||
@ -291,11 +280,9 @@ namespace Passer.Humanoid {
|
||||
#if hWAVEVR
|
||||
waveVR,
|
||||
#endif
|
||||
#if hSTEAMVR && UNITY_STANDALONE_WIN
|
||||
#if hVIVETRACKER
|
||||
#if hVIVETRACKER && UNITY_STANDALONE_WIN
|
||||
viveTracker,
|
||||
#endif
|
||||
#endif
|
||||
#if hREALSENSE
|
||||
//realsenseHand,
|
||||
#endif
|
||||
@ -334,7 +321,7 @@ namespace Passer.Humanoid {
|
||||
#if hLEAP
|
||||
(leap.handSkeleton != null && leap.handSkeleton.status == Tracker.Status.Tracking) |
|
||||
#endif
|
||||
#if pUNITYXR && (hOCHAND || hVIVEHAND)
|
||||
#if pUNITYXR && (hOCHAND || hHTCVIVE)
|
||||
(unityXR.handSkeleton != null && unityXR.handSkeleton.status == Tracker.Status.Tracking) |
|
||||
#endif
|
||||
false;
|
||||
@ -390,7 +377,7 @@ namespace Passer.Humanoid {
|
||||
get { return hand; }
|
||||
}
|
||||
public Transform stretchlessTarget;
|
||||
private TargetedBone[] subTargets;
|
||||
private readonly TargetedBone[] subTargets;
|
||||
|
||||
#region Shoulder
|
||||
|
||||
@ -728,10 +715,7 @@ namespace Passer.Humanoid {
|
||||
targetTransform.position = oldTarget.transform.position;
|
||||
targetTransform.rotation = oldTarget.transform.rotation;
|
||||
|
||||
//HandTarget handTarget = Constructor(humanoid, oldTarget.isLeft, targetTransform);
|
||||
HandTarget handTarget = targetTransform.gameObject.AddComponent<HandTarget>();
|
||||
handTarget.Constructor(humanoid, oldTarget.isLeft);
|
||||
|
||||
HandTarget handTarget = Constructor(humanoid, oldTarget.isLeft, targetTransform);
|
||||
if (oldTarget.isLeft) {
|
||||
humanoid.leftHandTarget = handTarget;
|
||||
//handTarget.otherHand = humanoid.rightHandTarget;
|
||||
@ -1210,7 +1194,11 @@ namespace Passer.Humanoid {
|
||||
|
||||
private HumanoidControl GetHumanoid() {
|
||||
// This does not work for prefabs
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
HumanoidControl[] humanoids = FindObjectsByType<HumanoidControl>(FindObjectsSortMode.None);
|
||||
#else
|
||||
HumanoidControl[] humanoids = FindObjectsOfType<HumanoidControl>();
|
||||
#endif
|
||||
|
||||
for (int i = 0; i < humanoids.Length; i++) {
|
||||
if ((humanoids[i].leftHandTarget != null && humanoids[i].leftHandTarget.transform == this.transform) ||
|
||||
@ -1242,8 +1230,13 @@ namespace Passer.Humanoid {
|
||||
handRigidbody = hand.bone.transform.gameObject.AddComponent<Rigidbody>();
|
||||
}
|
||||
handRigidbody.mass = 1;
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
handRigidbody.linearDamping = 0;
|
||||
handRigidbody.angularDamping = 10;
|
||||
#else
|
||||
handRigidbody.drag = 0;
|
||||
handRigidbody.angularDrag = 10;
|
||||
#endif
|
||||
handRigidbody.useGravity = false;
|
||||
handRigidbody.isKinematic = true;
|
||||
handRigidbody.interpolation = RigidbodyInterpolation.None;
|
||||
@ -1272,6 +1265,18 @@ namespace Passer.Humanoid {
|
||||
#endif
|
||||
}
|
||||
|
||||
// This function is called only when the humanoid is created
|
||||
private static HandTarget Constructor(HumanoidControl humanoid, bool isLeft, Transform handTargetTransform) {
|
||||
HandTarget handTarget = handTargetTransform.gameObject.AddComponent<HandTarget>();
|
||||
handTarget.humanoid = humanoid;
|
||||
handTarget.isLeft = isLeft;
|
||||
handTarget.side = isLeft ? Side.Left : Side.Right;
|
||||
handTarget.outward = handTarget.isLeft ? Vector3.left : Vector3.right;
|
||||
|
||||
handTarget.InitSubTargets();
|
||||
return handTarget;
|
||||
}
|
||||
|
||||
public override void NewComponent(HumanoidControl _humanoid) {
|
||||
humanoid = _humanoid;
|
||||
isLeft = (this == humanoid.leftHandTarget);
|
||||
@ -1382,13 +1387,10 @@ namespace Passer.Humanoid {
|
||||
}
|
||||
|
||||
handTarget = handTargetTransform.GetComponent<HandTarget>();
|
||||
if (handTarget == null)
|
||||
handTarget = handTargetTransform.gameObject.AddComponent<HandTarget>();
|
||||
if (handTarget == null)
|
||||
handTarget = Constructor(humanoid, isLeft, handTargetTransform);
|
||||
}
|
||||
|
||||
if (handTarget.subTargets == null)
|
||||
handTarget.Constructor(humanoid, isLeft);
|
||||
|
||||
if (isLeft)
|
||||
humanoid.leftHandTarget = handTarget;
|
||||
else
|
||||
|
@ -12,18 +12,18 @@ namespace Passer {
|
||||
private Vector3 startPosition;
|
||||
private Quaternion startRotation;
|
||||
|
||||
void Start() {
|
||||
protected void Start() {
|
||||
startPosition = transform.position;
|
||||
startRotation = transform.rotation;
|
||||
}
|
||||
|
||||
void Update() {
|
||||
protected void Update() {
|
||||
if (groundCollider == null && transform.position.y < 0) {
|
||||
MoveToStart();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnCollisionEnter(Collision collision) {
|
||||
protected void OnCollisionEnter(Collision collision) {
|
||||
if (collision.collider == groundCollider) {
|
||||
MoveToStart();
|
||||
}
|
||||
@ -34,7 +34,11 @@ namespace Passer {
|
||||
if (thisRigidbody != null) {
|
||||
thisRigidbody.MovePosition(new Vector3(startPosition.x, startPosition.y + 0.1F, startPosition.z));
|
||||
thisRigidbody.MoveRotation(startRotation);
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
thisRigidbody.linearVelocity = Vector3.zero;
|
||||
#else
|
||||
thisRigidbody.velocity = Vector3.zero;
|
||||
#endif
|
||||
thisRigidbody.angularVelocity = Vector3.zero;
|
||||
}
|
||||
}
|
||||
|
@ -229,7 +229,11 @@ namespace Passer {
|
||||
damper = -velocityTowardsTarget * damping;
|
||||
|
||||
//Compensate for absolute rigidbody speed (specifically when on a moving platform)
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
Vector3 residualVelocity = thisRigidbody.linearVelocity - velocityTowardsTarget;
|
||||
#else
|
||||
Vector3 residualVelocity = thisRigidbody.velocity - velocityTowardsTarget;
|
||||
#endif
|
||||
damper += residualVelocity * 10;
|
||||
}
|
||||
lastDistanceToTarget = distanceToTarget;
|
||||
|
@ -30,8 +30,13 @@ namespace Passer {
|
||||
|
||||
public void CopyFromRigidbody(Rigidbody rb) {
|
||||
mass = rb.mass;
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
drag = rb.linearDamping;
|
||||
angularDrag = rb.angularDamping;
|
||||
#else
|
||||
drag = rb.drag;
|
||||
angularDrag = rb.angularDrag;
|
||||
#endif
|
||||
useGravity = rb.useGravity;
|
||||
isKinematic = rb.isKinematic;
|
||||
interpolation = rb.interpolation;
|
||||
@ -44,8 +49,13 @@ namespace Passer {
|
||||
|
||||
public void CopyToRigidbody(Rigidbody rb) {
|
||||
rb.mass = mass;
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
rb.linearDamping = drag;
|
||||
rb.angularDamping = angularDrag;
|
||||
#else
|
||||
rb.drag = drag;
|
||||
rb.angularDrag = angularDrag;
|
||||
#endif
|
||||
rb.useGravity = useGravity;
|
||||
rb.isKinematic = isKinematic;
|
||||
rb.interpolation = interpolation;
|
||||
|
@ -224,7 +224,11 @@ namespace Passer {
|
||||
protected virtual void Awake() {
|
||||
Transform rootTransform = this.transform.root;
|
||||
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
interactionModule = FindAnyObjectByType<InteractionModule>();
|
||||
#else
|
||||
interactionModule = FindObjectOfType<InteractionModule>();
|
||||
#endif
|
||||
if (interactionModule == null)
|
||||
interactionModule = CreateInteractionModule();
|
||||
EventSystem eventSystem = interactionModule.GetComponent<EventSystem>();
|
||||
@ -585,7 +589,11 @@ namespace Passer {
|
||||
if (rayType != RayType.Gravity)
|
||||
return;
|
||||
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
rigidbody.linearVelocity = transform.forward * speed;
|
||||
#else
|
||||
rigidbody.velocity = transform.forward * speed;
|
||||
#endif
|
||||
}
|
||||
|
||||
public void LaunchPrefab(GameObject prefab) {
|
||||
|
@ -694,7 +694,11 @@ namespace Passer {
|
||||
Humanoid.HumanoidNetworking.ReenableNetworkSync(objRigidbody.gameObject);
|
||||
|
||||
if (thisRigidbody != null) {
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
objRigidbody.linearVelocity = thisRigidbody.linearVelocity;
|
||||
#else
|
||||
objRigidbody.velocity = thisRigidbody.velocity;
|
||||
#endif
|
||||
objRigidbody.angularVelocity = thisRigidbody.angularVelocity;
|
||||
}
|
||||
|
||||
@ -761,7 +765,7 @@ namespace Passer {
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Rigidbody
|
||||
#endregion Rigidbody
|
||||
|
||||
#region Static Object
|
||||
|
||||
@ -807,7 +811,7 @@ namespace Passer {
|
||||
|
||||
#endregion Static Object
|
||||
|
||||
#endregion Release
|
||||
#endregion Release
|
||||
|
||||
#region Start
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user