Example #1
0
        //public Transform stretchlessTarget;

        #region Init
        //public void Init(Transform targetTransform) {
        //    handTarget = targetTransform.GetComponent<HandTarget>();
        //}

        public override void Start(HumanoidControl humanoid, HumanoidTarget _target)
        {
            handTarget = (HandTarget)_target;

            if (handTarget.humanoid.avatarRig == null || handTarget.hand.bone.transform == null)
            {
                return;
            }


            if (humanoid.physics && handTarget.physics)
            {
                AdvancedHandPhysics physics = handTarget.hand.bone.transform.GetComponent <AdvancedHandPhysics>();
                if (physics == null)
                {
                    physics = handTarget.hand.bone.transform.gameObject.AddComponent <AdvancedHandPhysics>();
                }

                physics.handTarget = handTarget;
                physics.mode       = AdvancedHandPhysics.DeterminePhysicsMode(handTarget.handRigidbody, HandInteraction.kinematicMass);
            }
            else
            {
                BasicHandPhysics physics = handTarget.hand.bone.transform.GetComponent <BasicHandPhysics>();
                if (physics == null)
                {
                    physics = handTarget.hand.bone.transform.gameObject.AddComponent <BasicHandPhysics>();
                }
                physics.handTarget = handTarget;
            }
        }
Example #2
0
        public void OnTriggerEnter(Collider other)
        {
            Rigidbody rigidbody = other.attachedRigidbody;

            if (rigidbody == null)
            {
                return;
            }

            nearHand = rigidbody.GetComponent <BasicHandPhysics>();
        }
Example #3
0
 private void Update()
 {
     if (nearHand != null)
     {
         Vector3 handlePosition = transform.TransformPoint(position);
         float   distance       = Vector3.Distance(nearHand.target.handPalm.position, handlePosition) * 2;
         float   f = Mathf.Clamp01((distance + 0.25F) / range);
         f = f * f * f;
         nearHand.target.SetHandPose(nearPose, 1 - f);
         if (1 - f <= 0)
         {
             nearHand.target.SetHandPose1(1);
             nearHand = null;
         }
     }
 }
Example #4
0
        public void FixedUpdate()
        {
            if (handTarget == null || handTarget.humanoid == null || handTarget.humanoid.avatarRig == null || handTarget.hand.bone.transform == null)
            {
                return;
            }

            //AdvancedHandPhysics handPhysics = handTarget.hand.bone.transform.GetComponent<AdvancedHandPhysics>();
            BasicHandPhysics handPhysics = handTarget.hand.bone.transform.GetComponent <BasicHandPhysics>();

            if (handPhysics == null)
            {
                return;
            }

            handPhysics.ManualFixedUpdate(handTarget);
        }