//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; } }
public void OnTriggerEnter(Collider other) { Rigidbody rigidbody = other.attachedRigidbody; if (rigidbody == null) { return; } nearHand = rigidbody.GetComponent <BasicHandPhysics>(); }
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; } } }
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); }