diff --git a/ml_ppu/PickUpManager.cs b/ml_ppu/PickUpManager.cs index 9ee2ab1..158632e 100644 --- a/ml_ppu/PickUpManager.cs +++ b/ml_ppu/PickUpManager.cs @@ -149,7 +149,7 @@ namespace ml_ppu Vector3 l_armPos = (l_avatarMatInv * m_armLeft.GetMatrix()).GetPosition(); m_collider = new GameObject("[Collider]").AddComponent(); - m_collider.gameObject.layer = CVRLayers.PlayerClone; + m_collider.gameObject.layer = CVRLayers.PlayerLocal; m_collider.transform.parent = this.transform; m_collider.isTrigger = true; m_collider.height = Vector3.Distance(l_hipsPos, new Vector3(0f, l_armPos.y, l_armPos.z)); diff --git a/ml_prm/RagdollBodypartHandler.cs b/ml_prm/RagdollBodypartHandler.cs index aa63f4a..bd43f99 100644 --- a/ml_prm/RagdollBodypartHandler.cs +++ b/ml_prm/RagdollBodypartHandler.cs @@ -42,7 +42,7 @@ namespace ml_prm } if(collider != null) - BetterBetterCharacterController.Instance.IgnoreCollision(collider); + RemoveGameCollision(); } void Start() @@ -127,6 +127,8 @@ namespace ml_prm m_rigidBody.isKinematic = p_state; m_rigidBody.collisionDetectionMode = (p_state ? CollisionDetectionMode.Discrete : CollisionDetectionMode.ContinuousDynamic); } + if(collider != null) + collider.isTrigger = p_state; if(m_physicsInfluencer != null) m_physicsInfluencer.enabled = !p_state; } @@ -191,7 +193,7 @@ namespace ml_prm m_ready = true; } if(collider != null) - BetterBetterCharacterController.Instance.IgnoreCollision(collider); + RemoveGameCollision(); } void Attach(CVRPointer p_pointer) @@ -201,7 +203,7 @@ namespace ml_prm m_attachedPointer = p_pointer; GameObject l_attachPoint = new GameObject("[AttachPoint]"); - l_attachPoint.layer = CVRLayers.PlayerClone; + l_attachPoint.layer = CVRLayers.PlayerLocal; m_attachTransform = l_attachPoint.transform; m_attachTransform.parent = p_pointer.transform; @@ -235,6 +237,15 @@ namespace ml_prm } } + void RemoveGameCollision() + { + Physics.IgnoreCollision(collider, BetterBetterCharacterController.Instance.Collider, true); + Physics.IgnoreCollision(collider, BetterBetterCharacterController.Instance.KinematicTriggerProxy.Collider, true); + Physics.IgnoreCollision(collider, BetterBetterCharacterController.Instance.NonKinematicProxy.Collider, true); + Physics.IgnoreCollision(collider, BetterBetterCharacterController.Instance.SphereProxy.Collider, true); + BetterBetterCharacterController.Instance.IgnoreCollision(collider); + } + // CVRTriggerVolume public void TriggerEnter(CVRPointer pointer) { diff --git a/ml_prm/RagdollController.cs b/ml_prm/RagdollController.cs index 85c7d51..f6c9a45 100644 --- a/ml_prm/RagdollController.cs +++ b/ml_prm/RagdollController.cs @@ -311,7 +311,7 @@ namespace ml_prm BipedRagdollReferences l_avatarReferences = BipedRagdollReferences.FromAvatar(PlayerSetup.Instance.Animator); m_puppetRoot = new GameObject("Root").transform; - m_puppetRoot.gameObject.layer = CVRLayers.PlayerClone; + m_puppetRoot.gameObject.layer = CVRLayers.PlayerLocal; m_puppetRoot.parent = m_puppet; m_puppetRoot.position = m_avatarTransform.position; m_puppetRoot.rotation = m_avatarTransform.rotation; @@ -775,7 +775,7 @@ namespace ml_prm static Transform CloneTransform(Transform p_source, Transform p_parent, string p_name) { Transform l_target = new GameObject(p_name).transform; - l_target.gameObject.layer = CVRLayers.PlayerClone; + l_target.gameObject.layer = CVRLayers.PlayerLocal; l_target.parent = p_parent; p_source.CopyGlobal(l_target); return l_target;