void ApplyOffsets(IKAdjust currentIKAdjust, vIKSolver weaponArm, vIKSolver supportWeaponArm) { currentIKAdjust.supportHandOffset.position = supportWeaponArm.endBoneOffset.localPosition; currentIKAdjust.supportHandOffset.eulerAngles = supportWeaponArm.endBoneOffset.localEulerAngles; currentIKAdjust.supportHintOffset.position = supportWeaponArm.middleBoneOffset.localPosition; currentIKAdjust.supportHintOffset.eulerAngles = supportWeaponArm.middleBoneOffset.localEulerAngles; currentIKAdjust.weaponHandOffset.position = weaponArm.endBoneOffset.localPosition; currentIKAdjust.weaponHandOffset.eulerAngles = weaponArm.endBoneOffset.localEulerAngles; currentIKAdjust.weaponHintOffset.position = weaponArm.middleBoneOffset.localPosition; currentIKAdjust.weaponHintOffset.eulerAngles = weaponArm.middleBoneOffset.localEulerAngles; ik.ApplyModifiedProperties(); EditorUtility.SetDirty(ik.targetObject); }
protected virtual void ApplyOffsets(vWeaponIKAdjust weaponIKAdjust, vIKSolver weaponHand, vIKSolver supportHand) { bool isValid = weaponIKAdjust != null; weaponHand.SetIKWeight(weaponIKWeight); IKAdjust ikAdjust = isValid ? weaponIKAdjust.GetIKAdjust(isAiming, isCrouching) : null; //Apply Offset to Weapon Arm ApplyOffsetToTargetBone(isValid ? ikAdjust.weaponHandOffset : null, weaponHand.endBoneOffset, isValid); ApplyOffsetToTargetBone(isValid ? ikAdjust.weaponHintOffset : null, weaponHand.middleBoneOffset, isValid); //Apply offset to Support Weapon Arm ApplyOffsetToTargetBone(isValid ? ikAdjust.supportHandOffset : null, supportHand.endBoneOffset, isValid); ApplyOffsetToTargetBone(isValid ? ikAdjust.supportHintOffset : null, supportHand.middleBoneOffset, isValid); //Convert Animatorion To IK with offsets applied if (isValid) { weaponHand.AnimationToIK(); } }
public void ResetCrouchingAiming() { crouchingAiming = new IKAdjust(); }
public void ResetStandingAiming() { standingAiming = new IKAdjust(); }