improved door grabbing. Sometimes leaves ghost hands.
This commit is contained in:
@@ -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}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user