using System; using UnityEngine; namespace Leap.Unity { public class SkeletalHand : HandModel { public override ModelType HandModelType { get { return ModelType.Graphics; } } private void Start() { Utils.IgnoreCollisions(base.gameObject, base.gameObject, true); for (int i = 0; i < this.fingers.Length; i++) { if (this.fingers[i] != null) { this.fingers[i].fingerType = (Finger.FingerType)i; } } } public override void UpdateHand() { this.SetPositions(); } protected Vector3 GetPalmCenter() { Vector3 b = 0.015f * Vector3.Scale(base.GetPalmDirection(), base.transform.lossyScale); return base.GetPalmPosition() - b; } protected void SetPositions() { Debug.Log("SkeletalHand.SetPositions()"); for (int i = 0; i < this.fingers.Length; i++) { if (this.fingers[i] != null) { this.fingers[i].UpdateFinger(); } } if (this.palm != null) { this.palm.position = this.GetPalmCenter(); this.palm.rotation = base.GetPalmRotation(); } if (this.wristJoint != null) { this.wristJoint.position = base.GetWristPosition(); this.wristJoint.rotation = base.GetPalmRotation(); } if (this.forearm != null) { this.forearm.position = base.GetArmCenter(); this.forearm.rotation = base.GetArmRotation(); } } protected const float PALM_CENTER_OFFSET = 0.015f; } }