1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- using System;
- using UnityEngine;
- namespace Leap.Unity
- {
- public class RigidFinger : SkeletalFinger
- {
- private void Start()
- {
- for (int i = 0; i < this.bones.Length; i++)
- {
- if (this.bones[i] != null)
- {
- this.bones[i].GetComponent<Rigidbody>().maxAngularVelocity = float.PositiveInfinity;
- }
- }
- }
- public override void UpdateFinger()
- {
- for (int i = 0; i < this.bones.Length; i++)
- {
- if (this.bones[i] != null)
- {
- CapsuleCollider component = this.bones[i].GetComponent<CapsuleCollider>();
- if (component != null)
- {
- component.direction = 2;
- this.bones[i].localScale = new Vector3(1f / base.transform.lossyScale.x, 1f / base.transform.lossyScale.y, 1f / base.transform.lossyScale.z);
- component.radius = base.GetBoneWidth(i) / 2f;
- component.height = base.GetBoneLength(i) + base.GetBoneWidth(i);
- }
- Rigidbody component2 = this.bones[i].GetComponent<Rigidbody>();
- if (component2)
- {
- component2.MovePosition(base.GetBoneCenter(i));
- component2.MoveRotation(base.GetBoneRotation(i));
- }
- else
- {
- this.bones[i].position = base.GetBoneCenter(i);
- this.bones[i].rotation = base.GetBoneRotation(i);
- }
- }
- }
- }
- public float filtering = 0.5f;
- }
- }
|