added detailed collisions to hands, needs to be configured for Vivegit status! Also, added more complex collisions to furniture and simplified existing scene object collisions
This commit is contained in:
@@ -62,7 +62,7 @@ namespace _PROJECT.NewHandPresence
|
||||
_targetDevice = devices[0];
|
||||
|
||||
Debug.Log("Found device: " + _targetDevice.name + _targetDevice.characteristics);
|
||||
|
||||
|
||||
ControllerInformationScriptableObject controllerInfo =
|
||||
controllerInformation.Find(x => _targetDevice.name.ToLower().Contains(x.controllerName.ToLower()));
|
||||
|
||||
@@ -70,19 +70,36 @@ namespace _PROJECT.NewHandPresence
|
||||
|
||||
var transform1 = transform.parent; // Right/Left hand direct position
|
||||
|
||||
_spawnedController = Instantiate(controllerInfo.controllerPrefab,
|
||||
transform1.TransformPoint(Quaternion.Euler(controllerInfo.controllerRotationOffset) * controllerInfo.controllerOffset),
|
||||
transform1.rotation * Quaternion.Euler(controllerInfo.controllerRotationOffset),
|
||||
transform1);
|
||||
_xrControllerAnimator = _spawnedController.GetComponent<XRControllerAnimator>();
|
||||
|
||||
_spawnedHandModel = Instantiate(controllerInfo.handPrefab,
|
||||
// --- Spawn hand model first ---
|
||||
_spawnedHandModel = Instantiate(
|
||||
controllerInfo.handPrefab,
|
||||
transform1.TransformPoint(Quaternion.Euler(controllerInfo.handRotationOffset) * controllerInfo.handOffset),
|
||||
transform1.rotation * Quaternion.Euler(controllerInfo.handRotationOffset),
|
||||
transform1.rotation * Quaternion.Euler(controllerInfo.handRotationOffset),
|
||||
transform1);
|
||||
_handAnimator = _spawnedHandModel.GetComponent<Animator>();
|
||||
|
||||
// --- Find the correct child in the hand prefab ---
|
||||
Transform attachPoint = null;
|
||||
if (_spawnedHandModel.name.Contains("Left"))
|
||||
attachPoint = _spawnedHandModel.transform.Find("hands:l_hand_world");
|
||||
else if (_spawnedHandModel.name.Contains("Right"))
|
||||
attachPoint = _spawnedHandModel.transform.Find("hands:r_hand_world");
|
||||
|
||||
if (attachPoint == null)
|
||||
{
|
||||
Debug.LogWarning("Attach point not found in hand prefab, defaulting to hand root.");
|
||||
attachPoint = _spawnedHandModel.transform;
|
||||
}
|
||||
|
||||
// --- Spawn controller under the hand ---
|
||||
_spawnedController = Instantiate(controllerInfo.controllerPrefab, attachPoint);
|
||||
_spawnedController.transform.localPosition = controllerInfo.controllerOffset;
|
||||
_spawnedController.transform.localRotation = Quaternion.Euler(controllerInfo.controllerRotationOffset);
|
||||
|
||||
_xrControllerAnimator = _spawnedController.GetComponent<XRControllerAnimator>();
|
||||
}
|
||||
|
||||
|
||||
private void UpdateControllerAnimation()
|
||||
{
|
||||
_xrControllerAnimator.UpdateAnimations(_targetDevice);
|
||||
|
||||
Reference in New Issue
Block a user