improved door grabbing. Sometimes leaves ghost hands.

This commit is contained in:
2025-12-15 21:16:03 +02:00
parent 252e7a2fa6
commit 98526fd582
12 changed files with 546 additions and 152 deletions

View File

@@ -10,6 +10,7 @@ GameObject:
m_Component:
- component: {fileID: 4094291069417963952}
- component: {fileID: 4094291069417963953}
- component: {fileID: 3968873566812316387}
m_Layer: 0
m_Name: SmartHandPresence Left
m_TagString: NetworkHide
@@ -51,3 +52,24 @@ MonoBehaviour:
- {fileID: 11400000, guid: 6a509cd8fcf2901489e42ba44b5ac991, type: 2}
- {fileID: 11400000, guid: 122b65a97d948e94da7a963fe110b068, type: 2}
- {fileID: 11400000, guid: 5cd37cccbf3023d43818e487f29248c8, type: 2}
--- !u!135 &3968873566812316387
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4094291069417963955}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Radius: 0.08
m_Center: {x: -0.01, y: -0.03, z: -0.12}

View File

@@ -10,6 +10,7 @@ GameObject:
m_Component:
- component: {fileID: 3440047626596586913}
- component: {fileID: 3440047626596586917}
- component: {fileID: 7103916417101120392}
m_Layer: 0
m_Name: SmartHandPresence Right
m_TagString: NetworkHide
@@ -51,3 +52,24 @@ MonoBehaviour:
- {fileID: 11400000, guid: 2440c680cf2f3c947af431fb58aa75bb, type: 2}
- {fileID: 11400000, guid: 772380a82cd83174cbd672430aca6941, type: 2}
- {fileID: 11400000, guid: 41bbb243b8f86c24489e2262946c7e45, type: 2}
--- !u!135 &7103916417101120392
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3440047626596586914}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Radius: 0.08
m_Center: {x: -0.01, y: -0.03, z: -0.12}

View File

@@ -3411,7 +3411,7 @@ GameObject:
- component: {fileID: 4833661431984909633}
- component: {fileID: 6982718084823378580}
- component: {fileID: 7143839380141204878}
m_Layer: 0
m_Layer: 12
m_Name: XR Origin
m_TagString: Player
m_Icon: {fileID: 0}

View File

@@ -10,6 +10,8 @@ namespace _PROJECT.NewHandPresence
public bool showController;
public bool showHand;
private bool inDoorGrabRadius = false;
public InputDeviceCharacteristics controllerCharacteristics;
public List<ControllerInformationScriptableObject> controllerInformation;
@@ -113,5 +115,37 @@ namespace _PROJECT.NewHandPresence
updateAnimation();
}
}
}
private void OnDisable()
{
if (!inDoorGrabRadius) return;
if (_spawnedHandModel != null)
_spawnedHandModel.SetActive(false);
if (_spawnedController != null)
_spawnedController.SetActive(false);
}
private void OnEnable()
{
// Let Update handle visibility naturally
// or force refresh:
if (_spawnedHandModel != null)
_spawnedHandModel.SetActive(showHand);
if (_spawnedController != null)
_spawnedController.SetActive(showController);
}
private void OnTriggerEnter(Collider other)
{
if (other.GetComponent<DoorHandReplacer>() == null) return;
inDoorGrabRadius = true;
}
private void OnTriggerExit(Collider other)
{
if (other.GetComponent<DoorHandReplacer>() == null) return;
inDoorGrabRadius = false;
}
}
}