36 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using UnityEngine; | |||
|  | using System.Collections; | |||
|  | 
 | |||
|  | public class IKHands : MonoBehaviour { | |||
|  | 
 | |||
|  | 	public Transform leftHandObj; | |||
|  | 	public Transform rightHandObj; | |||
|  | 	public Transform attachLeft; | |||
|  | 	public Transform attachRight; | |||
|  | 
 | |||
|  | 	public float leftHandPositionWeight; | |||
|  | 	public float leftHandRotationWeight; | |||
|  | 	public float rightHandPositionWeight; | |||
|  | 	public float rightHandRotationWeight; | |||
|  | 	 | |||
|  | 	private Animator animator; | |||
|  | 	 | |||
|  | 	void Start() { | |||
|  | 		animator = this.gameObject.GetComponent<Animator>(); | |||
|  | 	} | |||
|  | 	 | |||
|  | 	void OnAnimatorIK(int layerIndex) { | |||
|  | 		if(leftHandObj != null){ | |||
|  | 			animator.SetIKPositionWeight(AvatarIKGoal.LeftHand,leftHandPositionWeight); | |||
|  | 			animator.SetIKRotationWeight(AvatarIKGoal.LeftHand,leftHandRotationWeight); | |||
|  | 			animator.SetIKPosition(AvatarIKGoal.LeftHand,attachLeft.position);                     | |||
|  | 			animator.SetIKRotation(AvatarIKGoal.LeftHand,attachLeft.rotation); | |||
|  | 		} | |||
|  | 		if(rightHandObj != null){ | |||
|  | 			animator.SetIKPositionWeight(AvatarIKGoal.RightHand,rightHandPositionWeight); | |||
|  | 			animator.SetIKRotationWeight(AvatarIKGoal.RightHand,rightHandRotationWeight);      | |||
|  | 			animator.SetIKPosition(AvatarIKGoal.RightHand,attachRight.position);                     | |||
|  | 			animator.SetIKRotation(AvatarIKGoal.RightHand,attachRight.rotation); | |||
|  | 		} | |||
|  | 	} | |||
|  | } |