mirror of
https://github.com/hanetzer/sdraw_mods_cvr.git
synced 2025-09-03 18:39:23 +00:00
Fix of collision layers
This commit is contained in:
parent
aef5af99af
commit
7f29079109
3 changed files with 17 additions and 6 deletions
|
@ -149,7 +149,7 @@ namespace ml_ppu
|
||||||
Vector3 l_armPos = (l_avatarMatInv * m_armLeft.GetMatrix()).GetPosition();
|
Vector3 l_armPos = (l_avatarMatInv * m_armLeft.GetMatrix()).GetPosition();
|
||||||
|
|
||||||
m_collider = new GameObject("[Collider]").AddComponent<CapsuleCollider>();
|
m_collider = new GameObject("[Collider]").AddComponent<CapsuleCollider>();
|
||||||
m_collider.gameObject.layer = CVRLayers.PlayerClone;
|
m_collider.gameObject.layer = CVRLayers.PlayerLocal;
|
||||||
m_collider.transform.parent = this.transform;
|
m_collider.transform.parent = this.transform;
|
||||||
m_collider.isTrigger = true;
|
m_collider.isTrigger = true;
|
||||||
m_collider.height = Vector3.Distance(l_hipsPos, new Vector3(0f, l_armPos.y, l_armPos.z));
|
m_collider.height = Vector3.Distance(l_hipsPos, new Vector3(0f, l_armPos.y, l_armPos.z));
|
||||||
|
|
|
@ -42,7 +42,7 @@ namespace ml_prm
|
||||||
}
|
}
|
||||||
|
|
||||||
if(collider != null)
|
if(collider != null)
|
||||||
BetterBetterCharacterController.Instance.IgnoreCollision(collider);
|
RemoveGameCollision();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Start()
|
void Start()
|
||||||
|
@ -127,6 +127,8 @@ namespace ml_prm
|
||||||
m_rigidBody.isKinematic = p_state;
|
m_rigidBody.isKinematic = p_state;
|
||||||
m_rigidBody.collisionDetectionMode = (p_state ? CollisionDetectionMode.Discrete : CollisionDetectionMode.ContinuousDynamic);
|
m_rigidBody.collisionDetectionMode = (p_state ? CollisionDetectionMode.Discrete : CollisionDetectionMode.ContinuousDynamic);
|
||||||
}
|
}
|
||||||
|
if(collider != null)
|
||||||
|
collider.isTrigger = p_state;
|
||||||
if(m_physicsInfluencer != null)
|
if(m_physicsInfluencer != null)
|
||||||
m_physicsInfluencer.enabled = !p_state;
|
m_physicsInfluencer.enabled = !p_state;
|
||||||
}
|
}
|
||||||
|
@ -191,7 +193,7 @@ namespace ml_prm
|
||||||
m_ready = true;
|
m_ready = true;
|
||||||
}
|
}
|
||||||
if(collider != null)
|
if(collider != null)
|
||||||
BetterBetterCharacterController.Instance.IgnoreCollision(collider);
|
RemoveGameCollision();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Attach(CVRPointer p_pointer)
|
void Attach(CVRPointer p_pointer)
|
||||||
|
@ -201,7 +203,7 @@ namespace ml_prm
|
||||||
m_attachedPointer = p_pointer;
|
m_attachedPointer = p_pointer;
|
||||||
|
|
||||||
GameObject l_attachPoint = new GameObject("[AttachPoint]");
|
GameObject l_attachPoint = new GameObject("[AttachPoint]");
|
||||||
l_attachPoint.layer = CVRLayers.PlayerClone;
|
l_attachPoint.layer = CVRLayers.PlayerLocal;
|
||||||
m_attachTransform = l_attachPoint.transform;
|
m_attachTransform = l_attachPoint.transform;
|
||||||
m_attachTransform.parent = p_pointer.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
|
// CVRTriggerVolume
|
||||||
public void TriggerEnter(CVRPointer pointer)
|
public void TriggerEnter(CVRPointer pointer)
|
||||||
{
|
{
|
||||||
|
|
|
@ -311,7 +311,7 @@ namespace ml_prm
|
||||||
BipedRagdollReferences l_avatarReferences = BipedRagdollReferences.FromAvatar(PlayerSetup.Instance.Animator);
|
BipedRagdollReferences l_avatarReferences = BipedRagdollReferences.FromAvatar(PlayerSetup.Instance.Animator);
|
||||||
|
|
||||||
m_puppetRoot = new GameObject("Root").transform;
|
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.parent = m_puppet;
|
||||||
m_puppetRoot.position = m_avatarTransform.position;
|
m_puppetRoot.position = m_avatarTransform.position;
|
||||||
m_puppetRoot.rotation = m_avatarTransform.rotation;
|
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)
|
static Transform CloneTransform(Transform p_source, Transform p_parent, string p_name)
|
||||||
{
|
{
|
||||||
Transform l_target = new GameObject(p_name).transform;
|
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;
|
l_target.parent = p_parent;
|
||||||
p_source.CopyGlobal(l_target);
|
p_source.CopyGlobal(l_target);
|
||||||
return l_target;
|
return l_target;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue