12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- using System;
- using RootMotion.FinalIK;
- using UnityEngine;
- [Serializable]
- public class ShoulderThighIKData : LimbIKData
- {
- public ShoulderThighIKData(IKEffector root_effector, FBIKChain chain, IKMappingLimb ik_mapping, FullBodyIKCtrl ik_ctrl, Transform tgt_bone) : base(ik_ctrl, chain, tgt_bone, false)
- {
- this.Effector = root_effector;
- this.Effector.target = base.IKTarget;
- this.IKMapping = ik_mapping;
- this.m_ForceIKEnable = true;
- }
- public override float PositionWeight
- {
- get
- {
- return this.Effector.positionWeight;
- }
- set
- {
- this.Effector.positionWeight = value;
- }
- }
- public override float RotationWeight
- {
- get
- {
- return this.Effector.rotationWeight;
- }
- set
- {
- this.Effector.rotationWeight = value;
- }
- }
- public ElbowKneeIKData ElbowKneeData
- {
- get
- {
- return this.m_ElbowKneeData;
- }
- }
- public HandFootIKData HandFootData
- {
- get
- {
- return this.m_HandFootData;
- }
- }
- protected override void SetTargetTransform(IKCtrlData.IKSettingData data, Vector3 pos, Quaternion rot)
- {
- base.SetTargetTransform(data, pos, rot);
- Transform iktarget = this.m_HandFootData.IKTarget;
- Transform iktarget2 = this.m_ElbowKneeData.IKTarget;
- Vector3 position = this.TargetBone.InverseTransformPoint(this.m_ElbowKneeData.TargetBone.position);
- Vector3 position2 = this.m_ElbowKneeData.TargetBone.InverseTransformPoint(this.m_HandFootData.TargetBone.position);
- if (!data.IsPointAttach)
- {
- if (!this.m_ElbowKneeData.GetIKSettingData(IKCtrlData.IKAttachType.Rotate).IsIKExec)
- {
- iktarget2.rotation = base.IKTarget.rotation * this.m_ElbowKneeData.TargetBone.localRotation;
- }
- if (!this.m_HandFootData.GetIKSettingData(IKCtrlData.IKAttachType.Rotate).IsIKExec)
- {
- iktarget.rotation = iktarget2.rotation * this.m_HandFootData.TargetBone.localRotation;
- }
- }
- if (!this.m_ElbowKneeData.GetIKSettingData(IKCtrlData.IKAttachType.NewPoint).IsIKExec)
- {
- iktarget2.position = base.IKTarget.TransformPoint(position);
- }
- if (!this.m_HandFootData.GetIKSettingData(IKCtrlData.IKAttachType.NewPoint).IsIKExec)
- {
- iktarget.position = iktarget2.TransformPoint(position2);
- }
- }
- public void SetChainData(HandFootIKData handfoot_data, ElbowKneeIKData elbowknee_data)
- {
- this.m_HandFootData = handfoot_data;
- this.m_ElbowKneeData = elbowknee_data;
- }
- public readonly IKEffector Effector;
- public readonly IKMappingLimb IKMapping;
- private ElbowKneeIKData m_ElbowKneeData;
- private HandFootIKData m_HandFootData;
- }
|