//======= Copyright (c) Valve Corporation, All rights reserved. =============== using UnityEngine; using System.Collections; using Valve.VR; using UnityEngine.Serialization; namespace Valve.VR.InteractionSystem.Sample { public class CustomSkeletonHelper : MonoBehaviour { public Retargetable wrist; public Finger[] fingers; public Thumb[] thumbs; private void Update() { for (int fingerIndex = 0; fingerIndex < fingers.Length; fingerIndex++) { Finger finger = fingers[fingerIndex]; finger.metacarpal.destination.rotation = finger.metacarpal.source.rotation; finger.proximal.destination.rotation = finger.proximal.source.rotation; finger.middle.destination.rotation = finger.middle.source.rotation; finger.distal.destination.rotation = finger.distal.source.rotation; } for (int thumbIndex = 0; thumbIndex < thumbs.Length; thumbIndex++) { Thumb thumb = thumbs[thumbIndex]; thumb.metacarpal.destination.rotation = thumb.metacarpal.source.rotation; thumb.middle.destination.rotation = thumb.middle.source.rotation; thumb.distal.destination.rotation = thumb.distal.source.rotation; } wrist.destination.position = wrist.source.position; wrist.destination.rotation = wrist.source.rotation; } public enum MirrorType { None, LeftToRight, RightToLeft } [System.Serializable] public class Retargetable { public Transform source; public Transform destination; public Retargetable(Transform source, Transform destination) { this.source = source; this.destination = destination; } } [System.Serializable] public class Thumb { public Retargetable metacarpal; public Retargetable middle; public Retargetable distal; public Transform aux; public Thumb(Retargetable metacarpal, Retargetable middle, Retargetable distal, Transform aux) { this.metacarpal = metacarpal; this.middle = middle; this.distal = distal; this.aux = aux; } } [System.Serializable] public class Finger { public Retargetable metacarpal; public Retargetable proximal; public Retargetable middle; public Retargetable distal; public Transform aux; public Finger(Retargetable metacarpal, Retargetable proximal, Retargetable middle, Retargetable distal, Transform aux) { this.metacarpal = metacarpal; this.proximal = proximal; this.middle = middle; this.distal = distal; this.aux = aux; } } } }