private void SetToMostPreciseFingerPosition(Transform target, VRCPlayerApi.TrackingDataType trackingDataType, HumanBodyBones bone1, HumanBodyBones bone2, HumanBodyBones bone3) { Vector3 positionHead = _player.GetBonePosition(bone3); Vector3 positionTail = _player.GetBonePosition(bone2); if (positionHead != Vector3.zero) { target.position = positionHead; target.rotation = Quaternion.LookRotation(positionHead - positionTail); return; } positionHead = positionTail; positionTail = _player.GetBonePosition(bone1); if (positionHead != Vector3.zero) { target.position = positionHead; target.rotation = Quaternion.LookRotation(positionHead - positionTail); return; } VRCPlayerApi.TrackingData trackingData = _player.GetTrackingData(trackingDataType); positionHead = positionTail; positionTail = trackingData.position; if (positionHead != Vector3.zero) { target.position = positionHead; target.rotation = Quaternion.LookRotation(positionHead - positionTail); return; } target.position = trackingData.position; target.rotation = trackingData.rotation; }
void Start() { //Find Height Tracker GameObject o = GameObject.Find("[Thry]AvatarHeightTracker"); if (o == null) { Debug.LogError("Can't Find Left Thry Hand Collider"); return; } _avatarHeightTracker = o.GetComponent <AvatarHeightTracker>(); player = Networking.LocalPlayer; if (isRightHand) { hand = HumanBodyBones.RightHand; finger = HumanBodyBones.RightMiddleProximal; trackingDataType = VRCPlayerApi.TrackingDataType.RightHand; } else { hand = HumanBodyBones.LeftHand; finger = HumanBodyBones.LeftMiddleProximal; trackingDataType = VRCPlayerApi.TrackingDataType.LeftHand; } Scale(); }
[Button("Preset: Throttle")] private void PresetThlottle() { this.UpdateProxy(); mode = "Slider"; targetHand = VRCPlayerApi.TrackingDataType.LeftHand; maxValue = Vector3.one * 0.2f; keymap = "l,h,j,k,left shift,left ctrl"; this.ApplyProxyModifications(); }
[Button("Preset: Joystick")] private void PresetJoystick() { this.UpdateProxy(); mode = "Joystick"; targetHand = VRCPlayerApi.TrackingDataType.RightHand; maxValue = Vector3.one * 30.0f; keymap = "w,s,e,q,a,d"; this.ApplyProxyModifications(); }
public VRCPlayerApi.TrackingData GetTrackingData(VRCPlayerApi.TrackingDataType trackingDataType) { VRCPlayerApi.TrackingData data = new VRCPlayerApi.TrackingData(); if (trackingDataType == VRCPlayerApi.TrackingDataType.Head) { data.position = playerCamera_.transform.position; data.rotation = playerCamera_.transform.rotation; } else if (trackingDataType == VRCPlayerApi.TrackingDataType.LeftHand) { data.position = leftArmPosition_.transform.position; data.rotation = leftArmPosition_.transform.rotation; } else if (trackingDataType == VRCPlayerApi.TrackingDataType.RightHand) { data.position = rightArmPosition_.transform.position; data.rotation = rightArmPosition_.transform.rotation; } return(data); }
public static VRCPlayerApi.TrackingData GetTrackingData(VRCPlayerApi player, VRCPlayerApi.TrackingDataType trackingDataType) { return(player.GetPlayerController().GetTrackingData(trackingDataType)); }
public void gettracking(Transform visobj, VRCPlayerApi.TrackingDataType trackpoint, VRCPlayerApi PlayerApiref) { visobj.position = PlayerApiref.GetTrackingData(trackpoint).position; visobj.rotation = PlayerApiref.GetTrackingData(trackpoint).rotation; }