Add v1.0.3.1

This commit is contained in:
2023-09-06 22:00:49 +02:00
commit 3aebbbf8f0
2051 changed files with 757425 additions and 0 deletions

View File

@@ -0,0 +1,81 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000406 RID: 1030
[Token(Token = "0x2000406")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/IK/Aim IK")]
[HelpURL("https://www.youtube.com/watch?v=wT8fViZpLmQ&index=3&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6")]
public class AimIK : IK
{
// Token: 0x060024ED RID: 9453 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024ED")]
[Address(RVA = "0x11E3B70", Offset = "0x11E2970", VA = "0x1811E3B70", Slot = "8")]
[ContextMenu("User Manual")]
protected override void OpenUserManual()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024EE RID: 9454 RVA: 0x00053AEC File Offset: 0x00051CEC
[Token(Token = "0x60024EE")]
[Address(RVA = "0x11E3AF0", Offset = "0x11E28F0", VA = "0x1811E3AF0", Slot = "9")]
[ContextMenu("Scrpt Reference")]
protected override void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_aim_i_k.html");
}
// Token: 0x060024EF RID: 9455 RVA: 0x00053B04 File Offset: 0x00051D04
[Token(Token = "0x60024EF")]
[Address(RVA = "0x11E3B30", Offset = "0x11E2930", VA = "0x1811E3B30")]
[ContextMenu("TUTORIAL VIDEO")]
private void OpenSetupTutorial()
{
Application.OpenURL("https://www.youtube.com/watch?v=wT8fViZpLmQ");
}
// Token: 0x060024F0 RID: 9456 RVA: 0x00053B1C File Offset: 0x00051D1C
[Token(Token = "0x60024F0")]
[Address(RVA = "0x11E3BB0", Offset = "0x11E29B0", VA = "0x1811E3BB0")]
[ContextMenu("Support Group")]
private void SupportGroup()
{
Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
}
// Token: 0x060024F1 RID: 9457 RVA: 0x00053B34 File Offset: 0x00051D34
[Token(Token = "0x60024F1")]
[Address(RVA = "0x11E3AB0", Offset = "0x11E28B0", VA = "0x1811E3AB0")]
[ContextMenu("Asset Store Thread")]
private void ASThread()
{
Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
}
// Token: 0x060024F2 RID: 9458 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024F2")]
[Address(RVA = "0x31E3C0", Offset = "0x31D1C0", VA = "0x18031E3C0", Slot = "7")]
public override IKSolver GetIKSolver()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024F3 RID: 9459 RVA: 0x00053B4C File Offset: 0x00051D4C
[Token(Token = "0x60024F3")]
[Address(RVA = "0x11E3BF0", Offset = "0x11E29F0", VA = "0x1811E3BF0")]
public AimIK()
{
IKSolverAim iksolverAim = new IKSolverAim();
this.solver = iksolverAim;
base..ctor();
}
// Token: 0x04002E99 RID: 11929
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002E99")]
public IKSolverAim solver;
}
}

View File

@@ -0,0 +1,106 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000467 RID: 1127
[Token(Token = "0x2000467")]
public class AimPoser : MonoBehaviour
{
// Token: 0x06002888 RID: 10376 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002888")]
[Address(RVA = "0x11E3C60", Offset = "0x11E2A60", VA = "0x1811E3C60")]
public AimPoser.Pose GetPose(Vector3 localDirection)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002889 RID: 10377 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002889")]
[Address(RVA = "0x11E3D70", Offset = "0x11E2B70", VA = "0x1811E3D70")]
public void SetPoseActive(AimPoser.Pose pose)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600288A RID: 10378 RVA: 0x00059564 File Offset: 0x00057764
[Token(Token = "0x600288A")]
[Address(RVA = "0x11E3E00", Offset = "0x11E2C00", VA = "0x1811E3E00")]
public AimPoser()
{
AimPoser.Pose[] array = new AimPoser.Pose[0];
this.poses = array;
base..ctor();
}
// Token: 0x040031C5 RID: 12741
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40031C5")]
public float angleBuffer = 5f;
// Token: 0x040031C6 RID: 12742
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40031C6")]
public AimPoser.Pose[] poses;
// Token: 0x02000468 RID: 1128
[Token(Token = "0x2000468")]
[Serializable]
public class Pose
{
// Token: 0x0600288B RID: 10379 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600288B")]
[Address(RVA = "0x5FD280", Offset = "0x5FC080", VA = "0x1805FD280")]
public bool IsInDirection(Vector3 d)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600288C RID: 10380 RVA: 0x00059590 File Offset: 0x00057790
[Token(Token = "0x600288C")]
[Address(RVA = "0x5FC8F0", Offset = "0x5FB6F0", VA = "0x1805FC8F0")]
public void SetAngleBuffer(float value)
{
this.angleBuffer = value;
}
// Token: 0x0600288D RID: 10381 RVA: 0x000595A4 File Offset: 0x000577A4
[Token(Token = "0x600288D")]
[Address(RVA = "0x5FD4D0", Offset = "0x5FC2D0", VA = "0x1805FD4D0")]
public Pose()
{
}
// Token: 0x040031C7 RID: 12743
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40031C7")]
public bool visualize = true;
// Token: 0x040031C8 RID: 12744
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40031C8")]
public string name;
// Token: 0x040031C9 RID: 12745
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40031C9")]
public Vector3 direction;
// Token: 0x040031CA RID: 12746
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40031CA")]
public float yaw = 75f;
// Token: 0x040031CB RID: 12747
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40031CB")]
public float pitch = 45f;
// Token: 0x040031CC RID: 12748
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x40031CC")]
private float angleBuffer;
}
}
}

View File

@@ -0,0 +1,137 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000469 RID: 1129
[Token(Token = "0x2000469")]
public class Amplifier : OffsetModifier
{
// Token: 0x0600288E RID: 10382 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600288E")]
[Address(RVA = "0x11E4E70", Offset = "0x11E3C70", VA = "0x1811E4E70", Slot = "4")]
protected override void OnModifyOffset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600288F RID: 10383 RVA: 0x000595D4 File Offset: 0x000577D4
[Token(Token = "0x600288F")]
[Address(RVA = "0x8CD260", Offset = "0x8CC060", VA = "0x1808CD260")]
public Amplifier()
{
}
// Token: 0x040031CD RID: 12749
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40031CD")]
[Tooltip("The amplified bodies.")]
public Amplifier.Body[] bodies;
// Token: 0x0200046A RID: 1130
[Token(Token = "0x200046A")]
[Serializable]
public class Body
{
// Token: 0x06002890 RID: 10384 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002890")]
[Address(RVA = "0x5F8C60", Offset = "0x5F7A60", VA = "0x1805F8C60")]
public void Update(IKSolverFullBodyBiped solver, float w, float deltaTime)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002891 RID: 10385 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002891")]
[Address(RVA = "0x5F8C00", Offset = "0x5F7A00", VA = "0x1805F8C00")]
private static Vector3 Multiply(Vector3 v1, Vector3 v2)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002892 RID: 10386 RVA: 0x000595E8 File Offset: 0x000577E8
[Token(Token = "0x6002892")]
[Address(RVA = "0x5F91B0", Offset = "0x5F7FB0", VA = "0x1805F91B0")]
public Body()
{
}
// Token: 0x040031CE RID: 12750
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40031CE")]
[Tooltip("The Transform that's motion we are reading.")]
public Transform transform;
// Token: 0x040031CF RID: 12751
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40031CF")]
[Tooltip("Amplify the 'transform's' position relative to this Transform.")]
public Transform relativeTo;
// Token: 0x040031D0 RID: 12752
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40031D0")]
[Tooltip("Linking the body to effectors. One Body can be used to offset more than one effector.")]
public Amplifier.Body.EffectorLink[] effectorLinks;
// Token: 0x040031D1 RID: 12753
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40031D1")]
[Tooltip("Amplification magnitude along the up axis of the character.")]
public float verticalWeight = 1f;
// Token: 0x040031D2 RID: 12754
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40031D2")]
[Tooltip("Amplification magnitude along the horizontal axes of the character.")]
public float horizontalWeight = 1f;
// Token: 0x040031D3 RID: 12755
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40031D3")]
[Tooltip("Speed of the amplifier. 0 means instant.")]
public float speed = 3f;
// Token: 0x040031D4 RID: 12756
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x40031D4")]
private Vector3 lastRelativePos;
// Token: 0x040031D5 RID: 12757
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40031D5")]
private Vector3 smoothDelta;
// Token: 0x040031D6 RID: 12758
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x40031D6")]
private bool firstUpdate;
// Token: 0x0200046B RID: 1131
[Token(Token = "0x200046B")]
[Serializable]
public class EffectorLink
{
// Token: 0x06002893 RID: 10387 RVA: 0x0003883F File Offset: 0x00036A3F
[Token(Token = "0x6002893")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public EffectorLink()
{
}
// Token: 0x040031D7 RID: 12759
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40031D7")]
[Tooltip("Type of the FBBIK effector to use")]
public FullBodyBipedEffector effector;
// Token: 0x040031D8 RID: 12760
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x40031D8")]
[Tooltip("Weight of using this effector")]
public float weight;
}
}
}
}

View File

@@ -0,0 +1,420 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x020003F0 RID: 1008
[Token(Token = "0x20003F0")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/IK/Biped IK")]
[HelpURL("http://www.root-motion.com/finalikdox/html/page2.html")]
public class BipedIK : SolverManager
{
// Token: 0x0600241F RID: 9247 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600241F")]
[Address(RVA = "0x8D59E0", Offset = "0x8D47E0", VA = "0x1808D59E0")]
[ContextMenu("User Manual")]
private void OpenUserManual()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002420 RID: 9248 RVA: 0x000523E8 File Offset: 0x000505E8
[Token(Token = "0x6002420")]
[Address(RVA = "0x8D59A0", Offset = "0x8D47A0", VA = "0x1808D59A0")]
[ContextMenu("Scrpt Reference")]
private void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_biped_i_k.html");
}
// Token: 0x06002421 RID: 9249 RVA: 0x00052400 File Offset: 0x00050600
[Token(Token = "0x6002421")]
[Address(RVA = "0x8D5F00", Offset = "0x8D4D00", VA = "0x1808D5F00")]
[ContextMenu("Support Group")]
private void SupportGroup()
{
Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
}
// Token: 0x06002422 RID: 9250 RVA: 0x00052418 File Offset: 0x00050618
[Token(Token = "0x6002422")]
[Address(RVA = "0x8D5290", Offset = "0x8D4090", VA = "0x1808D5290")]
[ContextMenu("Asset Store Thread")]
private void ASThread()
{
Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
}
// Token: 0x06002423 RID: 9251 RVA: 0x00052430 File Offset: 0x00050630
[Token(Token = "0x6002423")]
[Address(RVA = "0x8D5410", Offset = "0x8D4210", VA = "0x1808D5410")]
public float GetIKPositionWeight(AvatarIKGoal goal)
{
if (goal != AvatarIKGoal.LeftFoot)
{
if (goal != AvatarIKGoal.LeftFoot)
{
if (goal != AvatarIKGoal.LeftFoot)
{
BipedIKSolvers bipedIKSolvers = this.solvers;
}
BipedIKSolvers bipedIKSolvers2 = this.solvers;
}
BipedIKSolvers bipedIKSolvers3 = this.solvers;
}
return this.solvers.leftFoot.IKPositionWeight;
}
// Token: 0x06002424 RID: 9252 RVA: 0x00052474 File Offset: 0x00050674
[Token(Token = "0x6002424")]
[Address(RVA = "0x8D5520", Offset = "0x8D4320", VA = "0x1808D5520")]
public float GetIKRotationWeight(AvatarIKGoal goal)
{
if (goal != AvatarIKGoal.LeftFoot)
{
if (goal != AvatarIKGoal.LeftFoot)
{
if (goal != AvatarIKGoal.LeftFoot)
{
BipedIKSolvers bipedIKSolvers = this.solvers;
}
BipedIKSolvers bipedIKSolvers2 = this.solvers;
}
BipedIKSolvers bipedIKSolvers3 = this.solvers;
}
return this.solvers.leftFoot.IKRotationWeight;
}
// Token: 0x06002425 RID: 9253 RVA: 0x000524B8 File Offset: 0x000506B8
[Token(Token = "0x6002425")]
[Address(RVA = "0x8D5A20", Offset = "0x8D4820", VA = "0x1808D5A20")]
public void SetIKPositionWeight(AvatarIKGoal goal, float weight)
{
if (goal != AvatarIKGoal.LeftFoot)
{
if (goal != AvatarIKGoal.LeftFoot)
{
if (goal != AvatarIKGoal.LeftFoot)
{
BipedIKSolvers bipedIKSolvers = this.solvers;
}
BipedIKSolvers bipedIKSolvers2 = this.solvers;
}
BipedIKSolvers bipedIKSolvers3 = this.solvers;
}
this.solvers.leftFoot.SetIKPositionWeight(weight);
}
// Token: 0x06002426 RID: 9254 RVA: 0x00052500 File Offset: 0x00050700
[Token(Token = "0x6002426")]
[Address(RVA = "0x8D5B10", Offset = "0x8D4910", VA = "0x1808D5B10")]
public void SetIKRotationWeight(AvatarIKGoal goal, float weight)
{
if (goal != AvatarIKGoal.LeftFoot)
{
if (goal != AvatarIKGoal.LeftFoot)
{
if (goal != AvatarIKGoal.LeftFoot)
{
BipedIKSolvers bipedIKSolvers = this.solvers;
}
BipedIKSolvers bipedIKSolvers2 = this.solvers;
}
BipedIKSolvers bipedIKSolvers3 = this.solvers;
}
this.solvers.leftFoot.SetIKRotationWeight(weight);
}
// Token: 0x06002427 RID: 9255 RVA: 0x00052548 File Offset: 0x00050748
[Token(Token = "0x6002427")]
[Address(RVA = "0x8D5A90", Offset = "0x8D4890", VA = "0x1808D5A90")]
public void SetIKPosition(AvatarIKGoal goal, Vector3 IKPosition)
{
if (goal != AvatarIKGoal.LeftFoot)
{
if (goal != AvatarIKGoal.LeftFoot)
{
if (goal != AvatarIKGoal.LeftFoot)
{
BipedIKSolvers bipedIKSolvers = this.solvers;
}
BipedIKSolvers bipedIKSolvers2 = this.solvers;
}
BipedIKSolvers bipedIKSolvers3 = this.solvers;
}
IKSolverLimb leftFoot = this.solvers.leftFoot;
float z = IKPosition.z;
leftFoot.IKPosition.z = z;
}
// Token: 0x06002428 RID: 9256 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002428")]
[Address(RVA = "0x8D5B80", Offset = "0x8D4980", VA = "0x1808D5B80")]
public void SetIKRotation(AvatarIKGoal goal, Quaternion IKRotation)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002429 RID: 9257 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002429")]
[Address(RVA = "0x8D5480", Offset = "0x8D4280", VA = "0x1808D5480")]
public Vector3 GetIKPosition(AvatarIKGoal goal)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600242A RID: 9258 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600242A")]
[Address(RVA = "0x8D5590", Offset = "0x8D4390", VA = "0x1808D5590")]
public Quaternion GetIKRotation(AvatarIKGoal goal)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600242B RID: 9259 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600242B")]
[Address(RVA = "0x8D5C20", Offset = "0x8D4A20", VA = "0x1808D5C20")]
public void SetLookAtWeight(float weight, float bodyWeight, float headWeight, float eyesWeight, float clampWeight, float clampWeightHead, float clampWeightEyes)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600242C RID: 9260 RVA: 0x000525A0 File Offset: 0x000507A0
[Token(Token = "0x600242C")]
[Address(RVA = "0x8D5BF0", Offset = "0x8D49F0", VA = "0x1808D5BF0")]
public void SetLookAtPosition(Vector3 lookAtPosition)
{
IKSolverLookAt lookAt = this.solvers.lookAt;
float z = lookAtPosition.z;
lookAt.IKPosition.z = z;
}
// Token: 0x0600242D RID: 9261 RVA: 0x000525D4 File Offset: 0x000507D4
[Token(Token = "0x600242D")]
[Address(RVA = "0x8D5C60", Offset = "0x8D4A60", VA = "0x1808D5C60")]
public void SetSpinePosition(Vector3 spinePosition)
{
IKSolverFABRIK spine = this.solvers.spine;
float z = spinePosition.z;
spine.IKPosition.z = z;
}
// Token: 0x0600242E RID: 9262 RVA: 0x00052608 File Offset: 0x00050808
[Token(Token = "0x600242E")]
[Address(RVA = "0x8D5C90", Offset = "0x8D4A90", VA = "0x1808D5C90")]
public void SetSpineWeight(float weight)
{
this.solvers.spine.SetIKPositionWeight(weight);
}
// Token: 0x0600242F RID: 9263 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600242F")]
[Address(RVA = "0x8D53A0", Offset = "0x8D41A0", VA = "0x1808D53A0")]
public IKSolverLimb GetGoalIK(AvatarIKGoal goal)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002430 RID: 9264 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002430")]
[Address(RVA = "0x638370", Offset = "0x637170", VA = "0x180638370")]
public void InitiateBipedIK()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002431 RID: 9265 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002431")]
[Address(RVA = "0x30E190", Offset = "0x30CF90", VA = "0x18030E190")]
public void UpdateBipedIK()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002432 RID: 9266 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002432")]
[Address(RVA = "0x8D5CC0", Offset = "0x8D4AC0", VA = "0x1808D5CC0")]
public void SetToDefaults()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002433 RID: 9267 RVA: 0x0005262C File Offset: 0x0005082C
[Token(Token = "0x6002433")]
[Address(RVA = "0x8D52D0", Offset = "0x8D40D0", VA = "0x1808D52D0", Slot = "6")]
protected override void FixTransforms()
{
this.solvers.lookAt.FixTransforms();
BipedIKSolvers bipedIKSolvers = this.solvers;
int num = 0;
IKSolverLimb[] limbs = bipedIKSolvers.limbs;
if (num < limbs.Length)
{
this.solvers.limbs[num].FixTransforms();
BipedIKSolvers bipedIKSolvers2 = this.solvers;
num++;
}
}
// Token: 0x06002434 RID: 9268 RVA: 0x0005268C File Offset: 0x0005088C
[Token(Token = "0x6002434")]
[Address(RVA = "0x8D5600", Offset = "0x8D4400", VA = "0x1808D5600", Slot = "4")]
protected override void InitiateSolver()
{
string text;
if (!BipedReferences.SetupError(this.references, text))
{
BipedIKSolvers bipedIKSolvers = this.solvers;
BipedReferences bipedReferences = this.references;
IKSolverLimb leftHand = bipedIKSolvers.leftHand;
Transform root = bipedReferences.root;
int num = 0;
Transform leftHand2 = bipedReferences.leftHand;
Transform leftForearm = bipedReferences.leftForearm;
Transform leftUpperArm = bipedReferences.leftUpperArm;
bool flag = leftHand.SetChain(leftUpperArm, leftForearm, leftHand2, root);
IKSolverLimb rightHand = bipedIKSolvers.rightHand;
Transform root2 = bipedReferences.root;
Transform rightHand2 = bipedReferences.rightHand;
Transform rightForearm = bipedReferences.rightForearm;
Transform rightUpperArm = bipedReferences.rightUpperArm;
bool flag2 = rightHand.SetChain(rightUpperArm, rightForearm, rightHand2, root2);
IKSolverLimb leftFoot = bipedIKSolvers.leftFoot;
Transform root3 = bipedReferences.root;
Transform leftFoot2 = bipedReferences.leftFoot;
Transform leftCalf = bipedReferences.leftCalf;
Transform leftThigh = bipedReferences.leftThigh;
bool flag3 = leftFoot.SetChain(leftThigh, leftCalf, leftFoot2, root3);
IKSolverLimb rightFoot = bipedIKSolvers.rightFoot;
Transform root4 = bipedReferences.root;
Transform rightFoot2 = bipedReferences.rightFoot;
Transform rightCalf = bipedReferences.rightCalf;
Transform rightThigh = bipedReferences.rightThigh;
bool flag4 = rightFoot.SetChain(rightThigh, rightCalf, rightFoot2, root4);
IKSolverFABRIK spine = bipedIKSolvers.spine;
Transform root5 = bipedReferences.root;
Transform[] spine2 = bipedReferences.spine;
bool flag5 = spine.SetChain(spine2, root5);
IKSolverLookAt lookAt = bipedIKSolvers.lookAt;
Transform root6 = bipedReferences.root;
Transform[] eyes = bipedReferences.eyes;
Transform head = bipedReferences.head;
Transform[] spine3 = bipedReferences.spine;
bool flag6 = lookAt.SetChain(spine3, head, eyes, root6);
IKSolverAim aim = bipedIKSolvers.aim;
Transform root7 = bipedReferences.root;
Transform[] spine4 = bipedReferences.spine;
bool flag7 = aim.SetChain(spine4, root7);
bipedIKSolvers.leftFoot.goal = (AvatarIKGoal)num;
bipedIKSolvers.rightFoot.goal = (AvatarIKGoal)((ulong)1L);
bipedIKSolvers.leftHand.goal = (AvatarIKGoal)((ulong)2L);
bipedIKSolvers.rightHand.goal = (AvatarIKGoal)((ulong)3L);
BipedIKSolvers bipedIKSolvers2 = this.solvers;
IKSolverFABRIK spine5 = bipedIKSolvers2.spine;
if (spine5.bones.Length > 1)
{
Transform transform = base.transform;
spine5.Initiate(transform);
BipedIKSolvers bipedIKSolvers3 = this.solvers;
}
IKSolverLookAt lookAt2 = bipedIKSolvers2.lookAt;
Transform transform2 = base.transform;
lookAt2.Initiate(transform2);
IKSolverAim aim2 = this.solvers.aim;
Transform transform3 = base.transform;
aim2.Initiate(transform3);
IKSolverLimb[] limbs = this.solvers.limbs;
int length = limbs.Length;
if (num < length)
{
IKSolverLimb iksolverLimb = limbs[num];
Transform transform4 = base.transform;
iksolverLimb.Initiate(transform4);
num++;
}
BipedIKSolvers bipedIKSolvers4 = this.solvers;
BipedReferences bipedReferences2 = this.references;
Constraints pelvis = bipedIKSolvers4.pelvis;
Transform pelvis2 = bipedReferences2.pelvis;
pelvis.Initiate(pelvis2);
return;
}
Transform root8 = this.references.root;
int num2 = 0;
Warning.Log(text, root8, num2 != 0);
throw new NullReferenceException();
}
// Token: 0x06002435 RID: 9269 RVA: 0x00052954 File Offset: 0x00050B54
[Token(Token = "0x6002435")]
[Address(RVA = "0x8D5F40", Offset = "0x8D4D40", VA = "0x1808D5F40", Slot = "5")]
protected override void UpdateSolver()
{
int num;
IKSolverFABRIK spine;
do
{
BipedIKSolvers bipedIKSolvers = this.solvers;
num = 0;
IKSolverLimb[] limbs = bipedIKSolvers.limbs;
BipedIKSolvers bipedIKSolvers2 = this.solvers;
if (num < limbs.Length)
{
bipedIKSolvers2.limbs[num].MaintainBend();
this.solvers.limbs[num].MaintainRotation();
BipedIKSolvers bipedIKSolvers3 = this.solvers;
num++;
}
bipedIKSolvers2.pelvis.Update();
spine = this.solvers.spine;
}
while (spine.bones.Length <= 1);
spine.Update();
this.solvers.aim.Update();
this.solvers.lookAt.Update();
IKSolverLimb[] limbs2 = this.solvers.limbs;
if (num < limbs2.Length)
{
this.solvers.limbs[num].Update();
BipedIKSolvers bipedIKSolvers4 = this.solvers;
num++;
while (bipedIKSolvers4 != 0)
{
}
}
}
// Token: 0x06002436 RID: 9270 RVA: 0x00052A48 File Offset: 0x00050C48
[Token(Token = "0x6002436")]
[Address(RVA = "0x8D5970", Offset = "0x8D4770", VA = "0x1808D5970")]
public void LogWarning(string message)
{
Transform transform = base.transform;
int num = 0;
Warning.Log(message, transform, num != 0);
}
// Token: 0x06002437 RID: 9271 RVA: 0x00052A68 File Offset: 0x00050C68
[Token(Token = "0x6002437")]
[Address(RVA = "0x8D6160", Offset = "0x8D4F60", VA = "0x1808D6160")]
public BipedIK()
{
BipedReferences bipedReferences = new BipedReferences();
this.references = bipedReferences;
BipedIKSolvers bipedIKSolvers = new BipedIKSolvers();
this.solvers = bipedIKSolvers;
base..ctor();
}
// Token: 0x04002DF1 RID: 11761
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002DF1")]
public BipedReferences references;
// Token: 0x04002DF2 RID: 11762
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4002DF2")]
public BipedIKSolvers solvers;
}
}

View File

@@ -0,0 +1,229 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x020003F1 RID: 1009
[Token(Token = "0x20003F1")]
[Serializable]
public class BipedIKSolvers
{
// Token: 0x1700020B RID: 523
// (get) Token: 0x06002438 RID: 9272 RVA: 0x00052A98 File Offset: 0x00050C98
[Token(Token = "0x1700020B")]
public IKSolverLimb[] limbs
{
[Token(Token = "0x6002438")]
[Address(RVA = "0x8D5090", Offset = "0x8D3E90", VA = "0x1808D5090")]
get
{
IKSolverLimb[] limbs;
IKSolverLimb[] array;
IKSolverLimb iksolverLimb4;
for (;;)
{
limbs = this._limbs;
if (limbs != 0 && limbs.Length == 4)
{
return limbs;
}
array = new IKSolverLimb[4];
IKSolverLimb iksolverLimb = this.leftFoot;
if (iksolverLimb == 0 || array != 0)
{
array[0] = iksolverLimb;
IKSolverLimb iksolverLimb2 = this.rightFoot;
if (iksolverLimb2 == 0 || array != 0)
{
array[1] = iksolverLimb2;
IKSolverLimb iksolverLimb3 = this.leftHand;
if (iksolverLimb3 == 0 || array != 0)
{
array[2] = iksolverLimb3;
iksolverLimb4 = this.rightHand;
if (iksolverLimb4 == 0 || array != 0)
{
break;
}
}
}
}
}
array[3] = iksolverLimb4;
this._limbs = array;
return limbs;
}
}
// Token: 0x1700020C RID: 524
// (get) Token: 0x06002439 RID: 9273 RVA: 0x00052B34 File Offset: 0x00050D34
[Token(Token = "0x1700020C")]
public IKSolver[] ikSolvers
{
[Token(Token = "0x6002439")]
[Address(RVA = "0x8D4D80", Offset = "0x8D3B80", VA = "0x1808D4D80")]
get
{
IKSolver[] ikSolvers;
IKSolver[] array;
IKSolverAim iksolverAim;
for (;;)
{
ikSolvers = this._ikSolvers;
if (ikSolvers != 0 && ikSolvers.Length == 7)
{
return ikSolvers;
}
array = new IKSolver[7];
IKSolverLimb iksolverLimb = this.leftFoot;
if (iksolverLimb == 0 || array != 0)
{
array[0] = iksolverLimb;
IKSolverLimb iksolverLimb2 = this.rightFoot;
if (iksolverLimb2 == 0 || array != 0)
{
array[1] = iksolverLimb2;
IKSolverLimb iksolverLimb3 = this.leftHand;
if (iksolverLimb3 == 0 || array != 0)
{
array[2] = iksolverLimb3;
IKSolverLimb iksolverLimb4 = this.rightHand;
if (iksolverLimb4 == 0 || array != 0)
{
array[3] = iksolverLimb4;
IKSolverFABRIK iksolverFABRIK = this.spine;
if (iksolverFABRIK == 0 || array != 0)
{
array[4] = iksolverFABRIK;
IKSolverLookAt iksolverLookAt = this.lookAt;
if (iksolverLookAt == 0 || array != 0)
{
array[5] = iksolverLookAt;
iksolverAim = this.aim;
if (iksolverAim == 0 || array != 0)
{
break;
}
}
}
}
}
}
}
}
array[6] = iksolverAim;
this._ikSolvers = array;
return ikSolvers;
}
}
// Token: 0x0600243A RID: 9274 RVA: 0x00052C28 File Offset: 0x00050E28
[Token(Token = "0x600243A")]
[Address(RVA = "0x8D4A20", Offset = "0x8D3820", VA = "0x1808D4A20")]
public void AssignReferences(BipedReferences references)
{
IKSolverLimb iksolverLimb = this.leftHand;
Transform root = references.root;
int num = 0;
Transform transform = references.leftHand;
Transform leftForearm = references.leftForearm;
Transform leftUpperArm = references.leftUpperArm;
bool flag = iksolverLimb.SetChain(leftUpperArm, leftForearm, transform, root);
IKSolverLimb iksolverLimb2 = this.rightHand;
Transform root2 = references.root;
Transform transform2 = references.rightHand;
Transform rightForearm = references.rightForearm;
Transform rightUpperArm = references.rightUpperArm;
bool flag2 = iksolverLimb2.SetChain(rightUpperArm, rightForearm, transform2, root2);
IKSolverLimb iksolverLimb3 = this.leftFoot;
Transform root3 = references.root;
Transform transform3 = references.leftFoot;
Transform leftCalf = references.leftCalf;
Transform leftThigh = references.leftThigh;
bool flag3 = iksolverLimb3.SetChain(leftThigh, leftCalf, transform3, root3);
IKSolverLimb iksolverLimb4 = this.rightFoot;
Transform root4 = references.root;
Transform transform4 = references.rightFoot;
Transform rightCalf = references.rightCalf;
Transform rightThigh = references.rightThigh;
bool flag4 = iksolverLimb4.SetChain(rightThigh, rightCalf, transform4, root4);
IKSolverFABRIK iksolverFABRIK = this.spine;
Transform root5 = references.root;
Transform[] array = references.spine;
bool flag5 = iksolverFABRIK.SetChain(array, root5);
IKSolverLookAt iksolverLookAt = this.lookAt;
Transform root6 = references.root;
Transform[] eyes = references.eyes;
Transform head = references.head;
Transform[] array2 = references.spine;
bool flag6 = iksolverLookAt.SetChain(array2, head, eyes, root6);
IKSolverAim iksolverAim = this.aim;
Transform root7 = references.root;
Transform[] array3 = references.spine;
bool flag7 = iksolverAim.SetChain(array3, root7);
this.leftFoot.goal = (AvatarIKGoal)num;
this.rightFoot.goal = (AvatarIKGoal)((ulong)1L);
this.leftHand.goal = (AvatarIKGoal)((ulong)2L);
this.rightHand.goal = (AvatarIKGoal)((ulong)3L);
}
// Token: 0x0600243B RID: 9275 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600243B")]
[Address(RVA = "0x8D4BC0", Offset = "0x8D39C0", VA = "0x1808D4BC0")]
public BipedIKSolvers()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04002DF3 RID: 11763
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002DF3")]
public IKSolverLimb leftFoot;
// Token: 0x04002DF4 RID: 11764
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002DF4")]
public IKSolverLimb rightFoot;
// Token: 0x04002DF5 RID: 11765
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002DF5")]
public IKSolverLimb leftHand;
// Token: 0x04002DF6 RID: 11766
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4002DF6")]
public IKSolverLimb rightHand;
// Token: 0x04002DF7 RID: 11767
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4002DF7")]
public IKSolverFABRIK spine;
// Token: 0x04002DF8 RID: 11768
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002DF8")]
public IKSolverLookAt lookAt;
// Token: 0x04002DF9 RID: 11769
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4002DF9")]
public IKSolverAim aim;
// Token: 0x04002DFA RID: 11770
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4002DFA")]
public Constraints pelvis;
// Token: 0x04002DFB RID: 11771
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4002DFB")]
private IKSolverLimb[] _limbs;
// Token: 0x04002DFC RID: 11772
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4002DFC")]
private IKSolver[] _ikSolvers;
}
}

View File

@@ -0,0 +1,68 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200046C RID: 1132
[Token(Token = "0x200046C")]
public class BodyTilt : OffsetModifier
{
// Token: 0x06002894 RID: 10388 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002894")]
[Address(RVA = "0xDE3E10", Offset = "0xDE2C10", VA = "0x180DE3E10", Slot = "5")]
protected override void Start()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002895 RID: 10389 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002895")]
[Address(RVA = "0xDE3C10", Offset = "0xDE2A10", VA = "0x180DE3C10", Slot = "4")]
protected override void OnModifyOffset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002896 RID: 10390 RVA: 0x0005961C File Offset: 0x0005781C
[Token(Token = "0x6002896")]
[Address(RVA = "0xDE3E60", Offset = "0xDE2C60", VA = "0x180DE3E60")]
public BodyTilt()
{
}
// Token: 0x040031D9 RID: 12761
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40031D9")]
[Tooltip("Speed of tilting")]
public float tiltSpeed = 6f;
// Token: 0x040031DA RID: 12762
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x40031DA")]
[Tooltip("Sensitivity of tilting")]
public float tiltSensitivity = 0.07f;
// Token: 0x040031DB RID: 12763
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40031DB")]
[Tooltip("The OffsetPose components")]
public OffsetPose poseLeft;
// Token: 0x040031DC RID: 12764
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40031DC")]
[Tooltip("The OffsetPose components")]
public OffsetPose poseRight;
// Token: 0x040031DD RID: 12765
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40031DD")]
private float tiltAngle;
// Token: 0x040031DE RID: 12766
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x40031DE")]
private Vector3 lastForward;
}
}

View File

@@ -0,0 +1,72 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000407 RID: 1031
[Token(Token = "0x2000407")]
[HelpURL("http://www.root-motion.com/finalikdox/html/page3.html")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/IK/CCD IK")]
public class CCDIK : IK
{
// Token: 0x060024F4 RID: 9460 RVA: 0x00053B6C File Offset: 0x00051D6C
[Token(Token = "0x60024F4")]
[Address(RVA = "0x1348D60", Offset = "0x1347B60", VA = "0x181348D60", Slot = "8")]
[ContextMenu("User Manual")]
protected override void OpenUserManual()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/page3.html");
}
// Token: 0x060024F5 RID: 9461 RVA: 0x00053B84 File Offset: 0x00051D84
[Token(Token = "0x60024F5")]
[Address(RVA = "0x1348D20", Offset = "0x1347B20", VA = "0x181348D20", Slot = "9")]
[ContextMenu("Scrpt Reference")]
protected override void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_c_c_d_i_k.html");
}
// Token: 0x060024F6 RID: 9462 RVA: 0x00053B9C File Offset: 0x00051D9C
[Token(Token = "0x60024F6")]
[Address(RVA = "0x1348DA0", Offset = "0x1347BA0", VA = "0x181348DA0")]
[ContextMenu("Support Group")]
private void SupportGroup()
{
Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
}
// Token: 0x060024F7 RID: 9463 RVA: 0x00053BB4 File Offset: 0x00051DB4
[Token(Token = "0x60024F7")]
[Address(RVA = "0x1348CE0", Offset = "0x1347AE0", VA = "0x181348CE0")]
[ContextMenu("Asset Store Thread")]
private void ASThread()
{
Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
}
// Token: 0x060024F8 RID: 9464 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024F8")]
[Address(RVA = "0x31E3C0", Offset = "0x31D1C0", VA = "0x18031E3C0", Slot = "7")]
public override IKSolver GetIKSolver()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024F9 RID: 9465 RVA: 0x00053BCC File Offset: 0x00051DCC
[Token(Token = "0x60024F9")]
[Address(RVA = "0x1348DE0", Offset = "0x1347BE0", VA = "0x181348DE0")]
public CCDIK()
{
IKSolverCCD iksolverCCD = new IKSolverCCD();
this.solver = iksolverCCD;
base..ctor();
}
// Token: 0x04002E9A RID: 11930
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002E9A")]
public IKSolverCCD solver;
}
}

View File

@@ -0,0 +1,49 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x020003F2 RID: 1010
[Token(Token = "0x20003F2")]
[Serializable]
public abstract class Constraint
{
// Token: 0x1700020D RID: 525
// (get) Token: 0x0600243C RID: 9276 RVA: 0x00052DD4 File Offset: 0x00050FD4
[Token(Token = "0x1700020D")]
public bool isValid
{
[Token(Token = "0x600243C")]
[Address(RVA = "0xE90970", Offset = "0xE8F770", VA = "0x180E90970")]
get
{
Transform transform = this.transform;
int num = 0;
return transform != num;
}
}
// Token: 0x0600243D RID: 9277
[Token(Token = "0x600243D")]
[Address(Slot = "4")]
public abstract void UpdateConstraint();
// Token: 0x0600243E RID: 9278 RVA: 0x00052DF4 File Offset: 0x00050FF4
[Token(Token = "0x600243E")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
protected Constraint()
{
}
// Token: 0x04002DFD RID: 11773
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002DFD")]
public Transform transform;
// Token: 0x04002DFE RID: 11774
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002DFE")]
public float weight;
}
}

View File

@@ -0,0 +1,54 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x020003F3 RID: 1011
[Token(Token = "0x20003F3")]
[Serializable]
public class ConstraintPosition : Constraint
{
// Token: 0x0600243F RID: 9279 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600243F")]
[Address(RVA = "0xE904D0", Offset = "0xE8F2D0", VA = "0x180E904D0", Slot = "4")]
public override void UpdateConstraint()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002440 RID: 9280 RVA: 0x00052E08 File Offset: 0x00051008
[Token(Token = "0x6002440")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public ConstraintPosition()
{
}
// Token: 0x06002441 RID: 9281 RVA: 0x00052E1C File Offset: 0x0005101C
[Token(Token = "0x6002441")]
[Address(RVA = "0x44F860", Offset = "0x44E660", VA = "0x18044F860")]
public ConstraintPosition(Transform transform)
{
/*
An exception occurred when decompiling this method (06002441)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.ConstraintPosition::.ctor(UnityEngine.Transform)
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; call:void(object::.ctor, ldloc:ConstraintPosition[exp:object](this)); stfld:Transform(Constraint::transform, ldloc:ConstraintPosition[exp:Constraint](this), ldloc:Transform(transform)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
// Token: 0x04002DFF RID: 11775
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002DFF")]
public Vector3 position;
}
}

View File

@@ -0,0 +1,82 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x020003F4 RID: 1012
[Token(Token = "0x20003F4")]
[Serializable]
public class ConstraintPositionOffset : Constraint
{
// Token: 0x06002442 RID: 9282 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002442")]
[Address(RVA = "0xE90210", Offset = "0xE8F010", VA = "0x180E90210", Slot = "4")]
public override void UpdateConstraint()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002443 RID: 9283 RVA: 0x00052E38 File Offset: 0x00051038
[Token(Token = "0x6002443")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public ConstraintPositionOffset()
{
}
// Token: 0x06002444 RID: 9284 RVA: 0x00052E4C File Offset: 0x0005104C
[Token(Token = "0x6002444")]
[Address(RVA = "0x44F860", Offset = "0x44E660", VA = "0x18044F860")]
public ConstraintPositionOffset(Transform transform)
{
/*
An exception occurred when decompiling this method (06002444)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.ConstraintPositionOffset::.ctor(UnityEngine.Transform)
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; call:void(object::.ctor, ldloc:ConstraintPositionOffset[exp:object](this)); stfld:Transform(Constraint::transform, ldloc:ConstraintPositionOffset[exp:Constraint](this), ldloc:Transform(transform)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
// Token: 0x1700020E RID: 526
// (get) Token: 0x06002445 RID: 9285 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x1700020E")]
private bool positionChanged
{
[Token(Token = "0x6002445")]
[Address(RVA = "0xE90470", Offset = "0xE8F270", VA = "0x180E90470")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x04002E00 RID: 11776
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002E00")]
public Vector3 offset;
// Token: 0x04002E01 RID: 11777
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4002E01")]
private Vector3 defaultLocalPosition;
// Token: 0x04002E02 RID: 11778
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002E02")]
private Vector3 lastLocalPosition;
// Token: 0x04002E03 RID: 11779
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x4002E03")]
private bool initiated;
}
}

View File

@@ -0,0 +1,54 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x020003F5 RID: 1013
[Token(Token = "0x20003F5")]
[Serializable]
public class ConstraintRotation : Constraint
{
// Token: 0x06002446 RID: 9286 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002446")]
[Address(RVA = "0xE90870", Offset = "0xE8F670", VA = "0x180E90870", Slot = "4")]
public override void UpdateConstraint()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002447 RID: 9287 RVA: 0x00052E68 File Offset: 0x00051068
[Token(Token = "0x6002447")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public ConstraintRotation()
{
}
// Token: 0x06002448 RID: 9288 RVA: 0x00052E7C File Offset: 0x0005107C
[Token(Token = "0x6002448")]
[Address(RVA = "0x44F860", Offset = "0x44E660", VA = "0x18044F860")]
public ConstraintRotation(Transform transform)
{
/*
An exception occurred when decompiling this method (06002448)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.ConstraintRotation::.ctor(UnityEngine.Transform)
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; call:void(object::.ctor, ldloc:ConstraintRotation[exp:object](this)); stfld:Transform(Constraint::transform, ldloc:ConstraintRotation[exp:Constraint](this), ldloc:Transform(transform)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
// Token: 0x04002E04 RID: 11780
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002E04")]
public Quaternion rotation;
}
}

View File

@@ -0,0 +1,92 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x020003F6 RID: 1014
[Token(Token = "0x20003F6")]
[Serializable]
public class ConstraintRotationOffset : Constraint
{
// Token: 0x06002449 RID: 9289 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002449")]
[Address(RVA = "0xE90630", Offset = "0xE8F430", VA = "0x180E90630", Slot = "4")]
public override void UpdateConstraint()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600244A RID: 9290 RVA: 0x00052E98 File Offset: 0x00051098
[Token(Token = "0x600244A")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public ConstraintRotationOffset()
{
}
// Token: 0x0600244B RID: 9291 RVA: 0x00052EAC File Offset: 0x000510AC
[Token(Token = "0x600244B")]
[Address(RVA = "0x44F860", Offset = "0x44E660", VA = "0x18044F860")]
public ConstraintRotationOffset(Transform transform)
{
/*
An exception occurred when decompiling this method (0600244B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.ConstraintRotationOffset::.ctor(UnityEngine.Transform)
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; call:void(object::.ctor, ldloc:ConstraintRotationOffset[exp:object](this)); stfld:Transform(Constraint::transform, ldloc:ConstraintRotationOffset[exp:Constraint](this), ldloc:Transform(transform)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
// Token: 0x1700020F RID: 527
// (get) Token: 0x0600244C RID: 9292 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x1700020F")]
private bool rotationChanged
{
[Token(Token = "0x600244C")]
[Address(RVA = "0xE90820", Offset = "0xE8F620", VA = "0x180E90820")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x04002E05 RID: 11781
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002E05")]
public Quaternion offset;
// Token: 0x04002E06 RID: 11782
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4002E06")]
private Quaternion defaultRotation;
// Token: 0x04002E07 RID: 11783
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4002E07")]
private Quaternion defaultLocalRotation;
// Token: 0x04002E08 RID: 11784
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4002E08")]
private Quaternion lastLocalRotation;
// Token: 0x04002E09 RID: 11785
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002E09")]
private Quaternion defaultTargetLocalRotation;
// Token: 0x04002E0A RID: 11786
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4002E0A")]
private bool initiated;
}
}

View File

@@ -0,0 +1,87 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x020003F7 RID: 1015
[Token(Token = "0x20003F7")]
[Serializable]
public class Constraints
{
// Token: 0x0600244D RID: 9293 RVA: 0x00052EC8 File Offset: 0x000510C8
[Token(Token = "0x600244D")]
[Address(RVA = "0xE90A50", Offset = "0xE8F850", VA = "0x180E90A50")]
public bool IsValid()
{
Transform transform = this.transform;
int num = 0;
return transform != num;
}
// Token: 0x0600244E RID: 9294 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600244E")]
[Address(RVA = "0xE909D0", Offset = "0xE8F7D0", VA = "0x180E909D0")]
public void Initiate(Transform transform)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600244F RID: 9295 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600244F")]
[Address(RVA = "0xE90AB0", Offset = "0xE8F8B0", VA = "0x180E90AB0")]
public void Update()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002450 RID: 9296 RVA: 0x00052EE8 File Offset: 0x000510E8
[Token(Token = "0x6002450")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public Constraints()
{
}
// Token: 0x04002E0B RID: 11787
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002E0B")]
public Transform transform;
// Token: 0x04002E0C RID: 11788
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002E0C")]
public Transform target;
// Token: 0x04002E0D RID: 11789
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002E0D")]
public Vector3 positionOffset;
// Token: 0x04002E0E RID: 11790
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4002E0E")]
public Vector3 position;
// Token: 0x04002E0F RID: 11791
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002E0F")]
[Range(0f, 1f)]
public float positionWeight;
// Token: 0x04002E10 RID: 11792
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x4002E10")]
public Vector3 rotationOffset;
// Token: 0x04002E11 RID: 11793
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4002E11")]
public Vector3 rotation;
// Token: 0x04002E12 RID: 11794
[FieldOffset(Offset = "0x54")]
[Token(Token = "0x4002E12")]
[Range(0f, 1f)]
public float rotationWeight;
}
}

View File

@@ -0,0 +1,72 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000408 RID: 1032
[Token(Token = "0x2000408")]
[HelpURL("http://www.root-motion.com/finalikdox/html/page4.html")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/IK/FABRIK")]
public class FABRIK : IK
{
// Token: 0x060024FA RID: 9466 RVA: 0x00053BEC File Offset: 0x00051DEC
[Token(Token = "0x60024FA")]
[Address(RVA = "0xA6B470", Offset = "0xA6A270", VA = "0x180A6B470", Slot = "8")]
[ContextMenu("User Manual")]
protected override void OpenUserManual()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/page4.html");
}
// Token: 0x060024FB RID: 9467 RVA: 0x00053C04 File Offset: 0x00051E04
[Token(Token = "0x60024FB")]
[Address(RVA = "0xA6B430", Offset = "0xA6A230", VA = "0x180A6B430", Slot = "9")]
[ContextMenu("Scrpt Reference")]
protected override void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_f_a_b_r_i_k.html");
}
// Token: 0x060024FC RID: 9468 RVA: 0x00053C1C File Offset: 0x00051E1C
[Token(Token = "0x60024FC")]
[Address(RVA = "0xA6B4B0", Offset = "0xA6A2B0", VA = "0x180A6B4B0")]
[ContextMenu("Support Group")]
private void SupportGroup()
{
Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
}
// Token: 0x060024FD RID: 9469 RVA: 0x00053C34 File Offset: 0x00051E34
[Token(Token = "0x60024FD")]
[Address(RVA = "0xA6B3F0", Offset = "0xA6A1F0", VA = "0x180A6B3F0")]
[ContextMenu("Asset Store Thread")]
private void ASThread()
{
Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
}
// Token: 0x060024FE RID: 9470 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024FE")]
[Address(RVA = "0x31E3C0", Offset = "0x31D1C0", VA = "0x18031E3C0", Slot = "7")]
public override IKSolver GetIKSolver()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024FF RID: 9471 RVA: 0x00053C4C File Offset: 0x00051E4C
[Token(Token = "0x60024FF")]
[Address(RVA = "0xA6B4F0", Offset = "0xA6A2F0", VA = "0x180A6B4F0")]
public FABRIK()
{
IKSolverFABRIK iksolverFABRIK = new IKSolverFABRIK();
this.solver = iksolverFABRIK;
base..ctor();
}
// Token: 0x04002E9B RID: 11931
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002E9B")]
public IKSolverFABRIK solver;
}
}

View File

@@ -0,0 +1,88 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000413 RID: 1043
[Token(Token = "0x2000413")]
[Serializable]
public class FABRIKChain
{
// Token: 0x06002546 RID: 9542 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002546")]
[Address(RVA = "0xA6AE80", Offset = "0xA69C80", VA = "0x180A6AE80")]
public bool IsValid(ref string message)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002547 RID: 9543 RVA: 0x0005455C File Offset: 0x0005275C
[Token(Token = "0x6002547")]
[Address(RVA = "0xA6AE50", Offset = "0xA69C50", VA = "0x180A6AE50")]
public void Initiate()
{
FABRIK fabrik = this.ik;
int num = 0;
fabrik.enabled = num != 0;
}
// Token: 0x06002548 RID: 9544 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002548")]
[Address(RVA = "0xA6AF60", Offset = "0xA69D60", VA = "0x180A6AF60")]
public void Stage1(FABRIKChain[] chain)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002549 RID: 9545 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002549")]
[Address(RVA = "0xA6B0A0", Offset = "0xA69EA0", VA = "0x180A6B0A0")]
public void Stage2(Vector3 rootPosition, FABRIKChain[] chain)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600254A RID: 9546 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600254A")]
[Address(RVA = "0xA6AB30", Offset = "0xA69930", VA = "0x180A6AB30")]
private Vector3 GetCentroid(FABRIKChain[] chain)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600254B RID: 9547 RVA: 0x00054580 File Offset: 0x00052780
[Token(Token = "0x600254B")]
[Address(RVA = "0xA6B220", Offset = "0xA6A020", VA = "0x180A6B220")]
public FABRIKChain()
{
int num = 0;
this.pin = 1f;
int[] array = new int[num];
this.children = array;
base..ctor();
}
// Token: 0x04002EBE RID: 11966
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002EBE")]
public FABRIK ik;
// Token: 0x04002EBF RID: 11967
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002EBF")]
[Range(0f, 1f)]
public float pull = 1f;
// Token: 0x04002EC0 RID: 11968
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4002EC0")]
[Range(0f, 1f)]
public float pin;
// Token: 0x04002EC1 RID: 11969
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002EC1")]
public int[] children;
}
}

View File

@@ -0,0 +1,72 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000409 RID: 1033
[Token(Token = "0x2000409")]
[HelpURL("http://www.root-motion.com/finalikdox/html/page5.html")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/IK/FABRIK Root")]
public class FABRIKRoot : IK
{
// Token: 0x06002500 RID: 9472 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002500")]
[Address(RVA = "0xA6B300", Offset = "0xA6A100", VA = "0x180A6B300", Slot = "8")]
[ContextMenu("User Manual")]
protected override void OpenUserManual()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002501 RID: 9473 RVA: 0x00053C6C File Offset: 0x00051E6C
[Token(Token = "0x6002501")]
[Address(RVA = "0xA6B2C0", Offset = "0xA6A0C0", VA = "0x180A6B2C0", Slot = "9")]
[ContextMenu("Scrpt Reference")]
protected override void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_f_a_b_r_i_k_root.html");
}
// Token: 0x06002502 RID: 9474 RVA: 0x00053C84 File Offset: 0x00051E84
[Token(Token = "0x6002502")]
[Address(RVA = "0xA6B340", Offset = "0xA6A140", VA = "0x180A6B340")]
[ContextMenu("Support Group")]
private void SupportGroup()
{
Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
}
// Token: 0x06002503 RID: 9475 RVA: 0x00053C9C File Offset: 0x00051E9C
[Token(Token = "0x6002503")]
[Address(RVA = "0xA6B280", Offset = "0xA6A080", VA = "0x180A6B280")]
[ContextMenu("Asset Store Thread")]
private void ASThread()
{
Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
}
// Token: 0x06002504 RID: 9476 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002504")]
[Address(RVA = "0x31E3C0", Offset = "0x31D1C0", VA = "0x18031E3C0", Slot = "7")]
public override IKSolver GetIKSolver()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002505 RID: 9477 RVA: 0x00053CB4 File Offset: 0x00051EB4
[Token(Token = "0x6002505")]
[Address(RVA = "0xA6B380", Offset = "0xA6A180", VA = "0x180A6B380")]
public FABRIKRoot()
{
IKSolverFABRIKRoot iksolverFABRIKRoot = new IKSolverFABRIKRoot();
this.solver = iksolverFABRIKRoot;
base..ctor();
}
// Token: 0x04002E9C RID: 11932
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002E9C")]
public IKSolverFABRIKRoot solver;
}
}

View File

@@ -0,0 +1,96 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000414 RID: 1044
[Token(Token = "0x2000414")]
public class FBBIKArmBending : MonoBehaviour
{
// Token: 0x0600254C RID: 9548 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600254C")]
[Address(RVA = "0xA6B560", Offset = "0xA6A360", VA = "0x180A6B560")]
private void LateUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600254D RID: 9549 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600254D")]
[Address(RVA = "0xA6BD50", Offset = "0xA6AB50", VA = "0x180A6BD50")]
private void OnPostFBBIK()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600254E RID: 9550 RVA: 0x000545BC File Offset: 0x000527BC
[Token(Token = "0x600254E")]
[Address(RVA = "0xA6BC30", Offset = "0xA6AA30", VA = "0x180A6BC30")]
private void OnDestroy()
{
FullBodyBipedIK fullBodyBipedIK = this.ik;
int num = 0;
if (fullBodyBipedIK != num)
{
IKSolverFullBodyBiped solver = this.ik.solver;
IKSolver.UpdateDelegate onPostUpdate = solver.OnPostUpdate;
IKSolver.UpdateDelegate updateDelegate = new IKSolver.UpdateDelegate(this.OnPostFBBIK);
Delegate @delegate = Delegate.Remove(onPostUpdate, updateDelegate);
int num2 = 0;
if (@delegate != 0 && @delegate == 0)
{
throw new InvalidCastException();
}
solver.OnPostUpdate = num2;
}
}
// Token: 0x0600254F RID: 9551 RVA: 0x00054628 File Offset: 0x00052828
[Token(Token = "0x600254F")]
[Address(RVA = "0x3088F0", Offset = "0x3076F0", VA = "0x1803088F0")]
public FBBIKArmBending()
{
}
// Token: 0x04002EC2 RID: 11970
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002EC2")]
public FullBodyBipedIK ik;
// Token: 0x04002EC3 RID: 11971
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002EC3")]
public Vector3 bendDirectionOffsetLeft;
// Token: 0x04002EC4 RID: 11972
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4002EC4")]
public Vector3 bendDirectionOffsetRight;
// Token: 0x04002EC5 RID: 11973
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002EC5")]
public Vector3 characterSpaceBendOffsetLeft;
// Token: 0x04002EC6 RID: 11974
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x4002EC6")]
public Vector3 characterSpaceBendOffsetRight;
// Token: 0x04002EC7 RID: 11975
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4002EC7")]
private Quaternion leftHandTargetRotation;
// Token: 0x04002EC8 RID: 11976
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002EC8")]
private Quaternion rightHandTargetRotation;
// Token: 0x04002EC9 RID: 11977
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4002EC9")]
private bool initiated;
}
}

View File

@@ -0,0 +1,527 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000415 RID: 1045
[Token(Token = "0x2000415")]
public class FBBIKHeadEffector : MonoBehaviour
{
// Token: 0x06002550 RID: 9552 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002550")]
[Address(RVA = "0xA6BF50", Offset = "0xA6AD50", VA = "0x180A6BF50")]
private void Awake()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002551 RID: 9553 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002551")]
[Address(RVA = "0xA6F010", Offset = "0xA6DE10", VA = "0x180A6F010")]
private void OnStoreDefaultLocalState()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002552 RID: 9554 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002552")]
[Address(RVA = "0xA6DE90", Offset = "0xA6CC90", VA = "0x180A6DE90")]
private void OnFixTransforms()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002553 RID: 9555 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002553")]
[Address(RVA = "0xA6E630", Offset = "0xA6D430", VA = "0x180A6E630")]
private void OnPreRead()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002554 RID: 9556 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002554")]
[Address(RVA = "0xA6FC90", Offset = "0xA6EA90", VA = "0x180A6FC90")]
private void SpineBend()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002555 RID: 9557 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002555")]
[Address(RVA = "0xA6C370", Offset = "0xA6B170", VA = "0x180A6C370")]
private void CCDPass()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002556 RID: 9558 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002556")]
[Address(RVA = "0xA6CAB0", Offset = "0xA6B8B0", VA = "0x180A6CAB0")]
private void Iterate(int iteration)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002557 RID: 9559 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002557")]
[Address(RVA = "0xA6E410", Offset = "0xA6D210", VA = "0x180A6E410")]
private void OnPostUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002558 RID: 9560 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002558")]
[Address(RVA = "0xA6C810", Offset = "0xA6B610", VA = "0x180A6C810")]
private void ChestDirection()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002559 RID: 9561 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002559")]
[Address(RVA = "0xA6F6D0", Offset = "0xA6E4D0", VA = "0x180A6F6D0")]
private void PostStretching()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600255A RID: 9562 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600255A")]
[Address(RVA = "0xA6D920", Offset = "0xA6C720", VA = "0x180A6D920")]
private void LerpSolverPosition(IKEffector effector, Vector3 position, float weight, Vector3 offset)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600255B RID: 9563 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600255B")]
[Address(RVA = "0xA6FB00", Offset = "0xA6E900", VA = "0x180A6FB00")]
private void Solve(ref Vector3 pos1, ref Vector3 pos2, float nominalDistance)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600255C RID: 9564 RVA: 0x0005463C File Offset: 0x0005283C
[Token(Token = "0x600255C")]
[Address(RVA = "0xA6DAF0", Offset = "0xA6C8F0", VA = "0x180A6DAF0")]
private void OnDestroy()
{
FullBodyBipedIK fullBodyBipedIK = this.ik;
int num = 0;
if (fullBodyBipedIK != num)
{
IKSolverFullBodyBiped solver = this.ik.solver;
IKSolver.UpdateDelegate updateDelegate = new IKSolver.UpdateDelegate(this.OnPreRead);
Delegate @delegate = Delegate.Remove(updateDelegate, updateDelegate);
int num2 = 0;
if (@delegate == 0 || @delegate != 0)
{
solver.OnPreRead = num2;
IKSolverFullBodyBiped solver2 = this.ik.solver;
IKSolver.IterationDelegate iterationDelegate = new IKSolver.IterationDelegate(this.Iterate);
Delegate delegate2 = Delegate.Remove(iterationDelegate, iterationDelegate);
if (delegate2 == 0 || delegate2 != 0)
{
solver2.OnPreIteration = delegate2;
IKSolverFullBodyBiped solver3 = this.ik.solver;
IKSolver.UpdateDelegate onPostUpdate = solver3.OnPostUpdate;
IKSolver.UpdateDelegate updateDelegate2 = new IKSolver.UpdateDelegate(this.OnPostUpdate);
Delegate delegate3 = Delegate.Remove(onPostUpdate, updateDelegate2);
if (delegate3 == 0 || delegate3 != 0)
{
solver3.OnPostUpdate = delegate3;
IKSolverFullBodyBiped solver4 = this.ik.solver;
IKSolver.UpdateDelegate updateDelegate3 = new IKSolver.UpdateDelegate(this.OnStoreDefaultLocalState);
Delegate delegate4 = Delegate.Remove(onPostUpdate, updateDelegate3);
if (delegate4 == 0 || delegate4 != 0)
{
solver4.OnStoreDefaultLocalState = delegate4;
IKSolverFullBodyBiped solver5 = this.ik.solver;
IKSolver.UpdateDelegate onFixTransforms = solver5.OnFixTransforms;
IKSolver.UpdateDelegate updateDelegate4 = new IKSolver.UpdateDelegate(this.OnFixTransforms);
Delegate delegate5 = Delegate.Remove(onFixTransforms, updateDelegate4);
if (delegate5 == 0 || delegate5 != 0)
{
solver5.OnFixTransforms = delegate5;
return;
}
}
}
}
}
throw new InvalidCastException();
}
}
// Token: 0x0600255D RID: 9565 RVA: 0x000547A4 File Offset: 0x000529A4
[Token(Token = "0x600255D")]
[Address(RVA = "0xA70060", Offset = "0xA6EE60", VA = "0x180A70060")]
public FBBIKHeadEffector()
{
int num = 0;
this.bodyWeight = 0.8f;
this.thighWeight = 0.8f;
this.handsPullBody = true;
this.bodyClampWeight = 0.5f;
this.headClampWeight = 0.5f;
this.bendWeight = 1f;
FBBIKHeadEffector.BendBone[] array = new FBBIKHeadEffector.BendBone[num];
this.bendBones = array;
this.CCDWeight = 1f;
int num2 = 0;
this.damper = 500f;
Transform[] array2 = new Transform[num2];
this.CCDBones = array2;
this.postStretchWeight = 1f;
int num3 = 0;
this.maxStretch = 0.1f;
Transform[] array3 = new Transform[num3];
this.stretchBones = array3;
Vector3 forward = Vector3.forward;
int num4 = 0;
float z = forward.z;
this.chestDirection.z = z;
this.chestDirectionWeight = 1f;
Transform[] array4 = new Transform[num4];
this.chestBones = array4;
Quaternion[] array5 = new Quaternion[0];
this.ccdDefaultLocalRotations = array5;
Vector3[] array6 = new Vector3[0];
this.stretchLocalPositions = array6;
Quaternion[] array7 = new Quaternion[0];
this.stretchLocalRotations = array7;
Vector3[] array8 = new Vector3[0];
this.chestLocalPositions = array8;
Quaternion[] array9 = new Quaternion[0];
this.chestLocalRotations = array9;
base..ctor();
}
// Token: 0x04002ECA RID: 11978
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002ECA")]
[Tooltip("Reference to the FBBIK component.")]
public FullBodyBipedIK ik;
// Token: 0x04002ECB RID: 11979
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002ECB")]
[LargeHeader("Position")]
[Tooltip("Master weight for positioning the head.")]
[Range(0f, 1f)]
public float positionWeight = 1f;
// Token: 0x04002ECC RID: 11980
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x4002ECC")]
[Range(0f, 1f)]
[Tooltip("The weight of moving the body along with the head")]
public float bodyWeight;
// Token: 0x04002ECD RID: 11981
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4002ECD")]
[Tooltip("The weight of moving the thighs along with the head")]
[Range(0f, 1f)]
public float thighWeight;
// Token: 0x04002ECE RID: 11982
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4002ECE")]
[Tooltip("If false, hands will not pull the head away if they are too far. Disabling this will improve performance significantly.")]
public bool handsPullBody;
// Token: 0x04002ECF RID: 11983
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4002ECF")]
[LargeHeader("Rotation")]
[Tooltip("The weight of rotating the head bone after solving")]
[Range(0f, 1f)]
public float rotationWeight;
// Token: 0x04002ED0 RID: 11984
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x4002ED0")]
[Tooltip("Clamping the rotation of the body")]
[Range(0f, 1f)]
public float bodyClampWeight;
// Token: 0x04002ED1 RID: 11985
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002ED1")]
[Range(0f, 1f)]
[Tooltip("Clamping the rotation of the head")]
public float headClampWeight;
// Token: 0x04002ED2 RID: 11986
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x4002ED2")]
[Range(0f, 1f)]
[Tooltip("The master weight of bending/twisting the spine to the rotation of the head effector. This is similar to CCD, but uses the rotation of the head effector not the position.")]
public float bendWeight;
// Token: 0x04002ED3 RID: 11987
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4002ED3")]
[Tooltip("The bones to use for bending.")]
public FBBIKHeadEffector.BendBone[] bendBones;
// Token: 0x04002ED4 RID: 11988
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4002ED4")]
[LargeHeader("CCD")]
[Range(0f, 1f)]
[Tooltip("Optional. The master weight of the CCD (Cyclic Coordinate Descent) IK effect that bends the spine towards the head effector before FBBIK solves.")]
public float CCDWeight;
// Token: 0x04002ED5 RID: 11989
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x4002ED5")]
[Range(0f, 1f)]
[Tooltip("The weight of rolling the bones in towards the target")]
public float roll;
// Token: 0x04002ED6 RID: 11990
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4002ED6")]
[Range(0f, 1000f)]
[Tooltip("Smoothing the CCD effect.")]
public float damper;
// Token: 0x04002ED7 RID: 11991
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4002ED7")]
[Tooltip("Bones to use for the CCD pass. Assign spine and/or neck bones.")]
public Transform[] CCDBones;
// Token: 0x04002ED8 RID: 11992
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002ED8")]
[Tooltip("Stretching the spine/neck to help reach the target. This is useful for making sure the head stays locked relative to the VR headset. NB! Stretching is done after FBBIK has solved so if you have the hand effectors pinned and spine bones included in the 'Stretch Bones', the hands might become offset from their target positions.")]
[Range(0f, 1f)]
[LargeHeader("Stretching")]
public float postStretchWeight;
// Token: 0x04002ED9 RID: 11993
[FieldOffset(Offset = "0x64")]
[Token(Token = "0x4002ED9")]
[Tooltip("Stretch magnitude limit.")]
public float maxStretch;
// Token: 0x04002EDA RID: 11994
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4002EDA")]
[Tooltip("If > 0, dampers the stretching effect.")]
public float stretchDamper;
// Token: 0x04002EDB RID: 11995
[FieldOffset(Offset = "0x6C")]
[Token(Token = "0x4002EDB")]
[Tooltip("If true, will fix head position to this Transform no matter what. Good for making sure the head will not budge away from the VR headset")]
public bool fixHead;
// Token: 0x04002EDC RID: 11996
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4002EDC")]
[Tooltip("Bones to use for stretching. The more bones you add, the less noticable the effect.")]
public Transform[] stretchBones;
// Token: 0x04002EDD RID: 11997
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4002EDD")]
[LargeHeader("Chest Direction")]
public Vector3 chestDirection;
// Token: 0x04002EDE RID: 11998
[FieldOffset(Offset = "0x84")]
[Token(Token = "0x4002EDE")]
[Range(0f, 1f)]
public float chestDirectionWeight;
// Token: 0x04002EDF RID: 11999
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x4002EDF")]
public Transform[] chestBones;
// Token: 0x04002EE0 RID: 12000
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x4002EE0")]
public IKSolver.UpdateDelegate OnPostHeadEffectorFK;
// Token: 0x04002EE1 RID: 12001
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x4002EE1")]
private Vector3 offset;
// Token: 0x04002EE2 RID: 12002
[FieldOffset(Offset = "0xA4")]
[Token(Token = "0x4002EE2")]
private Vector3 headToBody;
// Token: 0x04002EE3 RID: 12003
[FieldOffset(Offset = "0xB0")]
[Token(Token = "0x4002EE3")]
private Vector3 shoulderCenterToHead;
// Token: 0x04002EE4 RID: 12004
[FieldOffset(Offset = "0xBC")]
[Token(Token = "0x4002EE4")]
private Vector3 headToLeftThigh;
// Token: 0x04002EE5 RID: 12005
[FieldOffset(Offset = "0xC8")]
[Token(Token = "0x4002EE5")]
private Vector3 headToRightThigh;
// Token: 0x04002EE6 RID: 12006
[FieldOffset(Offset = "0xD4")]
[Token(Token = "0x4002EE6")]
private Vector3 leftShoulderPos;
// Token: 0x04002EE7 RID: 12007
[FieldOffset(Offset = "0xE0")]
[Token(Token = "0x4002EE7")]
private Vector3 rightShoulderPos;
// Token: 0x04002EE8 RID: 12008
[FieldOffset(Offset = "0xEC")]
[Token(Token = "0x4002EE8")]
private float shoulderDist;
// Token: 0x04002EE9 RID: 12009
[FieldOffset(Offset = "0xF0")]
[Token(Token = "0x4002EE9")]
private float leftShoulderDist;
// Token: 0x04002EEA RID: 12010
[FieldOffset(Offset = "0xF4")]
[Token(Token = "0x4002EEA")]
private float rightShoulderDist;
// Token: 0x04002EEB RID: 12011
[FieldOffset(Offset = "0xF8")]
[Token(Token = "0x4002EEB")]
private Quaternion chestRotation;
// Token: 0x04002EEC RID: 12012
[FieldOffset(Offset = "0x108")]
[Token(Token = "0x4002EEC")]
private Quaternion headRotationRelativeToRoot;
// Token: 0x04002EED RID: 12013
[FieldOffset(Offset = "0x118")]
[Token(Token = "0x4002EED")]
private Quaternion[] ccdDefaultLocalRotations;
// Token: 0x04002EEE RID: 12014
[FieldOffset(Offset = "0x120")]
[Token(Token = "0x4002EEE")]
private Vector3 headLocalPosition;
// Token: 0x04002EEF RID: 12015
[FieldOffset(Offset = "0x12C")]
[Token(Token = "0x4002EEF")]
private Quaternion headLocalRotation;
// Token: 0x04002EF0 RID: 12016
[FieldOffset(Offset = "0x140")]
[Token(Token = "0x4002EF0")]
private Vector3[] stretchLocalPositions;
// Token: 0x04002EF1 RID: 12017
[FieldOffset(Offset = "0x148")]
[Token(Token = "0x4002EF1")]
private Quaternion[] stretchLocalRotations;
// Token: 0x04002EF2 RID: 12018
[FieldOffset(Offset = "0x150")]
[Token(Token = "0x4002EF2")]
private Vector3[] chestLocalPositions;
// Token: 0x04002EF3 RID: 12019
[FieldOffset(Offset = "0x158")]
[Token(Token = "0x4002EF3")]
private Quaternion[] chestLocalRotations;
// Token: 0x04002EF4 RID: 12020
[FieldOffset(Offset = "0x160")]
[Token(Token = "0x4002EF4")]
private int bendBonesCount;
// Token: 0x04002EF5 RID: 12021
[FieldOffset(Offset = "0x164")]
[Token(Token = "0x4002EF5")]
private int ccdBonesCount;
// Token: 0x04002EF6 RID: 12022
[FieldOffset(Offset = "0x168")]
[Token(Token = "0x4002EF6")]
private int stretchBonesCount;
// Token: 0x04002EF7 RID: 12023
[FieldOffset(Offset = "0x16C")]
[Token(Token = "0x4002EF7")]
private int chestBonesCount;
// Token: 0x02000416 RID: 1046
[Token(Token = "0x2000416")]
[Serializable]
public class BendBone
{
// Token: 0x0600255E RID: 9566 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600255E")]
[Address(RVA = "0x5F8B60", Offset = "0x5F7960", VA = "0x1805F8B60")]
public BendBone()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600255F RID: 9567 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600255F")]
[Address(RVA = "0x5F8B00", Offset = "0x5F7900", VA = "0x1805F8B00")]
public BendBone(Transform transform, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002560 RID: 9568 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002560")]
[Address(RVA = "0x5F8AC0", Offset = "0x5F78C0", VA = "0x1805F8AC0")]
public void StoreDefaultLocalState()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002561 RID: 9569 RVA: 0x000548EC File Offset: 0x00052AEC
[Token(Token = "0x6002561")]
[Address(RVA = "0x5F8A80", Offset = "0x5F7880", VA = "0x1805F8A80")]
public void FixTransforms()
{
Transform transform = this.transform;
Quaternion quaternion = this.defaultLocalRotation;
transform.localRotation = quaternion;
}
// Token: 0x04002EF8 RID: 12024
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002EF8")]
[Tooltip("Assign spine and/or neck bones.")]
public Transform transform;
// Token: 0x04002EF9 RID: 12025
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002EF9")]
[Tooltip("The weight of rotating this bone.")]
[Range(0f, 1f)]
public float weight;
// Token: 0x04002EFA RID: 12026
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4002EFA")]
private Quaternion defaultLocalRotation;
}
}
}

View File

@@ -0,0 +1,455 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000417 RID: 1047
[Token(Token = "0x2000417")]
[Serializable]
public class FBIKChain
{
// Token: 0x06002562 RID: 9570 RVA: 0x00054914 File Offset: 0x00052B14
[Token(Token = "0x6002562")]
[Address(RVA = "0x4BB470", Offset = "0x4BA270", VA = "0x1804BB470")]
public FBIKChain()
{
this.pull = 1f;
int num = 0;
this.reach = 0.1f;
this.reachSmoothing = (FBIKChain.Smoothing)((ulong)1L);
this.pushSmoothing = (FBIKChain.Smoothing)((ulong)1L);
IKSolver.Node[] array = new IKSolver.Node[num];
this.nodes = array;
int[] array2 = new int[0];
this.children = array2;
FBIKChain.ChildConstraint[] array3 = new FBIKChain.ChildConstraint[0];
this.childConstraints = array3;
IKConstraintBend ikconstraintBend = new IKConstraintBend();
this.bendConstraint = ikconstraintBend;
base..ctor();
}
// Token: 0x06002563 RID: 9571 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002563")]
[Address(RVA = "0x4BB570", Offset = "0x4BA370", VA = "0x1804BB570")]
public FBIKChain(float pin, float pull, params Transform[] nodeTransforms)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002564 RID: 9572 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002564")]
[Address(RVA = "0x4B9FB0", Offset = "0x4B8DB0", VA = "0x1804B9FB0")]
public void SetNodes(params Transform[] boneTransforms)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002565 RID: 9573 RVA: 0x0005498C File Offset: 0x00052B8C
[Token(Token = "0x6002565")]
[Address(RVA = "0x4B8D10", Offset = "0x4B7B10", VA = "0x1804B8D10")]
public int GetNodeIndex(Transform boneTransform)
{
IKSolver.Node[] array = this.nodes;
int num = 0;
if (num < array.Length)
{
if (!(array[num].transform == boneTransform))
{
IKSolver.Node[] array2 = this.nodes;
num++;
}
return num;
}
throw new NullReferenceException();
}
// Token: 0x06002566 RID: 9574 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002566")]
[Address(RVA = "0x4B8FD0", Offset = "0x4B7DD0", VA = "0x1804B8FD0")]
public bool IsValid(ref string message)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002567 RID: 9575 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002567")]
[Address(RVA = "0x4B8E00", Offset = "0x4B7C00", VA = "0x1804B8E00")]
public void Initiate(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002568 RID: 9576 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002568")]
[Address(RVA = "0x4B9980", Offset = "0x4B8780", VA = "0x1804B9980")]
public void ReadPose(IKSolverFullBody solver, bool fullBody)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002569 RID: 9577 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002569")]
[Address(RVA = "0x4B81C0", Offset = "0x4B6FC0", VA = "0x1804B81C0")]
private void CalculateBoneLengths(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600256A RID: 9578 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600256A")]
[Address(RVA = "0x4B9560", Offset = "0x4B8360", VA = "0x1804B9560")]
public void Reach(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600256B RID: 9579 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600256B")]
[Address(RVA = "0x4B9100", Offset = "0x4B7F00", VA = "0x1804B9100")]
public Vector3 Push(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600256C RID: 9580 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600256C")]
[Address(RVA = "0x4BA7E0", Offset = "0x4B95E0", VA = "0x1804BA7E0")]
public void SolveTrigonometric(IKSolverFullBody solver, bool calculateBendDirection = false)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600256D RID: 9581 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600256D")]
[Address(RVA = "0x4BAD10", Offset = "0x4B9B10", VA = "0x1804BAD10")]
public void Stage1(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600256E RID: 9582 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600256E")]
[Address(RVA = "0x4BB2E0", Offset = "0x4BA0E0", VA = "0x1804BB2E0")]
public void Stage2(IKSolverFullBody solver, Vector3 position)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600256F RID: 9583 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600256F")]
[Address(RVA = "0x4BA1A0", Offset = "0x4B8FA0", VA = "0x1804BA1A0")]
public void SolveConstraintSystems(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002570 RID: 9584 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002570")]
[Address(RVA = "0x4BA4D0", Offset = "0x4B92D0", VA = "0x1804BA4D0")]
private Vector3 SolveFABRIKJoint(Vector3 pos1, Vector3 pos2, float length)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002571 RID: 9585 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002571")]
[Address(RVA = "0x4B8B40", Offset = "0x4B7940", VA = "0x1804B8B40")]
protected Vector3 GetDirToBendPoint(Vector3 direction, Vector3 bendDirection, float directionMagnitude)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002572 RID: 9586 RVA: 0x000549D4 File Offset: 0x00052BD4
[Token(Token = "0x6002572")]
[Address(RVA = "0x4BA110", Offset = "0x4B8F10", VA = "0x1804BA110")]
private void SolveChildConstraints(IKSolverFullBody solver)
{
FBIKChain.ChildConstraint[] array = this.childConstraints;
int num = 0;
if (num < array.Length)
{
array[num].Solve(solver);
FBIKChain.ChildConstraint[] array2 = this.childConstraints;
num++;
}
}
// Token: 0x06002573 RID: 9587 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002573")]
[Address(RVA = "0x4BA5F0", Offset = "0x4B93F0", VA = "0x1804BA5F0")]
private void SolveLinearConstraint(IKSolver.Node node1, IKSolver.Node node2, float crossFade, float distance)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002574 RID: 9588 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002574")]
[Address(RVA = "0x4B8960", Offset = "0x4B7760", VA = "0x1804B8960")]
public void ForwardReach(Vector3 position)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002575 RID: 9589 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002575")]
[Address(RVA = "0x4B7EC0", Offset = "0x4B6CC0", VA = "0x1804B7EC0")]
private void BackwardReach(Vector3 position)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04002EFB RID: 12027
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002EFB")]
[Range(0f, 1f)]
public float pin;
// Token: 0x04002EFC RID: 12028
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4002EFC")]
[Range(0f, 1f)]
public float pull;
// Token: 0x04002EFD RID: 12029
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002EFD")]
[Range(0f, 1f)]
public float push;
// Token: 0x04002EFE RID: 12030
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4002EFE")]
[Range(-1f, 1f)]
public float pushParent;
// Token: 0x04002EFF RID: 12031
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002EFF")]
[Range(0f, 1f)]
public float reach;
// Token: 0x04002F00 RID: 12032
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x4002F00")]
public FBIKChain.Smoothing reachSmoothing;
// Token: 0x04002F01 RID: 12033
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4002F01")]
public FBIKChain.Smoothing pushSmoothing;
// Token: 0x04002F02 RID: 12034
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4002F02")]
public IKSolver.Node[] nodes;
// Token: 0x04002F03 RID: 12035
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002F03")]
public int[] children;
// Token: 0x04002F04 RID: 12036
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4002F04")]
public FBIKChain.ChildConstraint[] childConstraints;
// Token: 0x04002F05 RID: 12037
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4002F05")]
public IKConstraintBend bendConstraint;
// Token: 0x04002F06 RID: 12038
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4002F06")]
private float rootLength;
// Token: 0x04002F07 RID: 12039
[FieldOffset(Offset = "0x54")]
[Token(Token = "0x4002F07")]
private bool initiated;
// Token: 0x04002F08 RID: 12040
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4002F08")]
private float length;
// Token: 0x04002F09 RID: 12041
[FieldOffset(Offset = "0x5C")]
[Token(Token = "0x4002F09")]
private float distance;
// Token: 0x04002F0A RID: 12042
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002F0A")]
private IKSolver.Point p;
// Token: 0x04002F0B RID: 12043
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4002F0B")]
private float reachForce;
// Token: 0x04002F0C RID: 12044
[FieldOffset(Offset = "0x6C")]
[Token(Token = "0x4002F0C")]
private float pullParentSum;
// Token: 0x04002F0D RID: 12045
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4002F0D")]
private float[] crossFades;
// Token: 0x04002F0E RID: 12046
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4002F0E")]
private float sqrMag1;
// Token: 0x04002F0F RID: 12047
[FieldOffset(Offset = "0x7C")]
[Token(Token = "0x4002F0F")]
private float sqrMag2;
// Token: 0x04002F10 RID: 12048
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x4002F10")]
private float sqrMagDif;
// Token: 0x04002F11 RID: 12049
[Token(Token = "0x4002F11")]
private const float maxLimbLength = 0.99999f;
// Token: 0x02000418 RID: 1048
[Token(Token = "0x2000418")]
[Serializable]
public class ChildConstraint
{
// Token: 0x1700022A RID: 554
// (get) Token: 0x06002576 RID: 9590 RVA: 0x00054A14 File Offset: 0x00052C14
// (set) Token: 0x06002577 RID: 9591 RVA: 0x00054A28 File Offset: 0x00052C28
[Token(Token = "0x1700022A")]
public float nominalDistance
{
[Token(Token = "0x6002576")]
[Address(RVA = "0x5F9910", Offset = "0x5F8710", VA = "0x1805F9910")]
get;
[Token(Token = "0x6002577")]
[Address(RVA = "0x5F9930", Offset = "0x5F8730", VA = "0x1805F9930")]
private set;
}
// Token: 0x1700022B RID: 555
// (get) Token: 0x06002578 RID: 9592 RVA: 0x00054A3C File Offset: 0x00052C3C
// (set) Token: 0x06002579 RID: 9593 RVA: 0x00054A50 File Offset: 0x00052C50
[Token(Token = "0x1700022B")]
public bool isRigid
{
[Token(Token = "0x6002578")]
[Address(RVA = "0x468150", Offset = "0x466F50", VA = "0x180468150")]
get;
[Token(Token = "0x6002579")]
[Address(RVA = "0x5F9920", Offset = "0x5F8720", VA = "0x1805F9920")]
private set;
}
// Token: 0x0600257A RID: 9594 RVA: 0x00054A64 File Offset: 0x00052C64
[Token(Token = "0x600257A")]
[Address(RVA = "0x5F98A0", Offset = "0x5F86A0", VA = "0x1805F98A0")]
public ChildConstraint(Transform bone1, Transform bone2, float pushElasticity = 0f, float pullElasticity = 0f)
{
this.bone1 = bone1;
this.bone2 = bone2;
this.pushElasticity = pushElasticity;
this.pullElasticity = (float)0;
}
// Token: 0x0600257B RID: 9595 RVA: 0x00054A94 File Offset: 0x00052C94
[Token(Token = "0x600257B")]
[Address(RVA = "0x5F9240", Offset = "0x5F8040", VA = "0x1805F9240")]
public void Initiate(IKSolverFullBody solver)
{
Transform transform = this.bone1;
int chainIndex = solver.GetChainIndex(transform);
Transform transform2 = this.bone2;
this.chain1Index = chainIndex;
int chainIndex2 = solver.GetChainIndex(transform2);
this.chain2Index = chainIndex2;
this.OnPreSolve(solver);
}
// Token: 0x0600257C RID: 9596 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600257C")]
[Address(RVA = "0x5F92A0", Offset = "0x5F80A0", VA = "0x1805F92A0")]
public void OnPreSolve(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600257D RID: 9597 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600257D")]
[Address(RVA = "0x5F94E0", Offset = "0x5F82E0", VA = "0x1805F94E0")]
public void Solve(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04002F12 RID: 12050
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002F12")]
public float pushElasticity;
// Token: 0x04002F13 RID: 12051
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4002F13")]
public float pullElasticity;
// Token: 0x04002F14 RID: 12052
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002F14")]
[SerializeField]
private Transform bone1;
// Token: 0x04002F15 RID: 12053
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002F15")]
[SerializeField]
private Transform bone2;
// Token: 0x04002F18 RID: 12056
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4002F18")]
private float crossFade;
// Token: 0x04002F19 RID: 12057
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x4002F19")]
private float inverseCrossFade;
// Token: 0x04002F1A RID: 12058
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002F1A")]
private int chain1Index;
// Token: 0x04002F1B RID: 12059
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x4002F1B")]
private int chain2Index;
}
// Token: 0x02000419 RID: 1049
[Token(Token = "0x2000419")]
[Serializable]
public enum Smoothing
{
// Token: 0x04002F1D RID: 12061
[Token(Token = "0x4002F1D")]
None,
// Token: 0x04002F1E RID: 12062
[Token(Token = "0x4002F1E")]
Exponential,
// Token: 0x04002F1F RID: 12063
[Token(Token = "0x4002F1F")]
Cubic
}
}
}

View File

@@ -0,0 +1,164 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x020003F8 RID: 1016
[Token(Token = "0x20003F8")]
[Serializable]
public class Finger
{
// Token: 0x17000210 RID: 528
// (get) Token: 0x06002451 RID: 9297 RVA: 0x00052EFC File Offset: 0x000510FC
// (set) Token: 0x06002452 RID: 9298 RVA: 0x00052F10 File Offset: 0x00051110
[Token(Token = "0x17000210")]
public bool initiated
{
[Token(Token = "0x6002451")]
[Address(RVA = "0x4C04C0", Offset = "0x4BF2C0", VA = "0x1804C04C0")]
get;
[Token(Token = "0x6002452")]
[Address(RVA = "0x4C0520", Offset = "0x4BF320", VA = "0x1804C0520")]
private set;
}
// Token: 0x17000211 RID: 529
// (get) Token: 0x06002453 RID: 9299 RVA: 0x000020D3 File Offset: 0x000002D3
// (set) Token: 0x06002454 RID: 9300 RVA: 0x00052F24 File Offset: 0x00051124
[Token(Token = "0x17000211")]
public Vector3 IKPosition
{
[Token(Token = "0x6002453")]
[Address(RVA = "0x4C0460", Offset = "0x4BF260", VA = "0x1804C0460")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
[Token(Token = "0x6002454")]
[Address(RVA = "0x4C04D0", Offset = "0x4BF2D0", VA = "0x1804C04D0")]
set
{
IKSolverLimb iksolverLimb = this.solver;
float z = value.z;
iksolverLimb.IKPosition.z = z;
}
}
// Token: 0x17000212 RID: 530
// (get) Token: 0x06002455 RID: 9301 RVA: 0x000020D3 File Offset: 0x000002D3
// (set) Token: 0x06002456 RID: 9302 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000212")]
public Quaternion IKRotation
{
[Token(Token = "0x6002455")]
[Address(RVA = "0x4C0490", Offset = "0x4BF290", VA = "0x1804C0490")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
[Token(Token = "0x6002456")]
[Address(RVA = "0x4C0500", Offset = "0x4BF300", VA = "0x1804C0500")]
set
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x06002457 RID: 9303 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002457")]
[Address(RVA = "0x4C00C0", Offset = "0x4BEEC0", VA = "0x1804C00C0")]
public bool IsValid(ref string errorMessage)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002458 RID: 9304 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002458")]
[Address(RVA = "0x4BFDE0", Offset = "0x4BEBE0", VA = "0x1804BFDE0")]
public void Initiate(Transform hand, int index)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002459 RID: 9305 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002459")]
[Address(RVA = "0x4BFD00", Offset = "0x4BEB00", VA = "0x1804BFD00")]
public void FixTransforms()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600245A RID: 9306 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600245A")]
[Address(RVA = "0x4C01E0", Offset = "0x4BEFE0", VA = "0x1804C01E0")]
public void Update(float masterWeight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600245B RID: 9307 RVA: 0x00052F54 File Offset: 0x00051154
[Token(Token = "0x600245B")]
[Address(RVA = "0x4C0450", Offset = "0x4BF250", VA = "0x1804C0450")]
public Finger()
{
}
// Token: 0x04002E13 RID: 11795
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002E13")]
[Tooltip("Master Weight for the finger.")]
[Range(0f, 1f)]
public float weight = 1f;
// Token: 0x04002E14 RID: 11796
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002E14")]
[Tooltip("The first bone of the finger.")]
public Transform bone1;
// Token: 0x04002E15 RID: 11797
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002E15")]
[Tooltip("The second bone of the finger.")]
public Transform bone2;
// Token: 0x04002E16 RID: 11798
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4002E16")]
[Tooltip("The (optional) third bone of the finger. This can be ignored for thumbs.")]
public Transform bone3;
// Token: 0x04002E17 RID: 11799
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4002E17")]
[Tooltip("The fingertip object. If your character doesn't have tip bones, you can create an empty GameObject and parent it to the last bone in the finger. Place it to the tip of the finger.")]
public Transform tip;
// Token: 0x04002E18 RID: 11800
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002E18")]
[Tooltip("The IK target (optional, can use IKPosition and IKRotation directly).")]
public Transform target;
// Token: 0x04002E1A RID: 11802
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4002E1A")]
private IKSolverLimb solver;
// Token: 0x04002E1B RID: 11803
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4002E1B")]
private Quaternion bone3RelativeToTarget;
// Token: 0x04002E1C RID: 11804
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002E1C")]
private Vector3 bone3DefaultLocalPosition;
// Token: 0x04002E1D RID: 11805
[FieldOffset(Offset = "0x6C")]
[Token(Token = "0x4002E1D")]
private Quaternion bone3DefaultLocalRotation;
}
}

View File

@@ -0,0 +1,166 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x020003F9 RID: 1017
[Token(Token = "0x20003F9")]
public class FingerRig : SolverManager
{
// Token: 0x17000213 RID: 531
// (get) Token: 0x0600245C RID: 9308 RVA: 0x00052F74 File Offset: 0x00051174
// (set) Token: 0x0600245D RID: 9309 RVA: 0x00052F88 File Offset: 0x00051188
[Token(Token = "0x17000213")]
public bool initiated
{
[Token(Token = "0x600245C")]
[Address(RVA = "0x4BFCE0", Offset = "0x4BEAE0", VA = "0x1804BFCE0")]
get;
[Token(Token = "0x600245D")]
[Address(RVA = "0x4BFCF0", Offset = "0x4BEAF0", VA = "0x1804BFCF0")]
private set;
}
// Token: 0x0600245E RID: 9310 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600245E")]
[Address(RVA = "0x4BF9B0", Offset = "0x4BE7B0", VA = "0x1804BF9B0")]
public bool IsValid(ref string errorMessage)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600245F RID: 9311 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600245F")]
[Address(RVA = "0x4BF420", Offset = "0x4BE220", VA = "0x1804BF420")]
[ContextMenu("Auto-detect")]
public void AutoDetect()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002460 RID: 9312 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002460")]
[Address(RVA = "0x4BF250", Offset = "0x4BE050", VA = "0x1804BF250")]
public void AddFinger(Transform bone1, Transform bone2, Transform bone3, Transform tip, [Optional] Transform target)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002461 RID: 9313 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002461")]
[Address(RVA = "0x4BFA40", Offset = "0x4BE840", VA = "0x1804BFA40")]
public void RemoveFinger(int index)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002462 RID: 9314 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002462")]
[Address(RVA = "0x4BF150", Offset = "0x4BDF50", VA = "0x1804BF150")]
private void AddChildrenRecursive(Transform parent, ref Transform[] array)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002463 RID: 9315 RVA: 0x00052F9C File Offset: 0x0005119C
[Token(Token = "0x6002463")]
[Address(RVA = "0x4BF8E0", Offset = "0x4BE6E0", VA = "0x1804BF8E0", Slot = "4")]
protected override void InitiateSolver()
{
Finger[] array = this.fingers;
int num = 0;
this.<initiated>k__BackingField = true;
if (num < array.Length)
{
Finger finger = array[num];
Transform transform = base.transform;
finger.Initiate(transform, num);
if (!this.fingers[num].<initiated>k__BackingField)
{
this.<initiated>k__BackingField = false;
}
num++;
}
}
// Token: 0x06002464 RID: 9316 RVA: 0x00053000 File Offset: 0x00051200
[Token(Token = "0x6002464")]
[Address(RVA = "0x4BFBF0", Offset = "0x4BE9F0", VA = "0x1804BFBF0")]
public void UpdateFingerSolvers()
{
if (0 < (int)this.weight)
{
Finger[] array = this.fingers;
int num = 0;
int length = array.Length;
if (num < length)
{
Finger finger = array[num];
float num2 = this.weight;
finger.Update(num2);
num++;
}
}
}
// Token: 0x06002465 RID: 9317 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002465")]
[Address(RVA = "0x4BF7A0", Offset = "0x4BE5A0", VA = "0x1804BF7A0")]
public void FixFingerTransforms()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002466 RID: 9318 RVA: 0x0005304C File Offset: 0x0005124C
[Token(Token = "0x6002466")]
[Address(RVA = "0x4BFBF0", Offset = "0x4BE9F0", VA = "0x1804BFBF0", Slot = "5")]
protected override void UpdateSolver()
{
if (0 < (int)this.weight)
{
Finger[] array = this.fingers;
int num = 0;
int length = array.Length;
if (num < length)
{
Finger finger = array[num];
float num2 = this.weight;
finger.Update(num2);
num++;
}
}
}
// Token: 0x06002467 RID: 9319 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002467")]
[Address(RVA = "0x4BF7A0", Offset = "0x4BE5A0", VA = "0x1804BF7A0", Slot = "6")]
protected override void FixTransforms()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002468 RID: 9320 RVA: 0x00053098 File Offset: 0x00051298
[Token(Token = "0x6002468")]
[Address(RVA = "0x4BFC80", Offset = "0x4BEA80", VA = "0x1804BFC80")]
public FingerRig()
{
Finger[] array = new Finger[0];
this.fingers = array;
base..ctor();
}
// Token: 0x04002E1E RID: 11806
[Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002E1E")]
[Range(0f, 1f)]
[Tooltip("The master weight for all fingers.")]
public float weight = 1f;
// Token: 0x04002E1F RID: 11807
[Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4002E1F")]
public Finger[] fingers;
}
}

View File

@@ -0,0 +1,24 @@
using System;
using Cpp2IlInjected;
namespace RootMotion.FinalIK
{
// Token: 0x0200042E RID: 1070
[Token(Token = "0x200042E")]
[Serializable]
public enum FullBodyBipedChain
{
// Token: 0x04002FD0 RID: 12240
[Token(Token = "0x4002FD0")]
LeftArm,
// Token: 0x04002FD1 RID: 12241
[Token(Token = "0x4002FD1")]
RightArm,
// Token: 0x04002FD2 RID: 12242
[Token(Token = "0x4002FD2")]
LeftLeg,
// Token: 0x04002FD3 RID: 12243
[Token(Token = "0x4002FD3")]
RightLeg
}
}

View File

@@ -0,0 +1,39 @@
using System;
using Cpp2IlInjected;
namespace RootMotion.FinalIK
{
// Token: 0x0200042D RID: 1069
[Token(Token = "0x200042D")]
[Serializable]
public enum FullBodyBipedEffector
{
// Token: 0x04002FC6 RID: 12230
[Token(Token = "0x4002FC6")]
Body,
// Token: 0x04002FC7 RID: 12231
[Token(Token = "0x4002FC7")]
LeftShoulder,
// Token: 0x04002FC8 RID: 12232
[Token(Token = "0x4002FC8")]
RightShoulder,
// Token: 0x04002FC9 RID: 12233
[Token(Token = "0x4002FC9")]
LeftThigh,
// Token: 0x04002FCA RID: 12234
[Token(Token = "0x4002FCA")]
RightThigh,
// Token: 0x04002FCB RID: 12235
[Token(Token = "0x4002FCB")]
LeftHand,
// Token: 0x04002FCC RID: 12236
[Token(Token = "0x4002FCC")]
RightHand,
// Token: 0x04002FCD RID: 12237
[Token(Token = "0x4002FCD")]
LeftFoot,
// Token: 0x04002FCE RID: 12238
[Token(Token = "0x4002FCE")]
RightFoot
}
}

View File

@@ -0,0 +1,142 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200040A RID: 1034
[Token(Token = "0x200040A")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/IK/Full Body Biped IK")]
[HelpURL("https://www.youtube.com/watch?v=7__IafZGwvI&index=1&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6")]
public class FullBodyBipedIK : IK
{
// Token: 0x06002506 RID: 9478 RVA: 0x00053CD4 File Offset: 0x00051ED4
[Token(Token = "0x6002506")]
[Address(RVA = "0x4C6910", Offset = "0x4C5710", VA = "0x1804C6910", Slot = "8")]
[ContextMenu("User Manual")]
protected override void OpenUserManual()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/page6.html");
}
// Token: 0x06002507 RID: 9479 RVA: 0x00053CEC File Offset: 0x00051EEC
[Token(Token = "0x6002507")]
[Address(RVA = "0x4C6890", Offset = "0x4C5690", VA = "0x1804C6890", Slot = "9")]
[ContextMenu("Scrpt Reference")]
protected override void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_full_body_biped_i_k.html");
}
// Token: 0x06002508 RID: 9480 RVA: 0x00053D04 File Offset: 0x00051F04
[Token(Token = "0x6002508")]
[Address(RVA = "0x4C68D0", Offset = "0x4C56D0", VA = "0x1804C68D0")]
[ContextMenu("TUTORIAL VIDEO (SETUP)")]
private void OpenSetupTutorial()
{
Application.OpenURL("https://www.youtube.com/watch?v=7__IafZGwvI");
}
// Token: 0x06002509 RID: 9481 RVA: 0x00053D1C File Offset: 0x00051F1C
[Token(Token = "0x6002509")]
[Address(RVA = "0x4C6850", Offset = "0x4C5650", VA = "0x1804C6850")]
[ContextMenu("TUTORIAL VIDEO (INSPECTOR)")]
private void OpenInspectorTutorial()
{
Application.OpenURL("https://www.youtube.com/watch?v=tgRMsTphjJo");
}
// Token: 0x0600250A RID: 9482 RVA: 0x00053D34 File Offset: 0x00051F34
[Token(Token = "0x600250A")]
[Address(RVA = "0x4C70C0", Offset = "0x4C5EC0", VA = "0x1804C70C0")]
[ContextMenu("Support Group")]
private void SupportGroup()
{
Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
}
// Token: 0x0600250B RID: 9483 RVA: 0x00053D4C File Offset: 0x00051F4C
[Token(Token = "0x600250B")]
[Address(RVA = "0x4C6720", Offset = "0x4C5520", VA = "0x1804C6720")]
[ContextMenu("Asset Store Thread")]
private void ASThread()
{
Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
}
// Token: 0x0600250C RID: 9484 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600250C")]
[Address(RVA = "0x4C7070", Offset = "0x4C5E70", VA = "0x1804C7070")]
public void SetReferences(BipedReferences references, Transform rootNode)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600250D RID: 9485 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600250D")]
[Address(RVA = "0x31E390", Offset = "0x31D190", VA = "0x18031E390", Slot = "7")]
public override IKSolver GetIKSolver()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600250E RID: 9486 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600250E")]
[Address(RVA = "0x4C6950", Offset = "0x4C5750", VA = "0x1804C6950")]
public bool ReferencesError(ref string errorMessage)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600250F RID: 9487 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600250F")]
[Address(RVA = "0x4C6BE0", Offset = "0x4C59E0", VA = "0x1804C6BE0")]
public bool ReferencesWarning(ref string warningMessage)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002510 RID: 9488 RVA: 0x00053D64 File Offset: 0x00051F64
[Token(Token = "0x6002510")]
[Address(RVA = "0x4C7010", Offset = "0x4C5E10", VA = "0x1804C7010")]
[ContextMenu("Reinitiate")]
private void Reinitiate()
{
Transform rootNode = this.solver.rootNode;
IKSolverFullBodyBiped iksolverFullBodyBiped = this.solver;
BipedReferences bipedReferences = this.references;
iksolverFullBodyBiped.SetToReferences(bipedReferences, rootNode);
}
// Token: 0x06002511 RID: 9489 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002511")]
[Address(RVA = "0x4C6760", Offset = "0x4C5560", VA = "0x1804C6760")]
[ContextMenu("Auto-detect References")]
private void AutoDetectReferences()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002512 RID: 9490 RVA: 0x00053D9C File Offset: 0x00051F9C
[Token(Token = "0x6002512")]
[Address(RVA = "0x4C7100", Offset = "0x4C5F00", VA = "0x1804C7100")]
public FullBodyBipedIK()
{
BipedReferences bipedReferences = new BipedReferences();
this.references = bipedReferences;
IKSolverFullBodyBiped iksolverFullBodyBiped = new IKSolverFullBodyBiped();
this.solver = iksolverFullBodyBiped;
base..ctor();
}
// Token: 0x04002E9D RID: 11933
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002E9D")]
public BipedReferences references;
// Token: 0x04002E9E RID: 11934
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4002E9E")]
public IKSolverFullBodyBiped solver;
}
}

View File

@@ -0,0 +1,144 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000458 RID: 1112
[Token(Token = "0x2000458")]
public class GenericPoser : Poser
{
// Token: 0x06002815 RID: 10261 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002815")]
[Address(RVA = "0x54E450", Offset = "0x54D250", VA = "0x18054E450", Slot = "7")]
[ContextMenu("Auto-Mapping")]
public override void AutoMapping()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002816 RID: 10262 RVA: 0x00058BC8 File Offset: 0x00056DC8
[Token(Token = "0x6002816")]
[Address(RVA = "0x54E8A0", Offset = "0x54D6A0", VA = "0x18054E8A0", Slot = "8")]
protected override void InitiatePoser()
{
this.StoreDefaultState();
}
// Token: 0x06002817 RID: 10263 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002817")]
[Address(RVA = "0x54E930", Offset = "0x54D730", VA = "0x18054E930", Slot = "9")]
protected override void UpdatePoser()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002818 RID: 10264 RVA: 0x00058BDC File Offset: 0x00056DDC
[Token(Token = "0x6002818")]
[Address(RVA = "0x54E770", Offset = "0x54D570", VA = "0x18054E770", Slot = "10")]
protected override void FixPoserTransforms()
{
GenericPoser.Map[] array = this.maps;
int num = 0;
if (num < array.Length)
{
array[num].FixTransform();
GenericPoser.Map[] array2 = this.maps;
num++;
}
}
// Token: 0x06002819 RID: 10265 RVA: 0x00058C18 File Offset: 0x00056E18
[Token(Token = "0x6002819")]
[Address(RVA = "0x54E8B0", Offset = "0x54D6B0", VA = "0x18054E8B0")]
private void StoreDefaultState()
{
GenericPoser.Map[] array = this.maps;
int num = 0;
if (num < array.Length)
{
array[num].StoreDefaultState();
GenericPoser.Map[] array2 = this.maps;
num++;
}
}
// Token: 0x0600281A RID: 10266 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600281A")]
[Address(RVA = "0x54E7F0", Offset = "0x54D5F0", VA = "0x18054E7F0")]
private Transform GetTargetNamed(string tName, Transform[] array)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600281B RID: 10267 RVA: 0x00058C54 File Offset: 0x00056E54
[Token(Token = "0x600281B")]
[Address(RVA = "0x54EA40", Offset = "0x54D840", VA = "0x18054EA40")]
public GenericPoser()
{
}
// Token: 0x0400317B RID: 12667
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x400317B")]
public GenericPoser.Map[] maps;
// Token: 0x02000459 RID: 1113
[Token(Token = "0x2000459")]
[Serializable]
public class Map
{
// Token: 0x0600281C RID: 10268 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600281C")]
[Address(RVA = "0x5FCCE0", Offset = "0x5FBAE0", VA = "0x1805FCCE0")]
public Map(Transform bone, Transform target)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600281D RID: 10269 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600281D")]
[Address(RVA = "0x5FCAF0", Offset = "0x5FB8F0", VA = "0x1805FCAF0")]
public void StoreDefaultState()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600281E RID: 10270 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600281E")]
[Address(RVA = "0x5FCA90", Offset = "0x5FB890", VA = "0x1805FCA90")]
public void FixTransform()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600281F RID: 10271 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600281F")]
[Address(RVA = "0x5FCB50", Offset = "0x5FB950", VA = "0x1805FCB50")]
public void Update(float localRotationWeight, float localPositionWeight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0400317C RID: 12668
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400317C")]
public Transform bone;
// Token: 0x0400317D RID: 12669
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400317D")]
public Transform target;
// Token: 0x0400317E RID: 12670
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400317E")]
private Vector3 defaultLocalPosition;
// Token: 0x0400317F RID: 12671
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x400317F")]
private Quaternion defaultLocalRotation;
}
}
}

View File

@@ -0,0 +1,145 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x020003FA RID: 1018
[Token(Token = "0x20003FA")]
public abstract class Grounder : MonoBehaviour
{
// Token: 0x06002469 RID: 9321
[Token(Token = "0x6002469")]
[Address(Slot = "4")]
public abstract void ResetPosition();
// Token: 0x0600246A RID: 9322 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600246A")]
[Address(RVA = "0x117A510", Offset = "0x1179310", VA = "0x18117A510")]
protected Vector3 GetSpineOffsetTarget()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600246B RID: 9323 RVA: 0x000530C4 File Offset: 0x000512C4
[Token(Token = "0x600246B")]
[Address(RVA = "0x8D5970", Offset = "0x8D4770", VA = "0x1808D5970")]
protected void LogWarning(string message)
{
Transform transform = base.transform;
int num = 0;
Warning.Log(message, transform, num != 0);
}
// Token: 0x0600246C RID: 9324 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600246C")]
[Address(RVA = "0x1179FE0", Offset = "0x1178DE0", VA = "0x181179FE0")]
private Vector3 GetLegSpineBendVector(Grounding.Leg leg)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600246D RID: 9325 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600246D")]
[Address(RVA = "0x117A330", Offset = "0x1179130", VA = "0x18117A330")]
private Vector3 GetLegSpineTangent(Grounding.Leg leg)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600246E RID: 9326
[Token(Token = "0x600246E")]
[Address(Slot = "5")]
protected abstract void OpenUserManual();
// Token: 0x0600246F RID: 9327
[Token(Token = "0x600246F")]
[Address(Slot = "6")]
protected abstract void OpenScriptReference();
// Token: 0x06002470 RID: 9328 RVA: 0x000530E4 File Offset: 0x000512E4
[Token(Token = "0x6002470")]
[Address(RVA = "0x117A650", Offset = "0x1179450", VA = "0x18117A650")]
protected Grounder()
{
}
// Token: 0x04002E21 RID: 11809
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002E21")]
[Tooltip("The master weight. Use this to fade in/out the grounding effect.")]
[Range(0f, 1f)]
public float weight = 1f;
// Token: 0x04002E22 RID: 11810
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002E22")]
[Tooltip("The Grounding solver. Not to confuse with IK solvers.")]
public Grounding solver = new Grounding
{
maxStep = 0.5f,
footSpeed = 2.5f,
footRadius = 0.15f,
prediction = 0.05f,
footRotationWeight = 1f,
footRotationSpeed = 7f,
maxFootRotationAngle = 45f,
pelvisSpeed = 5f,
lowerPelvisWeight = 1f,
rootSphereCastRadius = 0.1f,
quality = (Grounding.Quality)((ulong)2L)
};
// Token: 0x04002E23 RID: 11811
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4002E23")]
public Grounder.GrounderDelegate OnPreGrounder;
// Token: 0x04002E24 RID: 11812
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4002E24")]
public Grounder.GrounderDelegate OnPostGrounder;
// Token: 0x04002E25 RID: 11813
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002E25")]
protected bool initiated;
// Token: 0x020003FB RID: 1019
[Token(Token = "0x20003FB")]
public sealed class GrounderDelegate : MulticastDelegate
{
// Token: 0x06002471 RID: 9329 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002471")]
[Address(RVA = "0x44EA10", Offset = "0x44D810", VA = "0x18044EA10")]
public GrounderDelegate(object @object, IntPtr method)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002472 RID: 9330 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002472")]
[Address(RVA = "0x5FA210", Offset = "0x5F9010", VA = "0x1805FA210", Slot = "12")]
public void Invoke()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002473 RID: 9331 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002473")]
[Address(RVA = "0x5FA1E0", Offset = "0x5F8FE0", VA = "0x1805FA1E0", Slot = "13")]
public IAsyncResult BeginInvoke(AsyncCallback callback, object @object)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002474 RID: 9332 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002474")]
[Address(RVA = "0x44E730", Offset = "0x44D530", VA = "0x18044E730", Slot = "14")]
public void EndInvoke(IAsyncResult result)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
}
}

View File

@@ -0,0 +1,165 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x020003FC RID: 1020
[Token(Token = "0x20003FC")]
[HelpURL("http://www.root-motion.com/finalikdox/html/page11.html")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/Grounder/Grounder Biped")]
public class GrounderBipedIK : Grounder
{
// Token: 0x06002475 RID: 9333 RVA: 0x00053188 File Offset: 0x00051388
[Token(Token = "0x6002475")]
[Address(RVA = "0x1174A10", Offset = "0x1173810", VA = "0x181174A10", Slot = "5")]
[ContextMenu("User Manual")]
protected override void OpenUserManual()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/page11.html");
}
// Token: 0x06002476 RID: 9334 RVA: 0x000531A0 File Offset: 0x000513A0
[Token(Token = "0x6002476")]
[Address(RVA = "0x11749D0", Offset = "0x11737D0", VA = "0x1811749D0", Slot = "6")]
[ContextMenu("Scrpt Reference")]
protected override void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_grounder_biped_i_k.html");
}
// Token: 0x06002477 RID: 9335 RVA: 0x000531B8 File Offset: 0x000513B8
[Token(Token = "0x6002477")]
[Address(RVA = "0x1174A50", Offset = "0x1173850", VA = "0x181174A50", Slot = "4")]
public override void ResetPosition()
{
this.solver.Reset();
float z = Vector3.zero.z;
this.spineOffset.z = z;
}
// Token: 0x06002478 RID: 9336 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002478")]
[Address(RVA = "0x1173DF0", Offset = "0x1172BF0", VA = "0x181173DF0")]
private bool IsReadyToInitiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002479 RID: 9337 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002479")]
[Address(RVA = "0x1174BB0", Offset = "0x11739B0", VA = "0x181174BB0")]
private void Update()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600247A RID: 9338 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600247A")]
[Address(RVA = "0x1173A20", Offset = "0x1172820", VA = "0x181173A20")]
private void Initiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600247B RID: 9339 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600247B")]
[Address(RVA = "0x1174080", Offset = "0x1172E80", VA = "0x181174080")]
private void OnDisable()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600247C RID: 9340 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600247C")]
[Address(RVA = "0x11742F0", Offset = "0x11730F0", VA = "0x1811742F0")]
private void OnSolverUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600247D RID: 9341 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600247D")]
[Address(RVA = "0x1174AA0", Offset = "0x11738A0", VA = "0x181174AA0")]
private void SetLegIK(IKSolverLimb limb, int index)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600247E RID: 9342 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600247E")]
[Address(RVA = "0x11740E0", Offset = "0x1172EE0", VA = "0x1811740E0")]
private void OnPostSolverUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600247F RID: 9343 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600247F")]
[Address(RVA = "0x1173EA0", Offset = "0x1172CA0", VA = "0x181173EA0")]
private void OnDestroy()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002480 RID: 9344 RVA: 0x000531F0 File Offset: 0x000513F0
[Token(Token = "0x6002480")]
[Address(RVA = "0x1174CA0", Offset = "0x1173AA0", VA = "0x181174CA0")]
public GrounderBipedIK()
{
Transform[] array = new Transform[2];
this.feet = array;
Quaternion[] array2 = new Quaternion[2];
this.footRotations = array2;
base..ctor();
}
// Token: 0x04002E26 RID: 11814
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4002E26")]
[Tooltip("The BipedIK componet.")]
public BipedIK ik;
// Token: 0x04002E27 RID: 11815
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4002E27")]
[Tooltip("The amount of spine bending towards upward slopes.")]
public float spineBend = 7f;
// Token: 0x04002E28 RID: 11816
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x4002E28")]
[Tooltip("The interpolation speed of spine bending.")]
public float spineSpeed = 3f;
// Token: 0x04002E29 RID: 11817
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4002E29")]
private Transform[] feet;
// Token: 0x04002E2A RID: 11818
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4002E2A")]
private Quaternion[] footRotations;
// Token: 0x04002E2B RID: 11819
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002E2B")]
private Vector3 animatedPelvisLocalPosition;
// Token: 0x04002E2C RID: 11820
[FieldOffset(Offset = "0x6C")]
[Token(Token = "0x4002E2C")]
private Vector3 solvedPelvisLocalPosition;
// Token: 0x04002E2D RID: 11821
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4002E2D")]
private Vector3 spineOffset;
// Token: 0x04002E2E RID: 11822
[FieldOffset(Offset = "0x84")]
[Token(Token = "0x4002E2E")]
private float lastWeight;
}
}

View File

@@ -0,0 +1,260 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x020003FD RID: 1021
[Token(Token = "0x20003FD")]
[HelpURL("https://www.youtube.com/watch?v=9MiZiaJorws&index=6&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/Grounder/Grounder Full Body Biped")]
public class GrounderFBBIK : Grounder
{
// Token: 0x06002481 RID: 9345 RVA: 0x00053238 File Offset: 0x00051438
[Token(Token = "0x6002481")]
[Address(RVA = "0x1175AA0", Offset = "0x11748A0", VA = "0x181175AA0")]
[ContextMenu("TUTORIAL VIDEO")]
private void OpenTutorial()
{
Application.OpenURL("https://www.youtube.com/watch?v=9MiZiaJorws&index=6&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6");
}
// Token: 0x06002482 RID: 9346 RVA: 0x00053250 File Offset: 0x00051450
[Token(Token = "0x6002482")]
[Address(RVA = "0x1175AE0", Offset = "0x11748E0", VA = "0x181175AE0", Slot = "5")]
[ContextMenu("User Manual")]
protected override void OpenUserManual()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/page11.html");
}
// Token: 0x06002483 RID: 9347 RVA: 0x00053268 File Offset: 0x00051468
[Token(Token = "0x6002483")]
[Address(RVA = "0x1175A60", Offset = "0x1174860", VA = "0x181175A60", Slot = "6")]
[ContextMenu("Scrpt Reference")]
protected override void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_grounder_f_b_b_i_k.html");
}
// Token: 0x06002484 RID: 9348 RVA: 0x00053280 File Offset: 0x00051480
[Token(Token = "0x6002484")]
[Address(RVA = "0x1175B20", Offset = "0x1174920", VA = "0x181175B20", Slot = "4")]
public override void ResetPosition()
{
this.solver.Reset();
float z = Vector3.zero.z;
this.spineOffset.z = z;
}
// Token: 0x06002485 RID: 9349 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002485")]
[Address(RVA = "0x11751D0", Offset = "0x1173FD0", VA = "0x1811751D0")]
private bool IsReadyToInitiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002486 RID: 9350 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002486")]
[Address(RVA = "0x1175D10", Offset = "0x1174B10", VA = "0x181175D10")]
private void Update()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002487 RID: 9351 RVA: 0x000532B8 File Offset: 0x000514B8
[Token(Token = "0x6002487")]
[Address(RVA = "0x1174EF0", Offset = "0x1173CF0", VA = "0x181174EF0")]
private void FixedUpdate()
{
this.firstSolve = true;
}
// Token: 0x06002488 RID: 9352 RVA: 0x000532CC File Offset: 0x000514CC
[Token(Token = "0x6002488")]
[Address(RVA = "0x1174EF0", Offset = "0x1173CF0", VA = "0x181174EF0")]
private void LateUpdate()
{
this.firstSolve = true;
}
// Token: 0x06002489 RID: 9353 RVA: 0x000532E0 File Offset: 0x000514E0
[Token(Token = "0x6002489")]
[Address(RVA = "0x1174F00", Offset = "0x1173D00", VA = "0x181174F00")]
private void Initiate()
{
this.ik.solver.leftLegMapping.maintainRotationWeight = 1f;
this.ik.solver.rightLegMapping.maintainRotationWeight = 1f;
Transform[] array = new Transform[2];
this.feet = array;
FullBodyBipedIK fullBodyBipedIK = this.ik;
Transform[] array2 = this.feet;
IKEffector leftFootEffector = fullBodyBipedIK.solver.leftFootEffector;
Transform bone = leftFootEffector.bone;
if (bone == 0 || leftFootEffector != 0)
{
array2[0] = bone;
FullBodyBipedIK fullBodyBipedIK2 = this.ik;
Transform[] array3 = this.feet;
IKEffector rightFootEffector = fullBodyBipedIK2.solver.rightFootEffector;
Transform bone2 = rightFootEffector.bone;
if (bone2 == 0 || rightFootEffector != 0)
{
array3[1] = bone2;
IKSolverFullBodyBiped solver = this.ik.solver;
IKSolver.UpdateDelegate onPreUpdate = solver.OnPreUpdate;
IKSolver.UpdateDelegate updateDelegate = new IKSolver.UpdateDelegate(this.OnSolverUpdate);
Delegate @delegate = Delegate.Combine(onPreUpdate, updateDelegate);
if (@delegate == 0 || @delegate != 0)
{
solver.OnPreUpdate = @delegate;
BipedReferences references = this.ik.references;
Grounding solver2 = this.solver;
Transform[] array4 = this.feet;
Transform root = references.root;
solver2.Initiate(root, array4);
this.initiated = true;
return;
}
}
}
throw new InvalidCastException();
}
// Token: 0x0600248A RID: 9354 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600248A")]
[Address(RVA = "0x1175500", Offset = "0x1174300", VA = "0x181175500")]
private void OnSolverUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600248B RID: 9355 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600248B")]
[Address(RVA = "0x1175B60", Offset = "0x1174960", VA = "0x181175B60")]
private void SetLegIK(IKEffector effector, Grounding.Leg leg)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600248C RID: 9356 RVA: 0x0005342C File Offset: 0x0005162C
[Token(Token = "0x600248C")]
[Address(RVA = "0x11753A0", Offset = "0x11741A0", VA = "0x1811753A0")]
private void OnDrawGizmosSelected()
{
FullBodyBipedIK fullBodyBipedIK = this.ik;
int num = 0;
if (fullBodyBipedIK == num)
{
FullBodyBipedIK component = base.GetComponent<FullBodyBipedIK>();
this.ik = component;
}
FullBodyBipedIK fullBodyBipedIK2 = this.ik;
int num2 = 0;
if (fullBodyBipedIK2 == num2)
{
FullBodyBipedIK componentInParent = base.GetComponentInParent<FullBodyBipedIK>();
this.ik = componentInParent;
}
FullBodyBipedIK fullBodyBipedIK3 = this.ik;
int num3 = 0;
if (fullBodyBipedIK3 == num3)
{
FullBodyBipedIK componentInChildren = base.GetComponentInChildren<FullBodyBipedIK>();
this.ik = componentInChildren;
}
}
// Token: 0x0600248D RID: 9357 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600248D")]
[Address(RVA = "0x1175270", Offset = "0x1174070", VA = "0x181175270")]
private void OnDestroy()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600248E RID: 9358 RVA: 0x000534A8 File Offset: 0x000516A8
[Token(Token = "0x600248E")]
[Address(RVA = "0x1175DF0", Offset = "0x1174BF0", VA = "0x181175DF0")]
public GrounderFBBIK()
{
int num = 0;
this.spineSpeed = 3f;
GrounderFBBIK.SpineEffector[] array = new GrounderFBBIK.SpineEffector[num];
this.spine = array;
Transform[] array2 = new Transform[2];
this.feet = array2;
base..ctor();
}
// Token: 0x04002E2F RID: 11823
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4002E2F")]
[Tooltip("Reference to the FBBIK componet.")]
public FullBodyBipedIK ik;
// Token: 0x04002E30 RID: 11824
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4002E30")]
[Tooltip("The amount of spine bending towards upward slopes.")]
public float spineBend = 2f;
// Token: 0x04002E31 RID: 11825
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x4002E31")]
[Tooltip("The interpolation speed of spine bending.")]
public float spineSpeed;
// Token: 0x04002E32 RID: 11826
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4002E32")]
public GrounderFBBIK.SpineEffector[] spine;
// Token: 0x04002E33 RID: 11827
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4002E33")]
private Transform[] feet;
// Token: 0x04002E34 RID: 11828
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002E34")]
private Vector3 spineOffset;
// Token: 0x04002E35 RID: 11829
[FieldOffset(Offset = "0x6C")]
[Token(Token = "0x4002E35")]
private bool firstSolve;
// Token: 0x020003FE RID: 1022
[Token(Token = "0x20003FE")]
[Serializable]
public class SpineEffector
{
// Token: 0x0600248F RID: 9359 RVA: 0x000534F0 File Offset: 0x000516F0
[Token(Token = "0x600248F")]
[Address(RVA = "0x5FD950", Offset = "0x5FC750", VA = "0x1805FD950")]
public SpineEffector()
{
}
// Token: 0x04002E36 RID: 11830
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002E36")]
[Tooltip("The type of the effector.")]
public FullBodyBipedEffector effectorType;
// Token: 0x04002E37 RID: 11831
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4002E37")]
[Tooltip("The weight of horizontal bend offset towards the slope.")]
public float horizontalWeight = 1f;
// Token: 0x04002E38 RID: 11832
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002E38")]
[Tooltip("The vertical bend offset weight.")]
public float verticalWeight;
}
}
}

View File

@@ -0,0 +1,188 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x020003FF RID: 1023
[Token(Token = "0x20003FF")]
[HelpURL("http://www.root-motion.com/finalikdox/html/page11.html")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/Grounder/Grounder IK")]
public class GrounderIK : Grounder
{
// Token: 0x06002490 RID: 9360 RVA: 0x00053510 File Offset: 0x00051710
[Token(Token = "0x6002490")]
[Address(RVA = "0x1176F40", Offset = "0x1175D40", VA = "0x181176F40", Slot = "5")]
[ContextMenu("User Manual")]
protected override void OpenUserManual()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/page11.html");
}
// Token: 0x06002491 RID: 9361 RVA: 0x00053528 File Offset: 0x00051728
[Token(Token = "0x6002491")]
[Address(RVA = "0x1176F00", Offset = "0x1175D00", VA = "0x181176F00", Slot = "6")]
[ContextMenu("Scrpt Reference")]
protected override void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_grounder_i_k.html");
}
// Token: 0x06002492 RID: 9362 RVA: 0x00053540 File Offset: 0x00051740
[Token(Token = "0x6002492")]
[Address(RVA = "0x1176F80", Offset = "0x1175D80", VA = "0x181176F80", Slot = "4")]
public override void ResetPosition()
{
this.solver.Reset();
}
// Token: 0x06002493 RID: 9363 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002493")]
[Address(RVA = "0x11763E0", Offset = "0x11751E0", VA = "0x1811763E0")]
private bool IsReadyToInitiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002494 RID: 9364 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002494")]
[Address(RVA = "0x1176820", Offset = "0x1175620", VA = "0x181176820")]
private void OnDisable()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002495 RID: 9365 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002495")]
[Address(RVA = "0x11773A0", Offset = "0x11761A0", VA = "0x1811773A0")]
private void Update()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002496 RID: 9366 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002496")]
[Address(RVA = "0x1175E80", Offset = "0x1174C80", VA = "0x181175E80")]
private void Initiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002497 RID: 9367 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002497")]
[Address(RVA = "0x1176B80", Offset = "0x1175980", VA = "0x181176B80")]
private void OnSolverUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002498 RID: 9368 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002498")]
[Address(RVA = "0x1176FA0", Offset = "0x1175DA0", VA = "0x181176FA0")]
private void SetLegIK(int index)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002499 RID: 9369 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002499")]
[Address(RVA = "0x1176960", Offset = "0x1175760", VA = "0x181176960")]
private void OnPostSolverUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600249A RID: 9370 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600249A")]
[Address(RVA = "0x11765F0", Offset = "0x11753F0", VA = "0x1811765F0")]
private void OnDestroy()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600249B RID: 9371 RVA: 0x00053560 File Offset: 0x00051760
[Token(Token = "0x600249B")]
[Address(RVA = "0x1177740", Offset = "0x1176540", VA = "0x181177740")]
public GrounderIK()
{
int num = 0;
this.maxRootRotationAngle = 45f;
Transform[] array = new Transform[num];
this.feet = array;
Quaternion[] array2 = new Quaternion[0];
this.footRotations = array2;
base..ctor();
}
// Token: 0x04002E39 RID: 11833
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4002E39")]
public IK[] legs;
// Token: 0x04002E3A RID: 11834
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4002E3A")]
[Tooltip("The pelvis transform. Common ancestor of all the legs.")]
public Transform pelvis;
// Token: 0x04002E3B RID: 11835
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4002E3B")]
[Tooltip("The root Transform of the character, with the rigidbody and the collider.")]
public Transform characterRoot;
// Token: 0x04002E3C RID: 11836
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4002E3C")]
[Range(0f, 1f)]
[Tooltip("The weight of rotating the character root to the ground normal (range: 0 - 1).")]
public float rootRotationWeight;
// Token: 0x04002E3D RID: 11837
[FieldOffset(Offset = "0x5C")]
[Token(Token = "0x4002E3D")]
[Tooltip("The speed of rotating the character root to the ground normal (range: 0 - inf).")]
public float rootRotationSpeed = 5f;
// Token: 0x04002E3E RID: 11838
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002E3E")]
[Tooltip("The maximum angle of root rotation (range: 0 - 90).")]
public float maxRootRotationAngle;
// Token: 0x04002E3F RID: 11839
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4002E3F")]
private Transform[] feet;
// Token: 0x04002E40 RID: 11840
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4002E40")]
private Quaternion[] footRotations;
// Token: 0x04002E41 RID: 11841
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4002E41")]
private Vector3 animatedPelvisLocalPosition;
// Token: 0x04002E42 RID: 11842
[FieldOffset(Offset = "0x84")]
[Token(Token = "0x4002E42")]
private Vector3 solvedPelvisLocalPosition;
// Token: 0x04002E43 RID: 11843
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x4002E43")]
private int solvedFeet;
// Token: 0x04002E44 RID: 11844
[FieldOffset(Offset = "0x94")]
[Token(Token = "0x4002E44")]
private bool solved;
// Token: 0x04002E45 RID: 11845
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x4002E45")]
private float lastWeight;
}
}

View File

@@ -0,0 +1,397 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000400 RID: 1024
[Token(Token = "0x2000400")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/Grounder/Grounder Quadruped")]
[HelpURL("http://www.root-motion.com/finalikdox/html/page11.html")]
public class GrounderQuadruped : Grounder
{
// Token: 0x0600249C RID: 9372 RVA: 0x000535A8 File Offset: 0x000517A8
[Token(Token = "0x600249C")]
[Address(RVA = "0x11793B0", Offset = "0x11781B0", VA = "0x1811793B0", Slot = "5")]
[ContextMenu("User Manual")]
protected override void OpenUserManual()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/page11.html");
}
// Token: 0x0600249D RID: 9373 RVA: 0x000535C0 File Offset: 0x000517C0
[Token(Token = "0x600249D")]
[Address(RVA = "0x1179370", Offset = "0x1178170", VA = "0x181179370", Slot = "6")]
[ContextMenu("Scrpt Reference")]
protected override void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_grounder_quadruped.html");
}
// Token: 0x0600249E RID: 9374 RVA: 0x000535D8 File Offset: 0x000517D8
[Token(Token = "0x600249E")]
[Address(RVA = "0x11793F0", Offset = "0x11781F0", VA = "0x1811793F0", Slot = "4")]
public override void ResetPosition()
{
this.solver.Reset();
this.forelegSolver.Reset();
}
// Token: 0x0600249F RID: 9375 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600249F")]
[Address(RVA = "0x11783D0", Offset = "0x11771D0", VA = "0x1811783D0")]
private bool IsReadyToInitiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024A0 RID: 9376 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024A0")]
[Address(RVA = "0x1178200", Offset = "0x1177000", VA = "0x181178200")]
private bool IsReadyToInitiateLegs(IK[] ikComponents)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024A1 RID: 9377 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024A1")]
[Address(RVA = "0x1178650", Offset = "0x1177450", VA = "0x181178650")]
private void OnDisable()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024A2 RID: 9378 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024A2")]
[Address(RVA = "0x1179D30", Offset = "0x1178B30", VA = "0x181179D30")]
private void Update()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024A3 RID: 9379 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024A3")]
[Address(RVA = "0x1177E30", Offset = "0x1176C30", VA = "0x181177E30")]
private void Initiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024A4 RID: 9380 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024A4")]
[Address(RVA = "0x11779F0", Offset = "0x11767F0", VA = "0x1811779F0")]
private Transform[] InitiateFeet(IK[] ikComponents, ref GrounderQuadruped.Foot[] f, int indexOffset)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024A5 RID: 9381 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024A5")]
[Address(RVA = "0x1178520", Offset = "0x1177320", VA = "0x181178520")]
private void LateUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024A6 RID: 9382 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024A6")]
[Address(RVA = "0x1179430", Offset = "0x1178230", VA = "0x181179430")]
private void RootRotation()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024A7 RID: 9383 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024A7")]
[Address(RVA = "0x1178A40", Offset = "0x1177840", VA = "0x181178A40")]
private void OnSolverUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024A8 RID: 9384 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024A8")]
[Address(RVA = "0x1179A10", Offset = "0x1178810", VA = "0x181179A10")]
private void UpdateForefeetRoot()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024A9 RID: 9385 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024A9")]
[Address(RVA = "0x1179860", Offset = "0x1178660", VA = "0x181179860")]
private void SetFootIK(GrounderQuadruped.Foot foot, float maxOffset)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024AA RID: 9386 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024AA")]
[Address(RVA = "0x11786D0", Offset = "0x11774D0", VA = "0x1811786D0")]
private void OnPostSolverUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024AB RID: 9387 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024AB")]
[Address(RVA = "0x1178610", Offset = "0x1177410", VA = "0x181178610")]
private void OnDestroy()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024AC RID: 9388 RVA: 0x00053604 File Offset: 0x00051804
[Token(Token = "0x60024AC")]
[Address(RVA = "0x11777D0", Offset = "0x11765D0", VA = "0x1811777D0")]
private void DestroyLegs(IK[] ikComponents)
{
int num = 0;
int num2 = 0;
int length = ikComponents.Length;
if (num2 < length)
{
IK ik = ikComponents[num];
int num3 = 0;
if (ik != num3)
{
IKSolver iksolver = ik.GetIKSolver();
IKSolver.UpdateDelegate updateDelegate = new IKSolver.UpdateDelegate(this.OnSolverUpdate);
Delegate @delegate = Delegate.Remove(updateDelegate, updateDelegate);
int num4 = 0;
if (@delegate != 0 && @delegate == 0)
{
throw new InvalidCastException();
}
iksolver.OnPreUpdate = num4;
IKSolver iksolver2 = ik.GetIKSolver();
IKSolver.UpdateDelegate updateDelegate2 = new IKSolver.UpdateDelegate(this.OnPostSolverUpdate);
Delegate delegate2 = Delegate.Remove(updateDelegate2, updateDelegate2);
if (delegate2 != 0 && delegate2 == 0)
{
throw new InvalidCastException();
}
iksolver2.OnPostUpdate = delegate2;
}
num++;
}
}
// Token: 0x060024AD RID: 9389 RVA: 0x000536B4 File Offset: 0x000518B4
[Token(Token = "0x60024AD")]
[Address(RVA = "0x1179EB0", Offset = "0x1178CB0", VA = "0x181179EB0")]
public GrounderQuadruped()
{
Vector3 down = Vector3.down;
int num = 0;
float z = down.z;
this.gravity.z = z;
GrounderQuadruped.Foot[] array = new GrounderQuadruped.Foot[num];
this.feet = array;
base..ctor();
}
// Token: 0x04002E46 RID: 11846
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4002E46")]
[Tooltip("The Grounding solver for the forelegs.")]
public Grounding forelegSolver = new Grounding
{
maxStep = 0.5f,
footSpeed = 2.5f,
footRadius = 0.15f,
prediction = 0.05f,
footRotationWeight = 1f,
footRotationSpeed = 7f,
maxFootRotationAngle = 45f,
pelvisSpeed = 5f,
lowerPelvisWeight = 1f,
rootSphereCastRadius = 0.1f,
quality = (Grounding.Quality)((ulong)2L)
};
// Token: 0x04002E47 RID: 11847
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4002E47")]
[Range(0f, 1f)]
[Tooltip("The weight of rotating the character root to the ground angle (range: 0 - 1).")]
public float rootRotationWeight = 0.5f;
// Token: 0x04002E48 RID: 11848
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x4002E48")]
[Tooltip("The maximum angle of rotating the quadruped downwards (going downhill, range: -90 - 0).")]
[Range(-90f, 0f)]
public float minRootRotation = -25f;
// Token: 0x04002E49 RID: 11849
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4002E49")]
[Range(0f, 90f)]
[Tooltip("The maximum angle of rotating the quadruped upwards (going uphill, range: 0 - 90).")]
public float maxRootRotation = 45f;
// Token: 0x04002E4A RID: 11850
[FieldOffset(Offset = "0x54")]
[Token(Token = "0x4002E4A")]
[Tooltip("The speed of interpolating the character root rotation (range: 0 - inf).")]
public float rootRotationSpeed = 5f;
// Token: 0x04002E4B RID: 11851
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4002E4B")]
[Tooltip("The maximum IK offset for the legs (range: 0 - inf).")]
public float maxLegOffset = 0.5f;
// Token: 0x04002E4C RID: 11852
[FieldOffset(Offset = "0x5C")]
[Token(Token = "0x4002E4C")]
[Tooltip("The maximum IK offset for the forelegs (range: 0 - inf).")]
public float maxForeLegOffset = 0.5f;
// Token: 0x04002E4D RID: 11853
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002E4D")]
[Range(0f, 1f)]
[Tooltip("The weight of maintaining the head's rotation as it was before solving the Grounding (range: 0 - 1).")]
public float maintainHeadRotationWeight = 0.5f;
// Token: 0x04002E4E RID: 11854
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4002E4E")]
[Tooltip("The root Transform of the character, with the rigidbody and the collider.")]
public Transform characterRoot;
// Token: 0x04002E4F RID: 11855
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4002E4F")]
[Tooltip("The pelvis transform. Common ancestor of both legs and the spine.")]
public Transform pelvis;
// Token: 0x04002E50 RID: 11856
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4002E50")]
[Tooltip("The last bone in the spine that is the common parent for both forelegs.")]
public Transform lastSpineBone;
// Token: 0x04002E51 RID: 11857
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x4002E51")]
[Tooltip("The head (optional, if you intend to maintain it's rotation).")]
public Transform head;
// Token: 0x04002E52 RID: 11858
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x4002E52")]
public IK[] legs;
// Token: 0x04002E53 RID: 11859
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x4002E53")]
public IK[] forelegs;
// Token: 0x04002E54 RID: 11860
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x4002E54")]
[HideInInspector]
public Vector3 gravity;
// Token: 0x04002E55 RID: 11861
[FieldOffset(Offset = "0xA8")]
[Token(Token = "0x4002E55")]
private GrounderQuadruped.Foot[] feet;
// Token: 0x04002E56 RID: 11862
[FieldOffset(Offset = "0xB0")]
[Token(Token = "0x4002E56")]
private Vector3 animatedPelvisLocalPosition;
// Token: 0x04002E57 RID: 11863
[FieldOffset(Offset = "0xBC")]
[Token(Token = "0x4002E57")]
private Quaternion animatedPelvisLocalRotation;
// Token: 0x04002E58 RID: 11864
[FieldOffset(Offset = "0xCC")]
[Token(Token = "0x4002E58")]
private Quaternion animatedHeadLocalRotation;
// Token: 0x04002E59 RID: 11865
[FieldOffset(Offset = "0xDC")]
[Token(Token = "0x4002E59")]
private Vector3 solvedPelvisLocalPosition;
// Token: 0x04002E5A RID: 11866
[FieldOffset(Offset = "0xE8")]
[Token(Token = "0x4002E5A")]
private Quaternion solvedPelvisLocalRotation;
// Token: 0x04002E5B RID: 11867
[FieldOffset(Offset = "0xF8")]
[Token(Token = "0x4002E5B")]
private Quaternion solvedHeadLocalRotation;
// Token: 0x04002E5C RID: 11868
[FieldOffset(Offset = "0x108")]
[Token(Token = "0x4002E5C")]
private int solvedFeet;
// Token: 0x04002E5D RID: 11869
[FieldOffset(Offset = "0x10C")]
[Token(Token = "0x4002E5D")]
private bool solved;
// Token: 0x04002E5E RID: 11870
[FieldOffset(Offset = "0x110")]
[Token(Token = "0x4002E5E")]
private float angle;
// Token: 0x04002E5F RID: 11871
[FieldOffset(Offset = "0x118")]
[Token(Token = "0x4002E5F")]
private Transform forefeetRoot;
// Token: 0x04002E60 RID: 11872
[FieldOffset(Offset = "0x120")]
[Token(Token = "0x4002E60")]
private Quaternion headRotation;
// Token: 0x04002E61 RID: 11873
[FieldOffset(Offset = "0x130")]
[Token(Token = "0x4002E61")]
private float lastWeight;
// Token: 0x02000401 RID: 1025
[Token(Token = "0x2000401")]
public struct Foot
{
// Token: 0x060024AE RID: 9390 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024AE")]
[Address(RVA = "0x5FA3B0", Offset = "0x5F91B0", VA = "0x1805FA3B0")]
public Foot(IKSolver solver, Transform transform)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04002E62 RID: 11874
[FieldOffset(Offset = "0x0")]
[Token(Token = "0x4002E62")]
public IKSolver solver;
// Token: 0x04002E63 RID: 11875
[FieldOffset(Offset = "0x8")]
[Token(Token = "0x4002E63")]
public Transform transform;
// Token: 0x04002E64 RID: 11876
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002E64")]
public Quaternion rotation;
// Token: 0x04002E65 RID: 11877
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002E65")]
public Grounding.Leg leg;
}
}
}

View File

@@ -0,0 +1,853 @@
using System;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000402 RID: 1026
[Token(Token = "0x2000402")]
[Serializable]
public class Grounding
{
// Token: 0x17000214 RID: 532
// (get) Token: 0x060024AF RID: 9391 RVA: 0x000537C4 File Offset: 0x000519C4
// (set) Token: 0x060024B0 RID: 9392 RVA: 0x000537D8 File Offset: 0x000519D8
[Token(Token = "0x17000214")]
public Grounding.Leg[] legs
{
[Token(Token = "0x60024AF")]
[Address(RVA = "0x31E360", Offset = "0x31D160", VA = "0x18031E360")]
[CompilerGenerated]
get
{
return this.<legs>k__BackingField;
}
[Token(Token = "0x60024B0")]
[Address(RVA = "0x475BD0", Offset = "0x4749D0", VA = "0x180475BD0")]
[CompilerGenerated]
private set
{
/*
An exception occurred when decompiling this method (060024B0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.Grounding::set_legs(RootMotion.FinalIK.Grounding/Leg[])
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; stfld:class RootMotion.FinalIK.Grounding/Leg[](Grounding::<legs>k__BackingField, ldloc:Grounding(this), ldloc:class RootMotion.FinalIK.Grounding/Leg[](value)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
}
// Token: 0x17000215 RID: 533
// (get) Token: 0x060024B1 RID: 9393 RVA: 0x000537EC File Offset: 0x000519EC
// (set) Token: 0x060024B2 RID: 9394 RVA: 0x00053800 File Offset: 0x00051A00
[Token(Token = "0x17000215")]
public Grounding.Pelvis pelvis
{
[Token(Token = "0x60024B1")]
[Address(RVA = "0x31E480", Offset = "0x31D280", VA = "0x18031E480")]
[CompilerGenerated]
get
{
return this.<pelvis>k__BackingField;
}
[Token(Token = "0x60024B2")]
[Address(RVA = "0x6421A0", Offset = "0x640FA0", VA = "0x1806421A0")]
[CompilerGenerated]
private set
{
/*
An exception occurred when decompiling this method (060024B2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.Grounding::set_pelvis(RootMotion.FinalIK.Grounding/Pelvis)
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; stfld:Pelvis(Grounding::<pelvis>k__BackingField, ldloc:Grounding(this), ldloc:Pelvis(value)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
}
// Token: 0x17000216 RID: 534
// (get) Token: 0x060024B3 RID: 9395 RVA: 0x00053814 File Offset: 0x00051A14
// (set) Token: 0x060024B4 RID: 9396 RVA: 0x00053828 File Offset: 0x00051A28
[Token(Token = "0x17000216")]
public bool isGrounded
{
[Token(Token = "0x60024B3")]
[Address(RVA = "0xAD69C0", Offset = "0xAD57C0", VA = "0x180AD69C0")]
get;
[Token(Token = "0x60024B4")]
[Address(RVA = "0x6B6780", Offset = "0x6B5580", VA = "0x1806B6780")]
private set;
}
// Token: 0x17000217 RID: 535
// (get) Token: 0x060024B5 RID: 9397 RVA: 0x0005383C File Offset: 0x00051A3C
// (set) Token: 0x060024B6 RID: 9398 RVA: 0x00053850 File Offset: 0x00051A50
[Token(Token = "0x17000217")]
public Transform root
{
[Token(Token = "0x60024B5")]
[Address(RVA = "0x3EFFD0", Offset = "0x3EEDD0", VA = "0x1803EFFD0")]
[CompilerGenerated]
get
{
return this.<root>k__BackingField;
}
[Token(Token = "0x60024B6")]
[Address(RVA = "0x5296E0", Offset = "0x5284E0", VA = "0x1805296E0")]
[CompilerGenerated]
private set
{
/*
An exception occurred when decompiling this method (060024B6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.Grounding::set_root(UnityEngine.Transform)
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; stfld:Transform(Grounding::<root>k__BackingField, ldloc:Grounding(this), ldloc:Transform(value)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
}
// Token: 0x17000218 RID: 536
// (get) Token: 0x060024B7 RID: 9399 RVA: 0x000020D3 File Offset: 0x000002D3
// (set) Token: 0x060024B8 RID: 9400 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000218")]
public RaycastHit rootHit
{
[Token(Token = "0x60024B7")]
[Address(RVA = "0x117BAD0", Offset = "0x117A8D0", VA = "0x18117BAD0")]
[CompilerGenerated]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
[Token(Token = "0x60024B8")]
[Address(RVA = "0x117BC00", Offset = "0x117AA00", VA = "0x18117BC00")]
[CompilerGenerated]
private set
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x17000219 RID: 537
// (get) Token: 0x060024B9 RID: 9401 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000219")]
public bool rootGrounded
{
[Token(Token = "0x60024B9")]
[Address(RVA = "0x117BA70", Offset = "0x117A870", VA = "0x18117BA70")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x060024BA RID: 9402 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024BA")]
[Address(RVA = "0x117ABF0", Offset = "0x11799F0", VA = "0x18117ABF0")]
public RaycastHit GetRootHit(float maxDistanceMlp = 10f)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024BB RID: 9403 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024BB")]
[Address(RVA = "0x117B5D0", Offset = "0x117A3D0", VA = "0x18117B5D0")]
public bool IsValid(ref string errorMessage)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024BC RID: 9404 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024BC")]
[Address(RVA = "0x117B230", Offset = "0x117A030", VA = "0x18117B230")]
public void Initiate(Transform root, Transform[] feet)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024BD RID: 9405 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024BD")]
[Address(RVA = "0x117B7A0", Offset = "0x117A5A0", VA = "0x18117B7A0")]
public void Update()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024BE RID: 9406 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024BE")]
[Address(RVA = "0x117A920", Offset = "0x1179720", VA = "0x18117A920")]
public Vector3 GetLegsPlaneNormal()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024BF RID: 9407 RVA: 0x00053864 File Offset: 0x00051A64
[Token(Token = "0x60024BF")]
[Address(RVA = "0x117B720", Offset = "0x117A520", VA = "0x18117B720")]
public void Reset()
{
if (Application.isPlaying)
{
this.<pelvis>k__BackingField.Reset();
Grounding.Leg[] array = this.<legs>k__BackingField;
int num = 0;
int length = array.Length;
if (num < length)
{
array[num].Reset();
num++;
}
}
}
// Token: 0x060024C0 RID: 9408 RVA: 0x000538B0 File Offset: 0x00051AB0
[Token(Token = "0x60024C0")]
[Address(RVA = "0x117B700", Offset = "0x117A500", VA = "0x18117B700")]
public void LogWarning(string message)
{
Transform transform = this.<root>k__BackingField;
int num = 0;
Warning.Log(message, transform, num != 0);
}
// Token: 0x1700021A RID: 538
// (get) Token: 0x060024C1 RID: 9409 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x1700021A")]
public Vector3 up
{
[Token(Token = "0x60024C1")]
[Address(RVA = "0x117BB00", Offset = "0x117A900", VA = "0x18117BB00")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x060024C2 RID: 9410 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024C2")]
[Address(RVA = "0x117B110", Offset = "0x1179F10", VA = "0x18117B110")]
public float GetVerticalOffset(Vector3 p1, Vector3 p2)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024C3 RID: 9411 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024C3")]
[Address(RVA = "0x117A710", Offset = "0x1179510", VA = "0x18117A710")]
public Vector3 Flatten(Vector3 v)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x1700021B RID: 539
// (get) Token: 0x060024C4 RID: 9412 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x1700021B")]
private bool useRootRotation
{
[Token(Token = "0x60024C4")]
[Address(RVA = "0x117BB70", Offset = "0x117A970", VA = "0x18117BB70")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x060024C5 RID: 9413 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024C5")]
[Address(RVA = "0x117A800", Offset = "0x1179600", VA = "0x18117A800")]
public Vector3 GetFootCenterOffset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024C6 RID: 9414 RVA: 0x000538D0 File Offset: 0x00051AD0
[Token(Token = "0x60024C6")]
[Address(RVA = "0x117BA10", Offset = "0x117A810", VA = "0x18117BA10")]
public Grounding()
{
}
// Token: 0x04002E66 RID: 11878
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002E66")]
[Tooltip("Layers to ground the character to. Make sure to exclude the layer of the character controller.")]
public LayerMask layers;
// Token: 0x04002E67 RID: 11879
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4002E67")]
[Tooltip("Max step height. Maximum vertical distance of Grounding from the root of the character.")]
public float maxStep = 0.5f;
// Token: 0x04002E68 RID: 11880
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002E68")]
[Tooltip("The height offset of the root.")]
public float heightOffset;
// Token: 0x04002E69 RID: 11881
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4002E69")]
[Tooltip("The speed of moving the feet up/down.")]
public float footSpeed = 2.5f;
// Token: 0x04002E6A RID: 11882
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002E6A")]
[Tooltip("CapsuleCast radius. Should match approximately with the size of the feet.")]
public float footRadius = 0.15f;
// Token: 0x04002E6B RID: 11883
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x4002E6B")]
[HideInInspector]
[Tooltip("Offset of the foot center along character forward axis.")]
public float footCenterOffset;
// Token: 0x04002E6C RID: 11884
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4002E6C")]
[Tooltip("Amount of velocity based prediction of the foot positions.")]
public float prediction = 0.05f;
// Token: 0x04002E6D RID: 11885
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4002E6D")]
[Range(0f, 1f)]
[Tooltip("Weight of rotating the feet to the ground normal offset.")]
public float footRotationWeight = 1f;
// Token: 0x04002E6E RID: 11886
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4002E6E")]
[Tooltip("Speed of slerping the feet to their grounded rotations.")]
public float footRotationSpeed = 7f;
// Token: 0x04002E6F RID: 11887
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x4002E6F")]
[Range(0f, 90f)]
[Tooltip("Max Foot Rotation Angle. Max angular offset from the foot's rotation.")]
public float maxFootRotationAngle = 45f;
// Token: 0x04002E70 RID: 11888
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002E70")]
[Tooltip("If true, solver will rotate with the character root so the character can be grounded for example to spherical planets. For performance reasons leave this off unless needed.")]
public bool rotateSolver;
// Token: 0x04002E71 RID: 11889
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x4002E71")]
[Tooltip("The speed of moving the character up/down.")]
public float pelvisSpeed = 5f;
// Token: 0x04002E72 RID: 11890
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4002E72")]
[Tooltip("Used for smoothing out vertical pelvis movement (range 0 - 1).")]
[Range(0f, 1f)]
public float pelvisDamper;
// Token: 0x04002E73 RID: 11891
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x4002E73")]
[Tooltip("The weight of lowering the pelvis to the lowest foot.")]
public float lowerPelvisWeight = 1f;
// Token: 0x04002E74 RID: 11892
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4002E74")]
[Tooltip("The weight of lifting the pelvis to the highest foot. This is useful when you don't want the feet to go too high relative to the body when crouching.")]
public float liftPelvisWeight;
// Token: 0x04002E75 RID: 11893
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x4002E75")]
[Tooltip("The radius of the spherecast from the root that determines whether the character root is grounded.")]
public float rootSphereCastRadius = 0.1f;
// Token: 0x04002E76 RID: 11894
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4002E76")]
[Tooltip("The raycasting quality. Fastest is a single raycast per foot, Simple is three raycasts, Best is one raycast and a capsule cast per foot.")]
public Grounding.Quality quality = (Grounding.Quality)((ulong)2L);
// Token: 0x04002E7C RID: 11900
[FieldOffset(Offset = "0xA4")]
[Token(Token = "0x4002E7C")]
private bool initiated;
// Token: 0x02000403 RID: 1027
[Token(Token = "0x2000403")]
[Serializable]
public enum Quality
{
// Token: 0x04002E7E RID: 11902
[Token(Token = "0x4002E7E")]
Fastest,
// Token: 0x04002E7F RID: 11903
[Token(Token = "0x4002E7F")]
Simple,
// Token: 0x04002E80 RID: 11904
[Token(Token = "0x4002E80")]
Best
}
// Token: 0x02000404 RID: 1028
[Token(Token = "0x2000404")]
public class Leg
{
// Token: 0x1700021C RID: 540
// (get) Token: 0x060024C7 RID: 9415 RVA: 0x0005395C File Offset: 0x00051B5C
// (set) Token: 0x060024C8 RID: 9416 RVA: 0x00053970 File Offset: 0x00051B70
[Token(Token = "0x1700021C")]
public bool isGrounded
{
[Token(Token = "0x60024C7")]
[Address(RVA = "0x2B3EC0", Offset = "0x2B2CC0", VA = "0x1802B3EC0")]
get;
[Token(Token = "0x60024C8")]
[Address(RVA = "0x318860", Offset = "0x317660", VA = "0x180318860")]
private set;
}
// Token: 0x1700021D RID: 541
// (get) Token: 0x060024C9 RID: 9417 RVA: 0x000020D3 File Offset: 0x000002D3
// (set) Token: 0x060024CA RID: 9418 RVA: 0x00053984 File Offset: 0x00051B84
[Token(Token = "0x1700021D")]
public Vector3 IKPosition
{
[Token(Token = "0x60024C9")]
[Address(RVA = "0x562560", Offset = "0x561360", VA = "0x180562560")]
[CompilerGenerated]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
[Token(Token = "0x60024CA")]
[Address(RVA = "0x5FC8E0", Offset = "0x5FB6E0", VA = "0x1805FC8E0")]
[CompilerGenerated]
private set
{
float z = value.z;
this.<IKPosition>k__BackingField.z = z;
}
}
// Token: 0x1700021E RID: 542
// (get) Token: 0x060024CB RID: 9419 RVA: 0x000539A4 File Offset: 0x00051BA4
// (set) Token: 0x060024CC RID: 9420 RVA: 0x000539B8 File Offset: 0x00051BB8
[Token(Token = "0x1700021E")]
public bool initiated
{
[Token(Token = "0x60024CB")]
[Address(RVA = "0x434D40", Offset = "0x433B40", VA = "0x180434D40")]
get;
[Token(Token = "0x60024CC")]
[Address(RVA = "0x502BB0", Offset = "0x5019B0", VA = "0x180502BB0")]
private set;
}
// Token: 0x1700021F RID: 543
// (get) Token: 0x060024CD RID: 9421 RVA: 0x000539CC File Offset: 0x00051BCC
// (set) Token: 0x060024CE RID: 9422 RVA: 0x000539E0 File Offset: 0x00051BE0
[Token(Token = "0x1700021F")]
public float heightFromGround
{
[Token(Token = "0x60024CD")]
[Address(RVA = "0x5FC740", Offset = "0x5FB540", VA = "0x1805FC740")]
get;
[Token(Token = "0x60024CE")]
[Address(RVA = "0x5FC8F0", Offset = "0x5FB6F0", VA = "0x1805FC8F0")]
private set;
}
// Token: 0x17000220 RID: 544
// (get) Token: 0x060024CF RID: 9423 RVA: 0x000020D3 File Offset: 0x000002D3
// (set) Token: 0x060024D0 RID: 9424 RVA: 0x000539F4 File Offset: 0x00051BF4
[Token(Token = "0x17000220")]
public Vector3 velocity
{
[Token(Token = "0x60024CF")]
[Address(RVA = "0x38DAF0", Offset = "0x38C8F0", VA = "0x18038DAF0")]
[CompilerGenerated]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
[Token(Token = "0x60024D0")]
[Address(RVA = "0x38DB70", Offset = "0x38C970", VA = "0x18038DB70")]
[CompilerGenerated]
private set
{
float z = value.z;
this.<velocity>k__BackingField.z = z;
}
}
// Token: 0x17000221 RID: 545
// (get) Token: 0x060024D1 RID: 9425 RVA: 0x00053A14 File Offset: 0x00051C14
// (set) Token: 0x060024D2 RID: 9426 RVA: 0x00053A28 File Offset: 0x00051C28
[Token(Token = "0x17000221")]
public Transform transform
{
[Token(Token = "0x60024D1")]
[Address(RVA = "0x3147B0", Offset = "0x3135B0", VA = "0x1803147B0")]
[CompilerGenerated]
get
{
return this.<transform>k__BackingField;
}
[Token(Token = "0x60024D2")]
[Address(RVA = "0x5428D0", Offset = "0x5416D0", VA = "0x1805428D0")]
[CompilerGenerated]
private set
{
/*
An exception occurred when decompiling this method (060024D2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.Grounding/Leg::set_transform(UnityEngine.Transform)
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; stfld:Transform(Leg::<transform>k__BackingField, ldloc:Leg(this), ldloc:Transform(value)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
}
// Token: 0x17000222 RID: 546
// (get) Token: 0x060024D3 RID: 9427 RVA: 0x00053A3C File Offset: 0x00051C3C
// (set) Token: 0x060024D4 RID: 9428 RVA: 0x00053A50 File Offset: 0x00051C50
[Token(Token = "0x17000222")]
public float IKOffset
{
[Token(Token = "0x60024D3")]
[Address(RVA = "0x468190", Offset = "0x466F90", VA = "0x180468190")]
get;
[Token(Token = "0x60024D4")]
[Address(RVA = "0x475B00", Offset = "0x474900", VA = "0x180475B00")]
private set;
}
// Token: 0x060024D5 RID: 9429 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024D5")]
[Address(RVA = "0x5FB160", Offset = "0x5F9F60", VA = "0x1805FB160")]
public void Initiate(Grounding grounding, Transform transform)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024D6 RID: 9430 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024D6")]
[Address(RVA = "0x5FB240", Offset = "0x5FA040", VA = "0x1805FB240")]
public void OnEnable()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024D7 RID: 9431 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024D7")]
[Address(RVA = "0x5FC0E0", Offset = "0x5FAEE0", VA = "0x1805FC0E0")]
public void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024D8 RID: 9432 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024D8")]
[Address(RVA = "0x5FB290", Offset = "0x5FA090", VA = "0x1805FB290")]
public void Process()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17000223 RID: 547
// (get) Token: 0x060024D9 RID: 9433 RVA: 0x00053A64 File Offset: 0x00051C64
[Token(Token = "0x17000223")]
public float stepHeightFromGround
{
[Token(Token = "0x60024D9")]
[Address(RVA = "0x5FC8A0", Offset = "0x5FB6A0", VA = "0x1805FC8A0")]
get
{
float maxStep = this.grounding.maxStep;
return Mathf.Clamp(this.<heightFromGround>k__BackingField, maxStep, maxStep);
}
}
// Token: 0x060024DA RID: 9434 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024DA")]
[Address(RVA = "0x5FA700", Offset = "0x5F9500", VA = "0x1805FA700")]
private RaycastHit GetCapsuleHit(Vector3 offsetFromHeel)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024DB RID: 9435 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024DB")]
[Address(RVA = "0x5FADD0", Offset = "0x5F9BD0", VA = "0x1805FADD0")]
private RaycastHit GetRaycastHit(Vector3 offsetFromHeel)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024DC RID: 9436 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024DC")]
[Address(RVA = "0x5FC270", Offset = "0x5FB070", VA = "0x1805FC270")]
private Vector3 RotateNormal(Vector3 normal)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024DD RID: 9437 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024DD")]
[Address(RVA = "0x5FC5E0", Offset = "0x5FB3E0", VA = "0x1805FC5E0")]
private void SetFootToPoint(Vector3 normal, Vector3 point)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024DE RID: 9438 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024DE")]
[Address(RVA = "0x5FC320", Offset = "0x5FB120", VA = "0x1805FC320")]
private void SetFootToPlane(Vector3 planeNormal, Vector3 planePoint, Vector3 heelHitPoint)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024DF RID: 9439 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024DF")]
[Address(RVA = "0x5FAC10", Offset = "0x5F9A10", VA = "0x1805FAC10")]
private float GetHeightFromGround(Vector3 hitPoint)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024E0 RID: 9440 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024E0")]
[Address(RVA = "0x5FC170", Offset = "0x5FAF70", VA = "0x1805FC170")]
private void RotateFoot()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024E1 RID: 9441 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024E1")]
[Address(RVA = "0x5FB0A0", Offset = "0x5F9EA0", VA = "0x1805FB0A0")]
private Quaternion GetRotationOffsetTarget()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17000224 RID: 548
// (get) Token: 0x060024E2 RID: 9442 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000224")]
private float rootYOffset
{
[Token(Token = "0x60024E2")]
[Address(RVA = "0x5FC750", Offset = "0x5FB550", VA = "0x1805FC750")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x060024E3 RID: 9443 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024E3")]
[Address(RVA = "0x5FC6F0", Offset = "0x5FB4F0", VA = "0x1805FC6F0")]
public Leg()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04002E83 RID: 11907
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002E83")]
public Quaternion rotationOffset;
// Token: 0x04002E89 RID: 11913
[FieldOffset(Offset = "0x54")]
[Token(Token = "0x4002E89")]
public bool invertFootCenter;
// Token: 0x04002E8A RID: 11914
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4002E8A")]
private Grounding grounding;
// Token: 0x04002E8B RID: 11915
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002E8B")]
private float lastTime;
// Token: 0x04002E8C RID: 11916
[FieldOffset(Offset = "0x64")]
[Token(Token = "0x4002E8C")]
private float deltaTime;
// Token: 0x04002E8D RID: 11917
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4002E8D")]
private Vector3 lastPosition;
// Token: 0x04002E8E RID: 11918
[FieldOffset(Offset = "0x74")]
[Token(Token = "0x4002E8E")]
private Quaternion toHitNormal;
// Token: 0x04002E8F RID: 11919
[FieldOffset(Offset = "0x84")]
[Token(Token = "0x4002E8F")]
private Quaternion r;
// Token: 0x04002E90 RID: 11920
[FieldOffset(Offset = "0x94")]
[Token(Token = "0x4002E90")]
private RaycastHit heelHit;
// Token: 0x04002E91 RID: 11921
[FieldOffset(Offset = "0xC0")]
[Token(Token = "0x4002E91")]
private Vector3 up;
}
// Token: 0x02000405 RID: 1029
[Token(Token = "0x2000405")]
public class Pelvis
{
// Token: 0x17000225 RID: 549
// (get) Token: 0x060024E4 RID: 9444 RVA: 0x000020D3 File Offset: 0x000002D3
// (set) Token: 0x060024E5 RID: 9445 RVA: 0x00053A90 File Offset: 0x00051C90
[Token(Token = "0x17000225")]
public Vector3 IKOffset
{
[Token(Token = "0x60024E4")]
[Address(RVA = "0x42E030", Offset = "0x42CE30", VA = "0x18042E030")]
[CompilerGenerated]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
[Token(Token = "0x60024E5")]
[Address(RVA = "0x5FD260", Offset = "0x5FC060", VA = "0x1805FD260")]
[CompilerGenerated]
private set
{
float z = value.z;
this.<IKOffset>k__BackingField.z = z;
}
}
// Token: 0x17000226 RID: 550
// (get) Token: 0x060024E6 RID: 9446 RVA: 0x00053AB0 File Offset: 0x00051CB0
// (set) Token: 0x060024E7 RID: 9447 RVA: 0x00053AC4 File Offset: 0x00051CC4
[Token(Token = "0x17000226")]
public float heightOffset
{
[Token(Token = "0x60024E6")]
[Address(RVA = "0x5B5B10", Offset = "0x5B4910", VA = "0x1805B5B10")]
get;
[Token(Token = "0x60024E7")]
[Address(RVA = "0x5FD270", Offset = "0x5FC070", VA = "0x1805FD270")]
private set;
}
// Token: 0x060024E8 RID: 9448 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024E8")]
[Address(RVA = "0x5FCE60", Offset = "0x5FBC60", VA = "0x1805FCE60")]
public void Initiate(Grounding grounding)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024E9 RID: 9449 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024E9")]
[Address(RVA = "0x5FD1E0", Offset = "0x5FBFE0", VA = "0x1805FD1E0")]
public void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024EA RID: 9450 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024EA")]
[Address(RVA = "0x5FCEE0", Offset = "0x5FBCE0", VA = "0x1805FCEE0")]
public void OnEnable()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024EB RID: 9451 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60024EB")]
[Address(RVA = "0x5FCF50", Offset = "0x5FBD50", VA = "0x1805FCF50")]
public void Process(float lowestOffset, float highestOffset, bool isGrounded)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060024EC RID: 9452 RVA: 0x00053AD8 File Offset: 0x00051CD8
[Token(Token = "0x60024EC")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public Pelvis()
{
}
// Token: 0x04002E94 RID: 11924
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002E94")]
private Grounding grounding;
// Token: 0x04002E95 RID: 11925
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4002E95")]
private Vector3 lastRootPosition;
// Token: 0x04002E96 RID: 11926
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x4002E96")]
private float damperF;
// Token: 0x04002E97 RID: 11927
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002E97")]
private bool initiated;
// Token: 0x04002E98 RID: 11928
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x4002E98")]
private float lastTime;
}
}
}

View File

@@ -0,0 +1,95 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200045A RID: 1114
[Token(Token = "0x200045A")]
public class HandPoser : Poser
{
// Token: 0x06002820 RID: 10272 RVA: 0x00058C68 File Offset: 0x00056E68
[Token(Token = "0x6002820")]
[Address(RVA = "0x117BC30", Offset = "0x117AA30", VA = "0x18117BC30", Slot = "7")]
public override void AutoMapping()
{
Transform poseRoot = this.poseRoot;
int num = 0;
if (!(poseRoot == num))
{
Transform[] componentsInChildren = this.poseRoot.GetComponentsInChildren<Transform>();
}
Transform[] array = new Transform[0];
this.poseChildren = array;
Transform poseRoot2 = this.poseRoot;
this._poseRoot = poseRoot2;
throw new NullReferenceException();
}
// Token: 0x06002821 RID: 10273 RVA: 0x00058CB8 File Offset: 0x00056EB8
[Token(Token = "0x6002821")]
[Address(RVA = "0x117BE50", Offset = "0x117AC50", VA = "0x18117BE50", Slot = "8")]
protected override void InitiatePoser()
{
Transform[] componentsInChildren = base.GetComponentsInChildren<Transform>();
this.children = componentsInChildren;
this.StoreDefaultState();
}
// Token: 0x06002822 RID: 10274 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002822")]
[Address(RVA = "0x117BD00", Offset = "0x117AB00", VA = "0x18117BD00", Slot = "10")]
protected override void FixPoserTransforms()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002823 RID: 10275 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002823")]
[Address(RVA = "0x117C090", Offset = "0x117AE90", VA = "0x18117C090", Slot = "9")]
protected override void UpdatePoser()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002824 RID: 10276 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002824")]
[Address(RVA = "0x117BEB0", Offset = "0x117ACB0", VA = "0x18117BEB0")]
private void StoreDefaultState()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002825 RID: 10277 RVA: 0x00058CDC File Offset: 0x00056EDC
[Token(Token = "0x6002825")]
[Address(RVA = "0x54EA40", Offset = "0x54D840", VA = "0x18054EA40")]
public HandPoser()
{
}
// Token: 0x04003180 RID: 12672
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4003180")]
private Transform _poseRoot;
// Token: 0x04003181 RID: 12673
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4003181")]
private Transform[] children;
// Token: 0x04003182 RID: 12674
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4003182")]
private Transform[] poseChildren;
// Token: 0x04003183 RID: 12675
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4003183")]
private Vector3[] defaultLocalPositions;
// Token: 0x04003184 RID: 12676
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4003184")]
private Quaternion[] defaultLocalRotations;
}
}

View File

@@ -0,0 +1,531 @@
using System;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200046D RID: 1133
[Token(Token = "0x200046D")]
public class HitReaction : OffsetModifier
{
// Token: 0x17000290 RID: 656
// (get) Token: 0x06002897 RID: 10391 RVA: 0x00059648 File Offset: 0x00057848
[Token(Token = "0x17000290")]
public bool inProgress
{
[Token(Token = "0x6002897")]
[Address(RVA = "0x117E910", Offset = "0x117D710", VA = "0x18117E910")]
get
{
HitReaction.HitPointEffector[] array = this.effectorHitPoints;
int num = 0;
int length = array.Length;
if (num < length)
{
if (array[num].inProgress)
{
return true;
}
num++;
}
HitReaction.HitPointBone[] array2 = this.boneHitPoints;
int length2 = array2.Length;
if (num >= length2)
{
throw new NullReferenceException();
}
if (!array2[num].inProgress)
{
num++;
}
return true;
}
}
// Token: 0x06002898 RID: 10392 RVA: 0x000596AC File Offset: 0x000578AC
[Token(Token = "0x6002898")]
[Address(RVA = "0x117E810", Offset = "0x117D610", VA = "0x18117E810", Slot = "4")]
protected override void OnModifyOffset()
{
HitReaction.HitPointEffector[] array = this.effectorHitPoints;
int num = 0;
int length = array.Length;
if (num < length)
{
FullBodyBipedIK ik = this.ik;
HitReaction.HitPointEffector hitPointEffector = array[num];
float weight = this.weight;
IKSolverFullBodyBiped solver = ik.solver;
hitPointEffector.Apply(solver, weight);
num++;
}
HitReaction.HitPointBone[] array2 = this.boneHitPoints;
int length2 = array2.Length;
if (num < length2)
{
FullBodyBipedIK ik2 = this.ik;
HitReaction.HitPointBone hitPointBone = array2[num];
float weight2 = this.weight;
IKSolverFullBodyBiped solver2 = ik2.solver;
hitPointBone.Apply(solver2, weight2);
num++;
}
}
// Token: 0x06002899 RID: 10393 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002899")]
[Address(RVA = "0x117E580", Offset = "0x117D380", VA = "0x18117E580")]
public void Hit(Collider collider, Vector3 force, Vector3 point)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600289A RID: 10394 RVA: 0x0005974C File Offset: 0x0005794C
[Token(Token = "0x600289A")]
[Address(RVA = "0x8CD260", Offset = "0x8CC060", VA = "0x1808CD260")]
public HitReaction()
{
}
// Token: 0x040031DF RID: 12767
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40031DF")]
[Tooltip("Hit points for the FBBIK effectors")]
public HitReaction.HitPointEffector[] effectorHitPoints;
// Token: 0x040031E0 RID: 12768
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40031E0")]
[Tooltip(" Hit points for bones without an effector, such as the head")]
public HitReaction.HitPointBone[] boneHitPoints;
// Token: 0x0200046E RID: 1134
[Token(Token = "0x200046E")]
[Serializable]
public abstract class HitPoint
{
// Token: 0x17000291 RID: 657
// (get) Token: 0x0600289B RID: 10395 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000291")]
public bool inProgress
{
[Token(Token = "0x600289B")]
[Address(RVA = "0x14EAE80", Offset = "0x14E9C80", VA = "0x1814EAE80")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x17000292 RID: 658
// (get) Token: 0x0600289C RID: 10396 RVA: 0x00059760 File Offset: 0x00057960
// (set) Token: 0x0600289D RID: 10397 RVA: 0x00059774 File Offset: 0x00057974
[Token(Token = "0x17000292")]
private protected float crossFader
{
[Token(Token = "0x600289C")]
[Address(RVA = "0x5B0660", Offset = "0x5AF460", VA = "0x1805B0660")]
protected get;
[Token(Token = "0x600289D")]
[Address(RVA = "0x5B0700", Offset = "0x5AF500", VA = "0x1805B0700")]
private set;
}
// Token: 0x17000293 RID: 659
// (get) Token: 0x0600289E RID: 10398 RVA: 0x00059788 File Offset: 0x00057988
// (set) Token: 0x0600289F RID: 10399 RVA: 0x0005979C File Offset: 0x0005799C
[Token(Token = "0x17000293")]
private protected float timer
{
[Token(Token = "0x600289E")]
[Address(RVA = "0x5F9910", Offset = "0x5F8710", VA = "0x1805F9910")]
protected get;
[Token(Token = "0x600289F")]
[Address(RVA = "0x5F9930", Offset = "0x5F8730", VA = "0x1805F9930")]
private set;
}
// Token: 0x17000294 RID: 660
// (get) Token: 0x060028A0 RID: 10400 RVA: 0x000020D3 File Offset: 0x000002D3
// (set) Token: 0x060028A1 RID: 10401 RVA: 0x000597B0 File Offset: 0x000579B0
[Token(Token = "0x17000294")]
private protected Vector3 force
{
[Token(Token = "0x60028A0")]
[Address(RVA = "0x126EB40", Offset = "0x126D940", VA = "0x18126EB40")]
[CompilerGenerated]
protected get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
[Token(Token = "0x60028A1")]
[Address(RVA = "0x126EC30", Offset = "0x126DA30", VA = "0x18126EC30")]
[CompilerGenerated]
private set
{
float z = value.z;
this.<force>k__BackingField.z = z;
}
}
// Token: 0x17000295 RID: 661
// (get) Token: 0x060028A2 RID: 10402 RVA: 0x000020D3 File Offset: 0x000002D3
// (set) Token: 0x060028A3 RID: 10403 RVA: 0x000597D0 File Offset: 0x000579D0
[Token(Token = "0x17000295")]
private protected Vector3 point
{
[Token(Token = "0x60028A2")]
[Address(RVA = "0x38DAF0", Offset = "0x38C8F0", VA = "0x18038DAF0")]
[CompilerGenerated]
protected get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
[Token(Token = "0x60028A3")]
[Address(RVA = "0x38DB70", Offset = "0x38C970", VA = "0x18038DB70")]
[CompilerGenerated]
private set
{
float z = value.z;
this.<point>k__BackingField.z = z;
}
}
// Token: 0x060028A4 RID: 10404 RVA: 0x000597F0 File Offset: 0x000579F0
[Token(Token = "0x60028A4")]
[Address(RVA = "0x14EAD60", Offset = "0x14E9B60", VA = "0x1814EAD60")]
public void Hit(Vector3 force, Vector3 point)
{
int num = 0;
float num2 = this.GetLength();
this.length = num2;
if (num < (int)num2)
{
this.<crossFader>k__BackingField = 0f;
if (this.crossFadeTime > (float)num)
{
}
int num3 = 0;
this.crossFadeSpeed = (float)num3;
this.CrossFadeStart();
float z = force.z;
this.<force>k__BackingField.z = z;
float z2 = point.z;
this.<point>k__BackingField.z = z2;
this.<timer>k__BackingField = 0f;
}
Debug.LogError("Hit Point WeightCurve length is zero.");
}
// Token: 0x060028A5 RID: 10405 RVA: 0x00059874 File Offset: 0x00057A74
[Token(Token = "0x60028A5")]
[Address(RVA = "0x14EAC90", Offset = "0x14E9A90", VA = "0x1814EAC90")]
public void Apply(IKSolverFullBodyBiped solver, float weight)
{
float time = Time.time;
float time2 = Time.time;
float num = this.length;
this.lastTime = time2;
float num2 = this.<timer>k__BackingField;
if (num2 < num)
{
int num3 = 0;
int num4 = 0;
float num5 = Mathf.Clamp(num2, (float)num3, num);
this.<timer>k__BackingField = num5;
float num6 = this.crossFadeSpeed;
if (num6 <= (float)num4)
{
}
int num7 = 0;
float num8 = Mathf.Clamp(num6, (float)num7, 1f);
this.<crossFader>k__BackingField = num8;
this.OnApply(solver, weight);
}
}
// Token: 0x060028A6 RID: 10406
[Token(Token = "0x60028A6")]
[Address(Slot = "4")]
protected abstract float GetLength();
// Token: 0x060028A7 RID: 10407
[Token(Token = "0x60028A7")]
[Address(Slot = "5")]
protected abstract void CrossFadeStart();
// Token: 0x060028A8 RID: 10408
[Token(Token = "0x60028A8")]
[Address(Slot = "6")]
protected abstract void OnApply(IKSolverFullBodyBiped solver, float weight);
// Token: 0x060028A9 RID: 10409 RVA: 0x000598FC File Offset: 0x00057AFC
[Token(Token = "0x60028A9")]
[Address(RVA = "0x14EA8B0", Offset = "0x14E96B0", VA = "0x1814EA8B0")]
protected HitPoint()
{
}
// Token: 0x040031E1 RID: 12769
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40031E1")]
[Tooltip("Just for visual clarity, not used at all")]
public string name;
// Token: 0x040031E2 RID: 12770
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40031E2")]
[Tooltip("Linking this hit point to a collider")]
public Collider collider;
// Token: 0x040031E3 RID: 12771
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40031E3")]
[SerializeField]
[Tooltip("Only used if this hit point gets hit when already processing another hit")]
private float crossFadeTime = 0.1f;
// Token: 0x040031E8 RID: 12776
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x40031E8")]
private float length;
// Token: 0x040031E9 RID: 12777
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40031E9")]
private float crossFadeSpeed;
// Token: 0x040031EA RID: 12778
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x40031EA")]
private float lastTime;
}
// Token: 0x0200046F RID: 1135
[Token(Token = "0x200046F")]
[Serializable]
public class HitPointEffector : HitReaction.HitPoint
{
// Token: 0x060028AA RID: 10410 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028AA")]
[Address(RVA = "0x14EA920", Offset = "0x14E9720", VA = "0x1814EA920", Slot = "4")]
protected override float GetLength()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028AB RID: 10411 RVA: 0x0005991C File Offset: 0x00057B1C
[Token(Token = "0x60028AB")]
[Address(RVA = "0x14EA8C0", Offset = "0x14E96C0", VA = "0x1814EA8C0", Slot = "5")]
protected override void CrossFadeStart()
{
HitReaction.HitPointEffector.EffectorLink[] array = this.effectorLinks;
int num = 0;
int length = array.Length;
if (num < length)
{
array[num].CrossFadeStart();
num++;
}
}
// Token: 0x060028AC RID: 10412 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028AC")]
[Address(RVA = "0x14EAA70", Offset = "0x14E9870", VA = "0x1814EAA70", Slot = "6")]
protected override void OnApply(IKSolverFullBodyBiped solver, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028AD RID: 10413 RVA: 0x00059954 File Offset: 0x00057B54
[Token(Token = "0x60028AD")]
[Address(RVA = "0x14EA8B0", Offset = "0x14E96B0", VA = "0x1814EA8B0")]
public HitPointEffector()
{
this.crossFadeTime = 0.1f;
base..ctor();
}
// Token: 0x040031EB RID: 12779
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40031EB")]
[Tooltip("Offset magnitude in the direction of the hit force")]
public AnimationCurve offsetInForceDirection;
// Token: 0x040031EC RID: 12780
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x40031EC")]
[Tooltip("Offset magnitude in the direction of character.up")]
public AnimationCurve offsetInUpDirection;
// Token: 0x040031ED RID: 12781
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x40031ED")]
[Tooltip("Linking this offset to the FBBIK effectors")]
public HitReaction.HitPointEffector.EffectorLink[] effectorLinks;
// Token: 0x02000470 RID: 1136
[Token(Token = "0x2000470")]
[Serializable]
public class EffectorLink
{
// Token: 0x060028AE RID: 10414 RVA: 0x0003883F File Offset: 0x00036A3F
[Token(Token = "0x60028AE")]
[Address(RVA = "0x132C700", Offset = "0x132B500", VA = "0x18132C700")]
public void Apply(IKSolverFullBodyBiped solver, Vector3 offset, float crossFader)
{
}
// Token: 0x060028AF RID: 10415 RVA: 0x0003883F File Offset: 0x00036A3F
[Token(Token = "0x60028AF")]
[Address(RVA = "0x132C870", Offset = "0x132B670", VA = "0x18132C870")]
public void CrossFadeStart()
{
}
// Token: 0x060028B0 RID: 10416 RVA: 0x0003883F File Offset: 0x00036A3F
[Token(Token = "0x60028B0")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public EffectorLink()
{
}
// Token: 0x040031EE RID: 12782
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40031EE")]
[Tooltip("The FBBIK effector type")]
public FullBodyBipedEffector effector;
// Token: 0x040031EF RID: 12783
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x40031EF")]
[Tooltip("The weight of this effector (could also be negative)")]
public float weight;
// Token: 0x040031F0 RID: 12784
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40031F0")]
private Vector3 lastValue;
// Token: 0x040031F1 RID: 12785
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x40031F1")]
private Vector3 current;
}
}
// Token: 0x02000471 RID: 1137
[Token(Token = "0x2000471")]
[Serializable]
public class HitPointBone : HitReaction.HitPoint
{
// Token: 0x060028B1 RID: 10417 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028B1")]
[Address(RVA = "0x14EA5B0", Offset = "0x14E93B0", VA = "0x1814EA5B0", Slot = "4")]
protected override float GetLength()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028B2 RID: 10418 RVA: 0x00059974 File Offset: 0x00057B74
[Token(Token = "0x60028B2")]
[Address(RVA = "0x14EA550", Offset = "0x14E9350", VA = "0x1814EA550", Slot = "5")]
protected override void CrossFadeStart()
{
HitReaction.HitPointBone.BoneLink[] array = this.boneLinks;
int num = 0;
int length = array.Length;
if (num < length)
{
array[num].CrossFadeStart();
num++;
}
}
// Token: 0x060028B3 RID: 10419 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028B3")]
[Address(RVA = "0x14EA650", Offset = "0x14E9450", VA = "0x1814EA650", Slot = "6")]
protected override void OnApply(IKSolverFullBodyBiped solver, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028B4 RID: 10420 RVA: 0x000599AC File Offset: 0x00057BAC
[Token(Token = "0x60028B4")]
[Address(RVA = "0x14EA8B0", Offset = "0x14E96B0", VA = "0x1814EA8B0")]
public HitPointBone()
{
this.crossFadeTime = 0.1f;
base..ctor();
}
// Token: 0x040031F2 RID: 12786
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40031F2")]
[Tooltip("The angle to rotate the bone around it's rigidbody's world center of mass")]
public AnimationCurve aroundCenterOfMass;
// Token: 0x040031F3 RID: 12787
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x40031F3")]
[Tooltip("Linking this hit point to bone(s)")]
public HitReaction.HitPointBone.BoneLink[] boneLinks;
// Token: 0x040031F4 RID: 12788
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x40031F4")]
private Rigidbody rigidbody;
// Token: 0x02000472 RID: 1138
[Token(Token = "0x2000472")]
[Serializable]
public class BoneLink
{
// Token: 0x060028B5 RID: 10421 RVA: 0x0003883F File Offset: 0x00036A3F
[Token(Token = "0x60028B5")]
[Address(RVA = "0x132C590", Offset = "0x132B390", VA = "0x18132C590")]
public void Apply(IKSolverFullBodyBiped solver, Quaternion offset, float crossFader)
{
}
// Token: 0x060028B6 RID: 10422 RVA: 0x0003883F File Offset: 0x00036A3F
[Token(Token = "0x60028B6")]
[Address(RVA = "0x132C6B0", Offset = "0x132B4B0", VA = "0x18132C6B0")]
public void CrossFadeStart()
{
}
// Token: 0x060028B7 RID: 10423 RVA: 0x0003883F File Offset: 0x00036A3F
[Token(Token = "0x60028B7")]
[Address(RVA = "0x132C6C0", Offset = "0x132B4C0", VA = "0x18132C6C0")]
public BoneLink()
{
}
// Token: 0x040031F5 RID: 12789
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40031F5")]
[Tooltip("Reference to the bone that this hit point rotates")]
public Transform bone;
// Token: 0x040031F6 RID: 12790
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40031F6")]
[Tooltip("Weight of rotating the bone")]
[Range(0f, 1f)]
public float weight;
// Token: 0x040031F7 RID: 12791
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x40031F7")]
private Quaternion lastValue;
// Token: 0x040031F8 RID: 12792
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40031F8")]
private Quaternion current;
}
}
}
}

View File

@@ -0,0 +1,490 @@
using System;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000473 RID: 1139
[Token(Token = "0x2000473")]
public class HitReactionVRIK : OffsetModifierVRIK
{
// Token: 0x060028B8 RID: 10424 RVA: 0x000599CC File Offset: 0x00057BCC
[Token(Token = "0x60028B8")]
[Address(RVA = "0x117E490", Offset = "0x117D290", VA = "0x18117E490", Slot = "4")]
protected override void OnModifyOffset()
{
HitReactionVRIK.PositionOffset[] array = this.positionOffsets;
int num = 0;
int length = array.Length;
if (num < length)
{
HitReactionVRIK.PositionOffset positionOffset = array[num];
float weight = this.weight;
AnimationCurve[] array2 = this.offsetCurves;
VRIK ik = this.ik;
positionOffset.Apply(ik, array2, weight);
num++;
}
HitReactionVRIK.RotationOffset[] array3 = this.rotationOffsets;
int length2 = array3.Length;
if (num < length2)
{
HitReactionVRIK.RotationOffset rotationOffset = array3[num];
float weight2 = this.weight;
AnimationCurve[] array4 = this.offsetCurves;
VRIK ik2 = this.ik;
rotationOffset.Apply(ik2, array4, weight2);
num++;
}
}
// Token: 0x060028B9 RID: 10425 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028B9")]
[Address(RVA = "0x117E1F0", Offset = "0x117CFF0", VA = "0x18117E1F0")]
public void Hit(Collider collider, Vector3 force, Vector3 point)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028BA RID: 10426 RVA: 0x00059A6C File Offset: 0x00057C6C
[Token(Token = "0x60028BA")]
[Address(RVA = "0x8CD260", Offset = "0x8CC060", VA = "0x1808CD260")]
public HitReactionVRIK()
{
}
// Token: 0x040031F9 RID: 12793
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40031F9")]
public AnimationCurve[] offsetCurves;
// Token: 0x040031FA RID: 12794
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40031FA")]
[Tooltip("Hit points for the FBBIK effectors")]
public HitReactionVRIK.PositionOffset[] positionOffsets;
// Token: 0x040031FB RID: 12795
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40031FB")]
[Tooltip(" Hit points for bones without an effector, such as the head")]
public HitReactionVRIK.RotationOffset[] rotationOffsets;
// Token: 0x02000474 RID: 1140
[Token(Token = "0x2000474")]
[Serializable]
public abstract class Offset
{
// Token: 0x17000296 RID: 662
// (get) Token: 0x060028BB RID: 10427 RVA: 0x00059A80 File Offset: 0x00057C80
// (set) Token: 0x060028BC RID: 10428 RVA: 0x00059A94 File Offset: 0x00057C94
[Token(Token = "0x17000296")]
private protected float crossFader
{
[Token(Token = "0x60028BB")]
[Address(RVA = "0x5B0660", Offset = "0x5AF460", VA = "0x1805B0660")]
protected get;
[Token(Token = "0x60028BC")]
[Address(RVA = "0x5B0700", Offset = "0x5AF500", VA = "0x1805B0700")]
private set;
}
// Token: 0x17000297 RID: 663
// (get) Token: 0x060028BD RID: 10429 RVA: 0x00059AA8 File Offset: 0x00057CA8
// (set) Token: 0x060028BE RID: 10430 RVA: 0x00059ABC File Offset: 0x00057CBC
[Token(Token = "0x17000297")]
private protected float timer
{
[Token(Token = "0x60028BD")]
[Address(RVA = "0x5F9910", Offset = "0x5F8710", VA = "0x1805F9910")]
protected get;
[Token(Token = "0x60028BE")]
[Address(RVA = "0x5F9930", Offset = "0x5F8730", VA = "0x1805F9930")]
private set;
}
// Token: 0x17000298 RID: 664
// (get) Token: 0x060028BF RID: 10431 RVA: 0x000020D3 File Offset: 0x000002D3
// (set) Token: 0x060028C0 RID: 10432 RVA: 0x00059AD0 File Offset: 0x00057CD0
[Token(Token = "0x17000298")]
private protected Vector3 force
{
[Token(Token = "0x60028BF")]
[Address(RVA = "0x126EB40", Offset = "0x126D940", VA = "0x18126EB40")]
[CompilerGenerated]
protected get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
[Token(Token = "0x60028C0")]
[Address(RVA = "0x126EC30", Offset = "0x126DA30", VA = "0x18126EC30")]
[CompilerGenerated]
private set
{
float z = value.z;
this.<force>k__BackingField.z = z;
}
}
// Token: 0x17000299 RID: 665
// (get) Token: 0x060028C1 RID: 10433 RVA: 0x000020D3 File Offset: 0x000002D3
// (set) Token: 0x060028C2 RID: 10434 RVA: 0x00059AF0 File Offset: 0x00057CF0
[Token(Token = "0x17000299")]
private protected Vector3 point
{
[Token(Token = "0x60028C1")]
[Address(RVA = "0x38DAF0", Offset = "0x38C8F0", VA = "0x18038DAF0")]
[CompilerGenerated]
protected get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
[Token(Token = "0x60028C2")]
[Address(RVA = "0x38DB70", Offset = "0x38C970", VA = "0x18038DB70")]
[CompilerGenerated]
private set
{
float z = value.z;
this.<point>k__BackingField.z = z;
}
}
// Token: 0x060028C3 RID: 10435 RVA: 0x00059B10 File Offset: 0x00057D10
[Token(Token = "0x60028C3")]
[Address(RVA = "0x14F18B0", Offset = "0x14F06B0", VA = "0x1814F18B0")]
public void Hit(Vector3 force, AnimationCurve[] curves, Vector3 point)
{
int num = 0;
float num2 = this.GetLength(curves);
this.length = num2;
if (num < (int)num2)
{
int num3 = 0;
this.<crossFader>k__BackingField = (float)num3;
if (this.crossFadeTime > (float)num)
{
}
int num4 = 0;
this.crossFadeSpeed = (float)num4;
this.CrossFadeStart();
float z = force.z;
this.<force>k__BackingField.z = z;
float z2 = point.z;
this.<point>k__BackingField.z = z2;
this.<timer>k__BackingField = (float)num3;
}
Debug.LogError("Hit Point WeightCurve length is zero.");
}
// Token: 0x060028C4 RID: 10436 RVA: 0x00059B90 File Offset: 0x00057D90
[Token(Token = "0x60028C4")]
[Address(RVA = "0x14F17C0", Offset = "0x14F05C0", VA = "0x1814F17C0")]
public void Apply(VRIK ik, AnimationCurve[] curves, float weight)
{
float time = Time.time;
float time2 = Time.time;
float num = this.length;
this.lastTime = time2;
float num2 = this.<timer>k__BackingField;
if (num2 < num)
{
int num3 = 0;
int num4 = 0;
float num5 = Mathf.Clamp(num2, (float)num3, num);
this.<timer>k__BackingField = num5;
float num6 = this.crossFadeSpeed;
if (num6 <= (float)num4)
{
}
int num7 = 0;
float num8 = Mathf.Clamp(num6, (float)num7, 1f);
this.<crossFader>k__BackingField = num8;
this.OnApply(ik, curves, weight);
}
}
// Token: 0x060028C5 RID: 10437
[Token(Token = "0x60028C5")]
[Address(Slot = "4")]
protected abstract float GetLength(AnimationCurve[] curves);
// Token: 0x060028C6 RID: 10438
[Token(Token = "0x60028C6")]
[Address(Slot = "5")]
protected abstract void CrossFadeStart();
// Token: 0x060028C7 RID: 10439
[Token(Token = "0x60028C7")]
[Address(Slot = "6")]
protected abstract void OnApply(VRIK ik, AnimationCurve[] curves, float weight);
// Token: 0x060028C8 RID: 10440 RVA: 0x00059C18 File Offset: 0x00057E18
[Token(Token = "0x60028C8")]
[Address(RVA = "0x14EA8B0", Offset = "0x14E96B0", VA = "0x1814EA8B0")]
protected Offset()
{
}
// Token: 0x040031FC RID: 12796
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40031FC")]
[Tooltip("Just for visual clarity, not used at all")]
public string name;
// Token: 0x040031FD RID: 12797
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40031FD")]
[Tooltip("Linking this hit point to a collider")]
public Collider collider;
// Token: 0x040031FE RID: 12798
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40031FE")]
[SerializeField]
[Tooltip("Only used if this hit point gets hit when already processing another hit")]
private float crossFadeTime = 0.1f;
// Token: 0x04003203 RID: 12803
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x4003203")]
private float length;
// Token: 0x04003204 RID: 12804
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4003204")]
private float crossFadeSpeed;
// Token: 0x04003205 RID: 12805
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x4003205")]
private float lastTime;
}
// Token: 0x02000475 RID: 1141
[Token(Token = "0x2000475")]
[Serializable]
public class PositionOffset : HitReactionVRIK.Offset
{
// Token: 0x060028C9 RID: 10441 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028C9")]
[Address(RVA = "0x14F28D0", Offset = "0x14F16D0", VA = "0x1814F28D0", Slot = "4")]
protected override float GetLength(AnimationCurve[] curves)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028CA RID: 10442 RVA: 0x00059C38 File Offset: 0x00057E38
[Token(Token = "0x60028CA")]
[Address(RVA = "0x14F2870", Offset = "0x14F1670", VA = "0x1814F2870", Slot = "5")]
protected override void CrossFadeStart()
{
HitReactionVRIK.PositionOffset.PositionOffsetLink[] array = this.offsetLinks;
int num = 0;
int length = array.Length;
if (num < length)
{
array[num].CrossFadeStart();
num++;
}
}
// Token: 0x060028CB RID: 10443 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028CB")]
[Address(RVA = "0x14F2AF0", Offset = "0x14F18F0", VA = "0x1814F2AF0", Slot = "6")]
protected override void OnApply(VRIK ik, AnimationCurve[] curves, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028CC RID: 10444 RVA: 0x00059C70 File Offset: 0x00057E70
[Token(Token = "0x60028CC")]
[Address(RVA = "0x14F2D70", Offset = "0x14F1B70", VA = "0x1814F2D70")]
public PositionOffset()
{
this.crossFadeTime = 0.1f;
base..ctor();
}
// Token: 0x04003206 RID: 12806
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4003206")]
[Tooltip("Offset magnitude in the direction of the hit force")]
public int forceDirCurveIndex;
// Token: 0x04003207 RID: 12807
[FieldOffset(Offset = "0x54")]
[Token(Token = "0x4003207")]
[Tooltip("Offset magnitude in the direction of character.up")]
public int upDirCurveIndex = (int)((ulong)1L);
// Token: 0x04003208 RID: 12808
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4003208")]
[Tooltip("Linking this offset to the VRIK position offsets")]
public HitReactionVRIK.PositionOffset.PositionOffsetLink[] offsetLinks;
// Token: 0x02000476 RID: 1142
[Token(Token = "0x2000476")]
[Serializable]
public class PositionOffsetLink
{
// Token: 0x060028CD RID: 10445 RVA: 0x0003883F File Offset: 0x00036A3F
[Token(Token = "0x60028CD")]
[Address(RVA = "0x132D2E0", Offset = "0x132C0E0", VA = "0x18132D2E0")]
public void Apply(VRIK ik, Vector3 offset, float crossFader)
{
}
// Token: 0x060028CE RID: 10446 RVA: 0x0003883F File Offset: 0x00036A3F
[Token(Token = "0x60028CE")]
[Address(RVA = "0x132C870", Offset = "0x132B670", VA = "0x18132C870")]
public void CrossFadeStart()
{
}
// Token: 0x060028CF RID: 10447 RVA: 0x0003883F File Offset: 0x00036A3F
[Token(Token = "0x60028CF")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public PositionOffsetLink()
{
}
// Token: 0x04003209 RID: 12809
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003209")]
[Tooltip("The FBBIK effector type")]
public IKSolverVR.PositionOffset positionOffset;
// Token: 0x0400320A RID: 12810
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x400320A")]
[Tooltip("The weight of this effector (could also be negative)")]
public float weight;
// Token: 0x0400320B RID: 12811
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400320B")]
private Vector3 lastValue;
// Token: 0x0400320C RID: 12812
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x400320C")]
private Vector3 current;
}
}
// Token: 0x02000477 RID: 1143
[Token(Token = "0x2000477")]
[Serializable]
public class RotationOffset : HitReactionVRIK.Offset
{
// Token: 0x060028D0 RID: 10448 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028D0")]
[Address(RVA = "0x14F2F10", Offset = "0x14F1D10", VA = "0x1814F2F10", Slot = "4")]
protected override float GetLength(AnimationCurve[] curves)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028D1 RID: 10449 RVA: 0x00059C98 File Offset: 0x00057E98
[Token(Token = "0x60028D1")]
[Address(RVA = "0x14F2EB0", Offset = "0x14F1CB0", VA = "0x1814F2EB0", Slot = "5")]
protected override void CrossFadeStart()
{
HitReactionVRIK.RotationOffset.RotationOffsetLink[] array = this.offsetLinks;
int num = 0;
int length = array.Length;
if (num < length)
{
array[num].CrossFadeStart();
num++;
}
}
// Token: 0x060028D2 RID: 10450 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028D2")]
[Address(RVA = "0x14F3030", Offset = "0x14F1E30", VA = "0x1814F3030", Slot = "6")]
protected override void OnApply(VRIK ik, AnimationCurve[] curves, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028D3 RID: 10451 RVA: 0x00059CD0 File Offset: 0x00057ED0
[Token(Token = "0x60028D3")]
[Address(RVA = "0x14EA8B0", Offset = "0x14E96B0", VA = "0x1814EA8B0")]
public RotationOffset()
{
this.crossFadeTime = 0.1f;
base..ctor();
}
// Token: 0x0400320D RID: 12813
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x400320D")]
[Tooltip("The angle to rotate the bone around it's rigidbody's world center of mass")]
public int curveIndex;
// Token: 0x0400320E RID: 12814
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x400320E")]
[Tooltip("Linking this hit point to bone(s)")]
public HitReactionVRIK.RotationOffset.RotationOffsetLink[] offsetLinks;
// Token: 0x0400320F RID: 12815
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x400320F")]
private Rigidbody rigidbody;
// Token: 0x02000478 RID: 1144
[Token(Token = "0x2000478")]
[Serializable]
public class RotationOffsetLink
{
// Token: 0x060028D4 RID: 10452 RVA: 0x0003883F File Offset: 0x00036A3F
[Token(Token = "0x60028D4")]
[Address(RVA = "0x132EA20", Offset = "0x132D820", VA = "0x18132EA20")]
public void Apply(VRIK ik, Quaternion offset, float crossFader)
{
}
// Token: 0x060028D5 RID: 10453 RVA: 0x0003883F File Offset: 0x00036A3F
[Token(Token = "0x60028D5")]
[Address(RVA = "0x132EB10", Offset = "0x132D910", VA = "0x18132EB10")]
public void CrossFadeStart()
{
}
// Token: 0x060028D6 RID: 10454 RVA: 0x0003883F File Offset: 0x00036A3F
[Token(Token = "0x60028D6")]
[Address(RVA = "0x132EB20", Offset = "0x132D920", VA = "0x18132EB20")]
public RotationOffsetLink()
{
}
// Token: 0x04003210 RID: 12816
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003210")]
[Tooltip("Reference to the bone that this hit point rotates")]
public IKSolverVR.RotationOffset rotationOffset;
// Token: 0x04003211 RID: 12817
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4003211")]
[Range(0f, 1f)]
[Tooltip("Weight of rotating the bone")]
public float weight;
// Token: 0x04003212 RID: 12818
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4003212")]
private Quaternion lastValue;
// Token: 0x04003213 RID: 12819
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4003213")]
private Quaternion current;
}
}
}
}

View File

@@ -0,0 +1,93 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200040B RID: 1035
[Token(Token = "0x200040B")]
public abstract class IK : SolverManager
{
// Token: 0x06002513 RID: 9491
[Token(Token = "0x6002513")]
[Address(Slot = "7")]
public abstract IKSolver GetIKSolver();
// Token: 0x06002514 RID: 9492 RVA: 0x00053DCC File Offset: 0x00051FCC
[Token(Token = "0x6002514")]
[Address(RVA = "0x1186D00", Offset = "0x1185B00", VA = "0x181186D00", Slot = "5")]
protected override void UpdateSolver()
{
if (!this.GetIKSolver().<initiated>k__BackingField)
{
this.InitiateSolver();
}
if (this.GetIKSolver().<initiated>k__BackingField)
{
IKSolver iksolver = this.GetIKSolver();
IKSolver.UpdateDelegate onPreUpdate = iksolver.OnPreUpdate;
if (onPreUpdate != 0)
{
onPreUpdate();
}
if (iksolver.firstInitiation)
{
Transform root = iksolver.root;
iksolver.Initiate(root);
}
if (iksolver.<initiated>k__BackingField)
{
iksolver.OnUpdate();
IKSolver.UpdateDelegate onPostUpdate = iksolver.OnPostUpdate;
if (onPostUpdate != 0)
{
onPostUpdate();
return;
}
}
}
}
// Token: 0x06002515 RID: 9493 RVA: 0x00053E54 File Offset: 0x00052054
[Token(Token = "0x6002515")]
[Address(RVA = "0x1186C90", Offset = "0x1185A90", VA = "0x181186C90", Slot = "4")]
protected override void InitiateSolver()
{
if (!this.GetIKSolver().<initiated>k__BackingField)
{
IKSolver iksolver = this.GetIKSolver();
Transform transform = base.transform;
iksolver.Initiate(transform);
}
}
// Token: 0x06002516 RID: 9494 RVA: 0x00053E8C File Offset: 0x0005208C
[Token(Token = "0x6002516")]
[Address(RVA = "0x1186C20", Offset = "0x1185A20", VA = "0x181186C20", Slot = "6")]
protected override void FixTransforms()
{
if (this.GetIKSolver().<initiated>k__BackingField)
{
IKSolver.Point[] points = this.GetIKSolver().GetPoints();
return;
}
}
// Token: 0x06002517 RID: 9495
[Token(Token = "0x6002517")]
[Address(Slot = "8")]
protected abstract void OpenUserManual();
// Token: 0x06002518 RID: 9496
[Token(Token = "0x6002518")]
[Address(Slot = "9")]
protected abstract void OpenScriptReference();
// Token: 0x06002519 RID: 9497 RVA: 0x00053EBC File Offset: 0x000520BC
[Token(Token = "0x6002519")]
[Address(RVA = "0x1186DE0", Offset = "0x1185BE0", VA = "0x181186DE0")]
protected IK()
{
}
}
}

View File

@@ -0,0 +1,219 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200041A RID: 1050
[Token(Token = "0x200041A")]
[Serializable]
public class IKConstraintBend
{
// Token: 0x0600257E RID: 9598 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600257E")]
[Address(RVA = "0x117FC60", Offset = "0x117EA60", VA = "0x18117FC60")]
public bool IsValid(IKSolverFullBody solver, Warning.Logger logger)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x1700022C RID: 556
// (get) Token: 0x0600257F RID: 9599 RVA: 0x00054ADC File Offset: 0x00052CDC
// (set) Token: 0x06002580 RID: 9600 RVA: 0x00054AF0 File Offset: 0x00052CF0
[Token(Token = "0x1700022C")]
public bool initiated
{
[Token(Token = "0x600257F")]
[Address(RVA = "0x3F9A10", Offset = "0x3F8810", VA = "0x1803F9A10")]
get;
[Token(Token = "0x6002580")]
[Address(RVA = "0x709E30", Offset = "0x708C30", VA = "0x180709E30")]
private set;
}
// Token: 0x06002581 RID: 9601 RVA: 0x00054B04 File Offset: 0x00052D04
[Token(Token = "0x6002581")]
[Address(RVA = "0x1180870", Offset = "0x117F670", VA = "0x181180870")]
public IKConstraintBend()
{
float z = Vector3.right.z;
this.direction.z = z;
this.clampF = 0.505f;
base..ctor();
}
// Token: 0x06002582 RID: 9602 RVA: 0x00054B3C File Offset: 0x00052D3C
[Token(Token = "0x6002582")]
[Address(RVA = "0x11808B0", Offset = "0x117F6B0", VA = "0x1811808B0")]
public IKConstraintBend(Transform bone1, Transform bone2, Transform bone3)
{
/*
An exception occurred when decompiling this method (06002582)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.IKConstraintBend::.ctor(UnityEngine.Transform,UnityEngine.Transform,UnityEngine.Transform)
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; stloc:float32(var_0_0A, ldfld:float32(Vector3::z, callgetter:Vector3[exp:valuetype [UnityEngine.CoreModule]UnityEngine.Vector3&](Vector3::get_right))); stfld:float32(Vector3::z, ldfld:Vector3[exp:valuetype [UnityEngine.CoreModule]UnityEngine.Vector3&](IKConstraintBend::direction, ldloc:IKConstraintBend(this)), ldloc:float32(var_0_0A)); stfld:float32(IKConstraintBend::clampF, ldloc:IKConstraintBend(this), ldc.r4:float32(0.505)); call:void(object::.ctor, ldloc:IKConstraintBend[exp:object](this)); stfld:Transform(IKConstraintBend::bone1, ldloc:IKConstraintBend(this), ldloc:Transform(bone1)); stfld:Transform(IKConstraintBend::bone2, ldloc:IKConstraintBend(this), ldloc:Transform(bone2)); stfld:Transform(IKConstraintBend::bone3, ldloc:IKConstraintBend(this), ldloc:Transform(bone3)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
// Token: 0x06002583 RID: 9603 RVA: 0x00054B88 File Offset: 0x00052D88
[Token(Token = "0x6002583")]
[Address(RVA = "0x1180600", Offset = "0x117F400", VA = "0x181180600")]
public void SetBones(Transform bone1, Transform bone2, Transform bone3)
{
/*
An exception occurred when decompiling this method (06002583)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.IKConstraintBend::SetBones(UnityEngine.Transform,UnityEngine.Transform,UnityEngine.Transform)
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; stfld:Transform(IKConstraintBend::bone1, ldloc:IKConstraintBend(this), ldloc:Transform(bone1)); stfld:Transform(IKConstraintBend::bone2, ldloc:IKConstraintBend(this), ldloc:Transform(bone2)); stfld:Transform(IKConstraintBend::bone3, ldloc:IKConstraintBend(this), ldloc:Transform(bone3)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
// Token: 0x06002584 RID: 9604 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002584")]
[Address(RVA = "0x117F7D0", Offset = "0x117E5D0", VA = "0x18117F7D0")]
public void Initiate(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002585 RID: 9605 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002585")]
[Address(RVA = "0x1180660", Offset = "0x117F460", VA = "0x181180660")]
public void SetLimbOrientation(Vector3 upper, Vector3 lower, Vector3 last)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002586 RID: 9606 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002586")]
[Address(RVA = "0x117FEB0", Offset = "0x117ECB0", VA = "0x18117FEB0")]
public void LimitBend(float solverWeight, float positionWeight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002587 RID: 9607 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002587")]
[Address(RVA = "0x117EFE0", Offset = "0x117DDE0", VA = "0x18117EFE0")]
public Vector3 GetDir(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002588 RID: 9608 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002588")]
[Address(RVA = "0x1180500", Offset = "0x117F300", VA = "0x181180500")]
private Vector3 OrthoToLimb(IKSolverFullBody solver, Vector3 tangent)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002589 RID: 9609 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002589")]
[Address(RVA = "0x1180410", Offset = "0x117F210", VA = "0x181180410")]
private Vector3 OrthoToBone1(IKSolverFullBody solver, Vector3 tangent)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04002F20 RID: 12064
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002F20")]
public Transform bone1;
// Token: 0x04002F21 RID: 12065
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002F21")]
public Transform bone2;
// Token: 0x04002F22 RID: 12066
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002F22")]
public Transform bone3;
// Token: 0x04002F23 RID: 12067
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4002F23")]
public Transform bendGoal;
// Token: 0x04002F24 RID: 12068
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4002F24")]
public Vector3 direction;
// Token: 0x04002F25 RID: 12069
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x4002F25")]
public Quaternion rotationOffset;
// Token: 0x04002F26 RID: 12070
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x4002F26")]
[Range(0f, 1f)]
public float weight;
// Token: 0x04002F27 RID: 12071
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4002F27")]
public Vector3 defaultLocalDirection;
// Token: 0x04002F28 RID: 12072
[FieldOffset(Offset = "0x5C")]
[Token(Token = "0x4002F28")]
public Vector3 defaultChildDirection;
// Token: 0x04002F29 RID: 12073
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4002F29")]
[NonSerialized]
public float clampF;
// Token: 0x04002F2A RID: 12074
[FieldOffset(Offset = "0x6C")]
[Token(Token = "0x4002F2A")]
private int chainIndex1;
// Token: 0x04002F2B RID: 12075
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4002F2B")]
private int nodeIndex1;
// Token: 0x04002F2C RID: 12076
[FieldOffset(Offset = "0x74")]
[Token(Token = "0x4002F2C")]
private int chainIndex2;
// Token: 0x04002F2D RID: 12077
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4002F2D")]
private int nodeIndex2;
// Token: 0x04002F2E RID: 12078
[FieldOffset(Offset = "0x7C")]
[Token(Token = "0x4002F2E")]
private int chainIndex3;
// Token: 0x04002F2F RID: 12079
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x4002F2F")]
private int nodeIndex3;
}
}

View File

@@ -0,0 +1,310 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200041B RID: 1051
[Token(Token = "0x200041B")]
[Serializable]
public class IKEffector
{
// Token: 0x0600258A RID: 9610 RVA: 0x00054BAC File Offset: 0x00052DAC
[Token(Token = "0x600258A")]
[Address(RVA = "0x1180940", Offset = "0x117F740", VA = "0x181180940")]
public IKSolver.Node GetNode(IKSolverFullBody solver)
{
FBIKChain[] chain = solver.chain;
int num = this.chainIndex;
IKSolver.Node[] nodes = chain[num].nodes;
int num2 = this.nodeIndex;
return nodes[num2];
}
// Token: 0x1700022D RID: 557
// (get) Token: 0x0600258B RID: 9611 RVA: 0x00054BE8 File Offset: 0x00052DE8
// (set) Token: 0x0600258C RID: 9612 RVA: 0x00054BFC File Offset: 0x00052DFC
[Token(Token = "0x1700022D")]
public bool isEndEffector
{
[Token(Token = "0x600258B")]
[Address(RVA = "0x4F8000", Offset = "0x4F6E00", VA = "0x1804F8000")]
get;
[Token(Token = "0x600258C")]
[Address(RVA = "0x6FCDB0", Offset = "0x6FBBB0", VA = "0x1806FCDB0")]
private set;
}
// Token: 0x0600258D RID: 9613 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600258D")]
[Address(RVA = "0x1182030", Offset = "0x1180E30", VA = "0x181182030")]
public void PinToBone(float positionWeight, float rotationWeight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600258E RID: 9614 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600258E")]
[Address(RVA = "0x11826D0", Offset = "0x11814D0", VA = "0x1811826D0")]
public IKEffector()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600258F RID: 9615 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600258F")]
[Address(RVA = "0x1182820", Offset = "0x1181620", VA = "0x181182820")]
public IKEffector(Transform bone, Transform[] childBones)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002590 RID: 9616 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002590")]
[Address(RVA = "0x1181520", Offset = "0x1180320", VA = "0x181181520")]
public bool IsValid(IKSolver solver, ref string message)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002591 RID: 9617 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002591")]
[Address(RVA = "0x11811B0", Offset = "0x117FFB0", VA = "0x1811811B0")]
public void Initiate(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002592 RID: 9618 RVA: 0x00054C10 File Offset: 0x00052E10
[Token(Token = "0x6002592")]
[Address(RVA = "0x11820E0", Offset = "0x1180EE0", VA = "0x1811820E0")]
public void ResetOffset(IKSolverFullBody solver)
{
int num = this.nodeIndex;
int num2 = this.chainIndex;
IKSolver.Node node = solver.GetNode(num2, num);
float z = Vector3.zero.z;
node.offset.z = z;
int num3 = 0;
int[] array = this.childChainIndexes;
if (num3 < array.Length)
{
int num4 = this.childNodeIndexes[num3];
int num5 = array[num3];
IKSolver.Node node2 = solver.GetNode(num5, num4);
Vector3 zero = Vector3.zero;
num3++;
float z2 = zero.z;
node2.offset.z = z2;
int[] array2 = this.childChainIndexes;
}
}
// Token: 0x06002593 RID: 9619 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002593")]
[Address(RVA = "0x1182210", Offset = "0x1181010", VA = "0x181182210")]
public void SetToTarget()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002594 RID: 9620 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002594")]
[Address(RVA = "0x11818B0", Offset = "0x11806B0", VA = "0x1811818B0")]
public void OnPreSolve(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002595 RID: 9621 RVA: 0x00054CBC File Offset: 0x00052EBC
[Token(Token = "0x6002595")]
[Address(RVA = "0x1181880", Offset = "0x1180680", VA = "0x181181880")]
public void OnPostWrite()
{
float z = Vector3.zero.z;
this.positionOffset.z = z;
}
// Token: 0x06002596 RID: 9622 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002596")]
[Address(RVA = "0x11809B0", Offset = "0x117F7B0", VA = "0x1811809B0")]
private Quaternion GetPlaneRotation(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002597 RID: 9623 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002597")]
[Address(RVA = "0x11822C0", Offset = "0x11810C0", VA = "0x1811822C0")]
public void Update(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002598 RID: 9624 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002598")]
[Address(RVA = "0x1180C10", Offset = "0x117FA10", VA = "0x181180C10")]
private Vector3 GetPosition(IKSolverFullBody solver, out Quaternion planeRotationOffset)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04002F31 RID: 12081
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002F31")]
public Transform bone;
// Token: 0x04002F32 RID: 12082
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002F32")]
public Transform target;
// Token: 0x04002F33 RID: 12083
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002F33")]
[Range(0f, 1f)]
public float positionWeight;
// Token: 0x04002F34 RID: 12084
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x4002F34")]
[Range(0f, 1f)]
public float rotationWeight;
// Token: 0x04002F35 RID: 12085
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4002F35")]
public Vector3 position;
// Token: 0x04002F36 RID: 12086
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x4002F36")]
public Quaternion rotation;
// Token: 0x04002F37 RID: 12087
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x4002F37")]
public Vector3 positionOffset;
// Token: 0x04002F39 RID: 12089
[FieldOffset(Offset = "0x51")]
[Token(Token = "0x4002F39")]
public bool effectChildNodes;
// Token: 0x04002F3A RID: 12090
[FieldOffset(Offset = "0x54")]
[Token(Token = "0x4002F3A")]
[Range(0f, 1f)]
public float maintainRelativePositionWeight;
// Token: 0x04002F3B RID: 12091
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4002F3B")]
public Transform[] childBones;
// Token: 0x04002F3C RID: 12092
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002F3C")]
public Transform planeBone1;
// Token: 0x04002F3D RID: 12093
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4002F3D")]
public Transform planeBone2;
// Token: 0x04002F3E RID: 12094
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4002F3E")]
public Transform planeBone3;
// Token: 0x04002F3F RID: 12095
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4002F3F")]
public Quaternion planeRotationOffset;
// Token: 0x04002F40 RID: 12096
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x4002F40")]
private float posW;
// Token: 0x04002F41 RID: 12097
[FieldOffset(Offset = "0x8C")]
[Token(Token = "0x4002F41")]
private float rotW;
// Token: 0x04002F42 RID: 12098
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x4002F42")]
private Vector3[] localPositions;
// Token: 0x04002F43 RID: 12099
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x4002F43")]
private bool usePlaneNodes;
// Token: 0x04002F44 RID: 12100
[FieldOffset(Offset = "0x9C")]
[Token(Token = "0x4002F44")]
private Quaternion animatedPlaneRotation;
// Token: 0x04002F45 RID: 12101
[FieldOffset(Offset = "0xAC")]
[Token(Token = "0x4002F45")]
private Vector3 animatedPosition;
// Token: 0x04002F46 RID: 12102
[FieldOffset(Offset = "0xB8")]
[Token(Token = "0x4002F46")]
private bool firstUpdate;
// Token: 0x04002F47 RID: 12103
[FieldOffset(Offset = "0xBC")]
[Token(Token = "0x4002F47")]
private int chainIndex;
// Token: 0x04002F48 RID: 12104
[FieldOffset(Offset = "0xC0")]
[Token(Token = "0x4002F48")]
private int nodeIndex;
// Token: 0x04002F49 RID: 12105
[FieldOffset(Offset = "0xC4")]
[Token(Token = "0x4002F49")]
private int plane1ChainIndex;
// Token: 0x04002F4A RID: 12106
[FieldOffset(Offset = "0xC8")]
[Token(Token = "0x4002F4A")]
private int plane1NodeIndex;
// Token: 0x04002F4B RID: 12107
[FieldOffset(Offset = "0xCC")]
[Token(Token = "0x4002F4B")]
private int plane2ChainIndex;
// Token: 0x04002F4C RID: 12108
[FieldOffset(Offset = "0xD0")]
[Token(Token = "0x4002F4C")]
private int plane2NodeIndex;
// Token: 0x04002F4D RID: 12109
[FieldOffset(Offset = "0xD4")]
[Token(Token = "0x4002F4D")]
private int plane3ChainIndex;
// Token: 0x04002F4E RID: 12110
[FieldOffset(Offset = "0xD8")]
[Token(Token = "0x4002F4E")]
private int plane3NodeIndex;
// Token: 0x04002F4F RID: 12111
[FieldOffset(Offset = "0xE0")]
[Token(Token = "0x4002F4F")]
private int[] childChainIndexes;
// Token: 0x04002F50 RID: 12112
[FieldOffset(Offset = "0xE8")]
[Token(Token = "0x4002F50")]
private int[] childNodeIndexes;
}
}

View File

@@ -0,0 +1,136 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200040C RID: 1036
[Token(Token = "0x200040C")]
public class IKExecutionOrder : MonoBehaviour
{
// Token: 0x17000227 RID: 551
// (get) Token: 0x0600251A RID: 9498 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000227")]
private bool animatePhysics
{
[Token(Token = "0x600251A")]
[Address(RVA = "0x1182C70", Offset = "0x1181A70", VA = "0x181182C70")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x0600251B RID: 9499 RVA: 0x00053ED0 File Offset: 0x000520D0
[Token(Token = "0x600251B")]
[Address(RVA = "0x1182BC0", Offset = "0x11819C0", VA = "0x181182BC0")]
private void Start()
{
IK[] ikcomponents = this.IKComponents;
int num = 0;
if (num < ikcomponents.Length)
{
IK ik = ikcomponents[num];
int num2 = 0;
ik.enabled = num2 != 0;
IK[] ikcomponents2 = this.IKComponents;
num++;
}
}
// Token: 0x0600251C RID: 9500 RVA: 0x00053F14 File Offset: 0x00052114
[Token(Token = "0x600251C")]
[Address(RVA = "0x1182C40", Offset = "0x1181A40", VA = "0x181182C40")]
private void Update()
{
if (!this.animatePhysics)
{
this.FixTransforms();
return;
}
}
// Token: 0x0600251D RID: 9501 RVA: 0x00053F34 File Offset: 0x00052134
[Token(Token = "0x600251D")]
[Address(RVA = "0x1182A70", Offset = "0x1181870", VA = "0x181182A70")]
private void FixedUpdate()
{
this.fixedFrame = true;
if (this.animatePhysics)
{
this.FixTransforms();
return;
}
}
// Token: 0x0600251E RID: 9502 RVA: 0x00053F58 File Offset: 0x00052158
[Token(Token = "0x600251E")]
[Address(RVA = "0x1182AA0", Offset = "0x11818A0", VA = "0x181182AA0")]
private void LateUpdate()
{
if (!this.animatePhysics || this.fixedFrame)
{
IK[] ikcomponents = this.IKComponents;
int num = 0;
if (num < ikcomponents.Length)
{
IKSolver iksolver = ikcomponents[num].GetIKSolver();
IKSolver.UpdateDelegate onPreUpdate = iksolver.OnPreUpdate;
if (onPreUpdate != 0)
{
onPreUpdate();
}
if (iksolver.firstInitiation)
{
Transform root = iksolver.root;
iksolver.Initiate(root);
}
if (iksolver.<initiated>k__BackingField)
{
iksolver.OnUpdate();
IKSolver.UpdateDelegate onPostUpdate = iksolver.OnPostUpdate;
if (onPostUpdate != 0)
{
onPostUpdate();
}
}
IK[] ikcomponents2 = this.IKComponents;
num++;
}
this.fixedFrame = false;
}
}
// Token: 0x0600251F RID: 9503 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600251F")]
[Address(RVA = "0x11829C0", Offset = "0x11817C0", VA = "0x1811829C0")]
private void FixTransforms()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002520 RID: 9504 RVA: 0x00054000 File Offset: 0x00052200
[Token(Token = "0x6002520")]
[Address(RVA = "0x3088F0", Offset = "0x3076F0", VA = "0x1803088F0")]
public IKExecutionOrder()
{
}
// Token: 0x04002E9F RID: 11935
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002E9F")]
[Tooltip("The IK components, assign in the order in which you wish to update them.")]
public IK[] IKComponents;
// Token: 0x04002EA0 RID: 11936
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002EA0")]
[Tooltip("Optional. Assign it if you are using 'Animate Physics' as the Update Mode.")]
public Animator animator;
// Token: 0x04002EA1 RID: 11937
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4002EA1")]
private bool fixedFrame;
}
}

View File

@@ -0,0 +1,392 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200041C RID: 1052
[Token(Token = "0x200041C")]
[Serializable]
public class IKMapping
{
// Token: 0x06002599 RID: 9625 RVA: 0x00054CE0 File Offset: 0x00052EE0
[Token(Token = "0x6002599")]
[Address(RVA = "0x454840", Offset = "0x453640", VA = "0x180454840", Slot = "4")]
public virtual bool IsValid(IKSolver solver, ref string message)
{
return true;
}
// Token: 0x0600259A RID: 9626 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600259A")]
[Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00", Slot = "5")]
public virtual void Initiate(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600259B RID: 9627 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600259B")]
[Address(RVA = "0x11861B0", Offset = "0x1184FB0", VA = "0x1811861B0")]
protected bool BoneIsValid(Transform bone, IKSolver solver, ref string message, [Optional] Warning.Logger logger)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600259C RID: 9628 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600259C")]
[Address(RVA = "0x4BA4D0", Offset = "0x4B92D0", VA = "0x1804BA4D0")]
protected Vector3 SolveFABRIKJoint(Vector3 pos1, Vector3 pos2, float length)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600259D RID: 9629 RVA: 0x00054CF0 File Offset: 0x00052EF0
[Token(Token = "0x600259D")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public IKMapping()
{
int num = 0;
this.Initiate(num);
}
// Token: 0x0200041D RID: 1053
[Token(Token = "0x200041D")]
[Serializable]
public class BoneMap
{
// Token: 0x0600259E RID: 9630 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600259E")]
[Address(RVA = "0x14E6FB0", Offset = "0x14E5DB0", VA = "0x1814E6FB0")]
public void Initiate(Transform transform, IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x1700022E RID: 558
// (get) Token: 0x0600259F RID: 9631 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x1700022E")]
public Vector3 swingDirection
{
[Token(Token = "0x600259F")]
[Address(RVA = "0x14E84C0", Offset = "0x14E72C0", VA = "0x1814E84C0")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x060025A0 RID: 9632 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025A0")]
[Address(RVA = "0x5FCAF0", Offset = "0x5FB8F0", VA = "0x1805FCAF0")]
public void StoreDefaultLocalState()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025A1 RID: 9633 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025A1")]
[Address(RVA = "0x14E6C90", Offset = "0x14E5A90", VA = "0x1814E6C90")]
public void FixTransform(bool position)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x1700022F RID: 559
// (get) Token: 0x060025A2 RID: 9634 RVA: 0x00054D08 File Offset: 0x00052F08
[Token(Token = "0x1700022F")]
public bool isNodeBone
{
[Token(Token = "0x60025A2")]
[Address(RVA = "0x14E8290", Offset = "0x14E7090", VA = "0x1814E8290")]
get
{
return this.nodeIndex != -1;
}
}
// Token: 0x060025A3 RID: 9635 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025A3")]
[Address(RVA = "0x14E7470", Offset = "0x14E6270", VA = "0x1814E7470")]
public void SetLength(IKMapping.BoneMap nextBone)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025A4 RID: 9636 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025A4")]
[Address(RVA = "0x14E7670", Offset = "0x14E6470", VA = "0x1814E7670")]
public void SetLocalSwingAxis(IKMapping.BoneMap swingTarget)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025A5 RID: 9637 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025A5")]
[Address(RVA = "0x14E7520", Offset = "0x14E6320", VA = "0x1814E7520")]
public void SetLocalSwingAxis(IKMapping.BoneMap bone1, IKMapping.BoneMap bone2)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025A6 RID: 9638 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025A6")]
[Address(RVA = "0x14E77B0", Offset = "0x14E65B0", VA = "0x1814E77B0")]
public void SetLocalTwistAxis(Vector3 twistDirection, Vector3 normalDirection)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025A7 RID: 9639 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025A7")]
[Address(RVA = "0x14E7850", Offset = "0x14E6650", VA = "0x1814E7850")]
public void SetPlane(IKSolverFullBody solver, Transform planeBone1, Transform planeBone2, Transform planeBone3)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025A8 RID: 9640 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025A8")]
[Address(RVA = "0x14E7EF0", Offset = "0x14E6CF0", VA = "0x1814E7EF0")]
public void UpdatePlane(bool rotation, bool position)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025A9 RID: 9641 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025A9")]
[Address(RVA = "0x14E7430", Offset = "0x14E6230", VA = "0x1814E7430")]
public void SetIKPosition()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025AA RID: 9642 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025AA")]
[Address(RVA = "0x14E7010", Offset = "0x14E5E10", VA = "0x1814E7010")]
public void MaintainRotation()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025AB RID: 9643 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025AB")]
[Address(RVA = "0x14E7960", Offset = "0x14E6760", VA = "0x1814E7960")]
public void SetToIKPosition()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025AC RID: 9644 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025AC")]
[Address(RVA = "0x14E6B20", Offset = "0x14E5920", VA = "0x1814E6B20")]
public void FixToNode(IKSolverFullBody solver, float weight, [Optional] IKSolver.Node fixNode)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025AD RID: 9645 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025AD")]
[Address(RVA = "0x14E6CF0", Offset = "0x14E5AF0", VA = "0x1814E6CF0")]
public Vector3 GetPlanePosition(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025AE RID: 9646 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025AE")]
[Address(RVA = "0x14E7050", Offset = "0x14E5E50", VA = "0x1814E7050")]
public void PositionToPlane(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025AF RID: 9647 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025AF")]
[Address(RVA = "0x14E7360", Offset = "0x14E6160", VA = "0x1814E7360")]
public void RotateToPlane(IKSolverFullBody solver, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025B0 RID: 9648 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025B0")]
[Address(RVA = "0x14E79A0", Offset = "0x14E67A0", VA = "0x1814E79A0")]
public void Swing(Vector3 swingTarget, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025B1 RID: 9649 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025B1")]
[Address(RVA = "0x14E7B80", Offset = "0x14E6980", VA = "0x1814E7B80")]
public void Swing(Vector3 pos1, Vector3 pos2, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025B2 RID: 9650 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025B2")]
[Address(RVA = "0x14E7D70", Offset = "0x14E6B70", VA = "0x1814E7D70")]
public void Twist(Vector3 twistDirection, Vector3 normalDirection, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025B3 RID: 9651 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025B3")]
[Address(RVA = "0x14E72D0", Offset = "0x14E60D0", VA = "0x1814E72D0")]
public void RotateToMaintain(float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025B4 RID: 9652 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025B4")]
[Address(RVA = "0x14E7190", Offset = "0x14E5F90", VA = "0x1814E7190")]
public void RotateToEffector(IKSolverFullBody solver, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025B5 RID: 9653 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025B5")]
[Address(RVA = "0x14E6E00", Offset = "0x14E5C00", VA = "0x1814E6E00")]
private Quaternion GetTargetRotation(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17000230 RID: 560
// (get) Token: 0x060025B6 RID: 9654 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000230")]
private Quaternion lastAnimatedTargetRotation
{
[Token(Token = "0x60025B6")]
[Address(RVA = "0x14E82A0", Offset = "0x14E70A0", VA = "0x1814E82A0")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x060025B7 RID: 9655 RVA: 0x00054D24 File Offset: 0x00052F24
[Token(Token = "0x60025B7")]
[Address(RVA = "0x14E8260", Offset = "0x14E7060", VA = "0x1814E8260")]
public BoneMap()
{
}
// Token: 0x04002F51 RID: 12113
[Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002F51")]
public Transform transform;
// Token: 0x04002F52 RID: 12114
[Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002F52")]
public int chainIndex = (int)((ulong)(-1L));
// Token: 0x04002F53 RID: 12115
[Cpp2IlInjected.FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4002F53")]
public int nodeIndex;
// Token: 0x04002F54 RID: 12116
[Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002F54")]
public Vector3 defaultLocalPosition;
// Token: 0x04002F55 RID: 12117
[Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4002F55")]
public Quaternion defaultLocalRotation;
// Token: 0x04002F56 RID: 12118
[Cpp2IlInjected.FieldOffset(Offset = "0x3C")]
[Token(Token = "0x4002F56")]
public Vector3 localSwingAxis;
// Token: 0x04002F57 RID: 12119
[Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4002F57")]
public Vector3 localTwistAxis;
// Token: 0x04002F58 RID: 12120
[Cpp2IlInjected.FieldOffset(Offset = "0x54")]
[Token(Token = "0x4002F58")]
public Vector3 planePosition;
// Token: 0x04002F59 RID: 12121
[Cpp2IlInjected.FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002F59")]
public Vector3 ikPosition;
// Token: 0x04002F5A RID: 12122
[Cpp2IlInjected.FieldOffset(Offset = "0x6C")]
[Token(Token = "0x4002F5A")]
public Quaternion defaultLocalTargetRotation;
// Token: 0x04002F5B RID: 12123
[Cpp2IlInjected.FieldOffset(Offset = "0x7C")]
[Token(Token = "0x4002F5B")]
private Quaternion maintainRotation;
// Token: 0x04002F5C RID: 12124
[Cpp2IlInjected.FieldOffset(Offset = "0x8C")]
[Token(Token = "0x4002F5C")]
public float length;
// Token: 0x04002F5D RID: 12125
[Cpp2IlInjected.FieldOffset(Offset = "0x90")]
[Token(Token = "0x4002F5D")]
public Quaternion animatedRotation;
// Token: 0x04002F5E RID: 12126
[Cpp2IlInjected.FieldOffset(Offset = "0xA0")]
[Token(Token = "0x4002F5E")]
private Transform planeBone1;
// Token: 0x04002F5F RID: 12127
[Cpp2IlInjected.FieldOffset(Offset = "0xA8")]
[Token(Token = "0x4002F5F")]
private Transform planeBone2;
// Token: 0x04002F60 RID: 12128
[Cpp2IlInjected.FieldOffset(Offset = "0xB0")]
[Token(Token = "0x4002F60")]
private Transform planeBone3;
// Token: 0x04002F61 RID: 12129
[Cpp2IlInjected.FieldOffset(Offset = "0xB8")]
[Token(Token = "0x4002F61")]
private int plane1ChainIndex = (int)((ulong)(-1L));
// Token: 0x04002F62 RID: 12130
[Cpp2IlInjected.FieldOffset(Offset = "0xBC")]
[Token(Token = "0x4002F62")]
private int plane1NodeIndex;
// Token: 0x04002F63 RID: 12131
[Cpp2IlInjected.FieldOffset(Offset = "0xC0")]
[Token(Token = "0x4002F63")]
private int plane2ChainIndex = (int)((ulong)(-1L));
// Token: 0x04002F64 RID: 12132
[Cpp2IlInjected.FieldOffset(Offset = "0xC4")]
[Token(Token = "0x4002F64")]
private int plane2NodeIndex;
// Token: 0x04002F65 RID: 12133
[Cpp2IlInjected.FieldOffset(Offset = "0xC8")]
[Token(Token = "0x4002F65")]
private int plane3ChainIndex = (int)((ulong)(-1L));
// Token: 0x04002F66 RID: 12134
[Cpp2IlInjected.FieldOffset(Offset = "0xCC")]
[Token(Token = "0x4002F66")]
private int plane3NodeIndex;
}
}
}

View File

@@ -0,0 +1,134 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200041E RID: 1054
[Token(Token = "0x200041E")]
[Serializable]
public class IKMappingBone : IKMapping
{
// Token: 0x060025B8 RID: 9656 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025B8")]
[Address(RVA = "0x1182DD0", Offset = "0x1181BD0", VA = "0x181182DD0", Slot = "4")]
public override bool IsValid(IKSolver solver, ref string message)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025B9 RID: 9657 RVA: 0x00054D5C File Offset: 0x00052F5C
[Token(Token = "0x60025B9")]
[Address(RVA = "0x1182EE0", Offset = "0x1181CE0", VA = "0x181182EE0")]
public IKMappingBone()
{
this.maintainRotationWeight = 1f;
IKMapping.BoneMap boneMap = new IKMapping.BoneMap();
this.boneMap = boneMap;
base..ctor();
}
// Token: 0x060025BA RID: 9658 RVA: 0x00054D88 File Offset: 0x00052F88
[Token(Token = "0x60025BA")]
[Address(RVA = "0x1182F50", Offset = "0x1181D50", VA = "0x181182F50")]
public IKMappingBone(Transform bone)
{
/*
An exception occurred when decompiling this method (060025BA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.IKMappingBone::.ctor(UnityEngine.Transform)
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; stfld:float32(IKMappingBone::maintainRotationWeight, ldloc:IKMappingBone(this), ldc.r4:float32(1)); stloc:BoneMap(var_0_10, newobj:BoneMap(BoneMap::.ctor)); stfld:BoneMap(IKMappingBone::boneMap, ldloc:IKMappingBone(this), ldloc:BoneMap(var_0_10)); call:void(object::.ctor, ldloc:IKMappingBone[exp:object](this)); stfld:Transform(IKMappingBone::bone, ldloc:IKMappingBone(this), ldloc:Transform(bone)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
// Token: 0x060025BB RID: 9659 RVA: 0x00054DBC File Offset: 0x00052FBC
[Token(Token = "0x60025BB")]
[Address(RVA = "0x1182E90", Offset = "0x1181C90", VA = "0x181182E90")]
public void StoreDefaultLocalState()
{
this.boneMap.StoreDefaultLocalState();
}
// Token: 0x060025BC RID: 9660 RVA: 0x00054DDC File Offset: 0x00052FDC
[Token(Token = "0x60025BC")]
[Address(RVA = "0x1182D00", Offset = "0x1181B00", VA = "0x181182D00")]
public void FixTransforms()
{
IKMapping.BoneMap boneMap = this.boneMap;
int num = 0;
boneMap.FixTransform(num != 0);
}
// Token: 0x060025BD RID: 9661 RVA: 0x00054E00 File Offset: 0x00053000
[Token(Token = "0x60025BD")]
[Address(RVA = "0x1182D30", Offset = "0x1181B30", VA = "0x181182D30", Slot = "5")]
public override void Initiate(IKSolverFullBody solver)
{
IKMapping.BoneMap boneMap = this.boneMap;
if (boneMap == 0)
{
IKMapping.BoneMap boneMap2 = new IKMapping.BoneMap();
this.boneMap = boneMap2;
}
Transform transform = this.bone;
boneMap.Initiate(transform, solver);
}
// Token: 0x060025BE RID: 9662 RVA: 0x00054E3C File Offset: 0x0005303C
[Token(Token = "0x60025BE")]
[Address(RVA = "0x1182E70", Offset = "0x1181C70", VA = "0x181182E70")]
public void ReadPose()
{
this.boneMap.MaintainRotation();
}
// Token: 0x060025BF RID: 9663 RVA: 0x00054E5C File Offset: 0x0005305C
[Token(Token = "0x60025BF")]
[Address(RVA = "0x1182EB0", Offset = "0x1181CB0", VA = "0x181182EB0")]
public void WritePose(float solverWeight)
{
/*
An exception occurred when decompiling this method (060025BF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.IKMappingBone::WritePose(System.Single)
---> System.ArgumentOutOfRangeException: Non-negative number required. (Parameter 'length')
at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)
at System.Array.Copy(Array sourceArray, Array destinationArray, Int32 length)
at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 51
at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 401
at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 276
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 112
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
// Token: 0x04002F67 RID: 12135
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002F67")]
public Transform bone;
// Token: 0x04002F68 RID: 12136
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002F68")]
[Range(0f, 1f)]
public float maintainRotationWeight;
// Token: 0x04002F69 RID: 12137
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002F69")]
private IKMapping.BoneMap boneMap;
}
}

View File

@@ -0,0 +1,316 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200041F RID: 1055
[Token(Token = "0x200041F")]
[Serializable]
public class IKMappingLimb : IKMapping
{
// Token: 0x060025C0 RID: 9664 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025C0")]
[Address(RVA = "0x1183420", Offset = "0x1182220", VA = "0x181183420", Slot = "4")]
public override bool IsValid(IKSolver solver, ref string message)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025C1 RID: 9665 RVA: 0x00054E88 File Offset: 0x00053088
[Token(Token = "0x60025C1")]
[Address(RVA = "0x11830A0", Offset = "0x1181EA0", VA = "0x1811830A0")]
public IKMapping.BoneMap GetBoneMap(IKMappingLimb.BoneMapType boneMap)
{
if (boneMap == IKMappingLimb.BoneMapType.Parent)
{
Transform transform = this.parentBone;
int num = 0;
if (transform == num)
{
Transform transform2 = this.bone1;
int num2 = 0;
Warning.Log("This limb does not have a parent (shoulder) bone", transform2, num2 != 0);
}
return this.boneMapParent;
}
if (boneMap == IKMappingLimb.BoneMapType.Parent)
{
return this.boneMap1;
}
if (boneMap != IKMappingLimb.BoneMapType.Bone1)
{
return this.boneMap3;
}
return this.boneMap2;
}
// Token: 0x060025C2 RID: 9666 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025C2")]
[Address(RVA = "0x1183760", Offset = "0x1182560", VA = "0x181183760")]
public void SetLimbOrientation(Vector3 upper, Vector3 lower)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025C3 RID: 9667 RVA: 0x00054EE8 File Offset: 0x000530E8
[Token(Token = "0x60025C3")]
[Address(RVA = "0x1183DA0", Offset = "0x1182BA0", VA = "0x181183DA0")]
public IKMappingLimb()
{
this.weight = 1f;
IKMapping.BoneMap boneMap = new IKMapping.BoneMap();
this.boneMapParent = boneMap;
IKMapping.BoneMap boneMap2 = new IKMapping.BoneMap();
this.boneMap1 = boneMap2;
IKMapping.BoneMap boneMap3 = new IKMapping.BoneMap();
this.boneMap2 = boneMap3;
IKMapping.BoneMap boneMap4 = new IKMapping.BoneMap();
this.boneMap3 = boneMap4;
base..ctor();
}
// Token: 0x060025C4 RID: 9668 RVA: 0x00054F3C File Offset: 0x0005313C
[Token(Token = "0x60025C4")]
[Address(RVA = "0x1183E90", Offset = "0x1182C90", VA = "0x181183E90")]
public IKMappingLimb(Transform bone1, Transform bone2, Transform bone3, [Optional] Transform parentBone)
{
/*
An exception occurred when decompiling this method (060025C4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.IKMappingLimb::.ctor(UnityEngine.Transform,UnityEngine.Transform,UnityEngine.Transform,UnityEngine.Transform)
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; stfld:float32(IKMappingLimb::weight, ldloc:IKMappingLimb(this), ldc.r4:float32(1)); stloc:BoneMap(var_0_10, newobj:BoneMap(BoneMap::.ctor)); stfld:BoneMap(IKMappingLimb::boneMapParent, ldloc:IKMappingLimb(this), ldloc:BoneMap(var_0_10)); stloc:BoneMap(var_1_1D, newobj:BoneMap(BoneMap::.ctor)); stfld:BoneMap(IKMappingLimb::boneMap1, ldloc:IKMappingLimb(this), ldloc:BoneMap(var_1_1D)); stloc:BoneMap(var_2_2A, newobj:BoneMap(BoneMap::.ctor)); stfld:BoneMap(IKMappingLimb::boneMap2, ldloc:IKMappingLimb(this), ldloc:BoneMap(var_2_2A)); stloc:BoneMap(var_3_37, newobj:BoneMap(BoneMap::.ctor)); stfld:BoneMap(IKMappingLimb::boneMap3, ldloc:IKMappingLimb(this), ldloc:BoneMap(var_3_37)); call:void(object::.ctor, ldloc:IKMappingLimb[exp:object](this)); stfld:Transform(IKMappingLimb::bone1, ldloc:IKMappingLimb(this), ldloc:Transform(bone1)); stfld:Transform(IKMappingLimb::bone2, ldloc:IKMappingLimb(this), ldloc:Transform(bone2)); stfld:Transform(IKMappingLimb::bone3, ldloc:IKMappingLimb(this), ldloc:Transform(bone3)); stfld:Transform(IKMappingLimb::parentBone, ldloc:IKMappingLimb(this), ldc.i4:int32[exp:Transform](0)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
// Token: 0x060025C5 RID: 9669 RVA: 0x00054FAC File Offset: 0x000531AC
[Token(Token = "0x60025C5")]
[Address(RVA = "0x11836F0", Offset = "0x11824F0", VA = "0x1811836F0")]
public void SetBones(Transform bone1, Transform bone2, Transform bone3, [Optional] Transform parentBone)
{
/*
An exception occurred when decompiling this method (060025C5)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.IKMappingLimb::SetBones(UnityEngine.Transform,UnityEngine.Transform,UnityEngine.Transform,UnityEngine.Transform)
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; stfld:Transform(IKMappingLimb::bone1, ldloc:IKMappingLimb(this), ldloc:Transform(bone1)); stfld:Transform(IKMappingLimb::bone2, ldloc:IKMappingLimb(this), ldloc:Transform(bone2)); stfld:Transform(IKMappingLimb::bone3, ldloc:IKMappingLimb(this), ldloc:Transform(bone3)); stfld:Transform(IKMappingLimb::parentBone, ldloc:IKMappingLimb(this), ldc.i4:int32[exp:Transform](0)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
// Token: 0x060025C6 RID: 9670 RVA: 0x00054FD4 File Offset: 0x000531D4
[Token(Token = "0x60025C6")]
[Address(RVA = "0x1183B60", Offset = "0x1182960", VA = "0x181183B60")]
public void StoreDefaultLocalState()
{
Transform transform = this.parentBone;
int num = 0;
if (transform != num)
{
this.boneMapParent.StoreDefaultLocalState();
}
this.boneMap1.StoreDefaultLocalState();
this.boneMap2.StoreDefaultLocalState();
this.boneMap3.StoreDefaultLocalState();
}
// Token: 0x060025C7 RID: 9671 RVA: 0x00055028 File Offset: 0x00053228
[Token(Token = "0x60025C7")]
[Address(RVA = "0x1182FE0", Offset = "0x1181DE0", VA = "0x181182FE0")]
public void FixTransforms()
{
Transform transform = this.parentBone;
int num = 0;
if (transform != num)
{
IKMapping.BoneMap boneMap = this.boneMapParent;
int num2 = 0;
boneMap.FixTransform(num2 != 0);
}
this.boneMap1.FixTransform(true);
IKMapping.BoneMap boneMap2 = this.boneMap2;
int num3 = 0;
boneMap2.FixTransform(num3 != 0);
IKMapping.BoneMap boneMap3 = this.boneMap3;
int num4 = 0;
boneMap3.FixTransform(num4 != 0);
}
// Token: 0x060025C8 RID: 9672 RVA: 0x00055094 File Offset: 0x00053294
[Token(Token = "0x60025C8")]
[Address(RVA = "0x1183170", Offset = "0x1181F70", VA = "0x181183170", Slot = "5")]
public override void Initiate(IKSolverFullBody solver)
{
if (this.boneMapParent == (ulong)0L)
{
IKMapping.BoneMap boneMap = new IKMapping.BoneMap();
this.boneMapParent = boneMap;
}
if (this.boneMap1 == (ulong)0L)
{
IKMapping.BoneMap boneMap2 = new IKMapping.BoneMap();
this.boneMap1 = boneMap2;
}
if (this.boneMap2 == (ulong)0L)
{
IKMapping.BoneMap boneMap3 = new IKMapping.BoneMap();
this.boneMap2 = boneMap3;
}
if (this.boneMap3 == (ulong)0L)
{
IKMapping.BoneMap boneMap4 = new IKMapping.BoneMap();
this.boneMap3 = boneMap4;
}
Transform transform = this.parentBone;
int num = 0;
if (transform != num)
{
IKMapping.BoneMap boneMap5 = this.boneMapParent;
Transform transform2 = this.parentBone;
boneMap5.Initiate(transform2, solver);
}
IKMapping.BoneMap boneMap6 = this.boneMap1;
Transform transform3 = this.bone1;
boneMap6.Initiate(transform3, solver);
IKMapping.BoneMap boneMap7 = this.boneMap2;
Transform transform4 = this.bone2;
boneMap7.Initiate(transform4, solver);
IKMapping.BoneMap boneMap8 = this.boneMap3;
Transform transform5 = this.bone3;
boneMap8.Initiate(transform5, solver);
IKMapping.BoneMap boneMap9 = this.boneMap1;
IKMapping.BoneMap boneMap10 = this.boneMap2;
Transform transform6 = this.boneMap3.transform;
Transform transform7 = boneMap10.transform;
Transform transform8 = boneMap9.transform;
boneMap9.SetPlane(solver, transform8, transform7, transform6);
IKMapping.BoneMap boneMap11 = this.boneMap2;
IKMapping.BoneMap boneMap12 = this.boneMap3;
Transform transform9 = this.boneMap1.transform;
Transform transform10 = boneMap12.transform;
Transform transform11 = boneMap11.transform;
boneMap11.SetPlane(solver, transform11, transform10, transform9);
Transform transform12 = this.parentBone;
int num2 = 0;
if (transform12 != num2)
{
IKMapping.BoneMap boneMap13 = this.boneMapParent;
IKMapping.BoneMap boneMap14 = this.boneMap1;
boneMap13.SetLocalSwingAxis(boneMap14);
}
}
// Token: 0x060025C9 RID: 9673 RVA: 0x00055234 File Offset: 0x00053434
[Token(Token = "0x60025C9")]
[Address(RVA = "0x1183680", Offset = "0x1182480", VA = "0x181183680")]
public void ReadPose()
{
this.boneMap1.UpdatePlane(true, true);
IKMapping.BoneMap boneMap = this.boneMap2;
int num = 0;
boneMap.UpdatePlane(true, num != 0);
float num2 = this.weight;
int num3 = 0;
float num4 = Mathf.Clamp(num2, (float)num3, 1f);
IKMapping.BoneMap boneMap2 = this.boneMap3;
this.weight = num4;
boneMap2.MaintainRotation();
}
// Token: 0x060025CA RID: 9674 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025CA")]
[Address(RVA = "0x1183C10", Offset = "0x1182A10", VA = "0x181183C10")]
public void WritePose(IKSolverFullBody solver, bool fullBody)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04002F6A RID: 12138
[Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002F6A")]
public Transform parentBone;
// Token: 0x04002F6B RID: 12139
[Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002F6B")]
public Transform bone1;
// Token: 0x04002F6C RID: 12140
[Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002F6C")]
public Transform bone2;
// Token: 0x04002F6D RID: 12141
[Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4002F6D")]
public Transform bone3;
// Token: 0x04002F6E RID: 12142
[Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4002F6E")]
[Range(0f, 1f)]
public float maintainRotationWeight;
// Token: 0x04002F6F RID: 12143
[Cpp2IlInjected.FieldOffset(Offset = "0x34")]
[Token(Token = "0x4002F6F")]
[Range(0f, 1f)]
public float weight;
// Token: 0x04002F70 RID: 12144
[Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002F70")]
private IKMapping.BoneMap boneMapParent;
// Token: 0x04002F71 RID: 12145
[Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4002F71")]
private IKMapping.BoneMap boneMap1;
// Token: 0x04002F72 RID: 12146
[Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4002F72")]
private IKMapping.BoneMap boneMap2;
// Token: 0x04002F73 RID: 12147
[Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x4002F73")]
private IKMapping.BoneMap boneMap3;
// Token: 0x02000420 RID: 1056
[Token(Token = "0x2000420")]
[Serializable]
public enum BoneMapType
{
// Token: 0x04002F75 RID: 12149
[Token(Token = "0x4002F75")]
Parent,
// Token: 0x04002F76 RID: 12150
[Token(Token = "0x4002F76")]
Bone1,
// Token: 0x04002F77 RID: 12151
[Token(Token = "0x4002F77")]
Bone2,
// Token: 0x04002F78 RID: 12152
[Token(Token = "0x4002F78")]
Bone3
}
}
}

View File

@@ -0,0 +1,251 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000421 RID: 1057
[Token(Token = "0x2000421")]
[Serializable]
public class IKMappingSpine : IKMapping
{
// Token: 0x060025CB RID: 9675 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025CB")]
[Address(RVA = "0x1184CE0", Offset = "0x1183AE0", VA = "0x181184CE0", Slot = "4")]
public override bool IsValid(IKSolver solver, ref string message)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025CC RID: 9676 RVA: 0x00055294 File Offset: 0x00053494
[Token(Token = "0x60025CC")]
[Address(RVA = "0x1185F00", Offset = "0x1184D00", VA = "0x181185F00")]
public IKMappingSpine()
{
this.iterations = (int)((ulong)3L);
int num = 0;
this.twistWeight = 1f;
IKMapping.BoneMap[] array = new IKMapping.BoneMap[num];
this.spine = array;
IKMapping.BoneMap boneMap = new IKMapping.BoneMap();
this.leftUpperArm = boneMap;
IKMapping.BoneMap boneMap2 = new IKMapping.BoneMap();
this.rightUpperArm = boneMap2;
IKMapping.BoneMap boneMap3 = new IKMapping.BoneMap();
this.leftThigh = boneMap3;
IKMapping.BoneMap boneMap4 = new IKMapping.BoneMap();
this.rightThigh = boneMap4;
base..ctor();
}
// Token: 0x060025CD RID: 9677 RVA: 0x00055304 File Offset: 0x00053504
[Token(Token = "0x60025CD")]
[Address(RVA = "0x1186020", Offset = "0x1184E20", VA = "0x181186020")]
public IKMappingSpine(Transform[] spineBones, Transform leftUpperArmBone, Transform rightUpperArmBone, Transform leftThighBone, Transform rightThighBone)
{
/*
An exception occurred when decompiling this method (060025CD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.IKMappingSpine::.ctor(UnityEngine.Transform[],UnityEngine.Transform,UnityEngine.Transform,UnityEngine.Transform,UnityEngine.Transform)
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; stfld:int32(IKMappingSpine::iterations, ldloc:IKMappingSpine(this), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](3))); stloc:int32(var_0_0A, ldc.i4:int32(0)); stfld:float32(IKMappingSpine::twistWeight, ldloc:IKMappingSpine(this), ldc.r4:float32(1)); stloc:class RootMotion.FinalIK.IKMapping/BoneMap[](var_1_1C, newarr:class RootMotion.FinalIK.IKMapping/BoneMap[](RootMotion.FinalIK.IKMapping/BoneMap, ldloc:int32(var_0_0A))); stfld:class RootMotion.FinalIK.IKMapping/BoneMap[](IKMappingSpine::spine, ldloc:IKMappingSpine(this), ldloc:class RootMotion.FinalIK.IKMapping/BoneMap[](var_1_1C)); stloc:BoneMap(var_2_29, newobj:BoneMap(BoneMap::.ctor)); stfld:BoneMap(IKMappingSpine::leftUpperArm, ldloc:IKMappingSpine(this), ldloc:BoneMap(var_2_29)); stloc:BoneMap(var_3_36, newobj:BoneMap(BoneMap::.ctor)); stfld:BoneMap(IKMappingSpine::rightUpperArm, ldloc:IKMappingSpine(this), ldloc:BoneMap(var_3_36)); stloc:BoneMap(var_4_43, newobj:BoneMap(BoneMap::.ctor)); stfld:BoneMap(IKMappingSpine::leftThigh, ldloc:IKMappingSpine(this), ldloc:BoneMap(var_4_43)); stloc:BoneMap(var_5_52, newobj:BoneMap(BoneMap::.ctor)); stfld:BoneMap(IKMappingSpine::rightThigh, ldloc:IKMappingSpine(this), ldloc:BoneMap(var_5_52)); call:void(object::.ctor, ldloc:IKMappingSpine[exp:object](this)); stfld:class [UnityEngine.CoreModule]UnityEngine.Transform[](IKMappingSpine::spineBones, ldloc:IKMappingSpine(this), ldloc:class [UnityEngine.CoreModule]UnityEngine.Transform[](spineBones)); stfld:Transform(IKMappingSpine::leftUpperArmBone, ldloc:IKMappingSpine(this), ldloc:Transform(leftUpperArmBone)); stfld:Transform(IKMappingSpine::rightUpperArmBone, ldloc:IKMappingSpine(this), ldloc:Transform(rightUpperArmBone)); stfld:Transform(IKMappingSpine::leftThighBone, ldloc:IKMappingSpine(this), ldc.i4:int32[exp:Transform](0)); stfld:Transform(IKMappingSpine::rightThighBone, ldloc:IKMappingSpine(this), ldc.i4:int32[exp:Transform](0)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
// Token: 0x060025CE RID: 9678 RVA: 0x00055398 File Offset: 0x00053598
[Token(Token = "0x60025CE")]
[Address(RVA = "0x1185910", Offset = "0x1184710", VA = "0x181185910")]
public void SetBones(Transform[] spineBones, Transform leftUpperArmBone, Transform rightUpperArmBone, Transform leftThighBone, Transform rightThighBone)
{
/*
An exception occurred when decompiling this method (060025CE)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.IKMappingSpine::SetBones(UnityEngine.Transform[],UnityEngine.Transform,UnityEngine.Transform,UnityEngine.Transform,UnityEngine.Transform)
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; stfld:class [UnityEngine.CoreModule]UnityEngine.Transform[](IKMappingSpine::spineBones, ldloc:IKMappingSpine(this), ldloc:class [UnityEngine.CoreModule]UnityEngine.Transform[](spineBones)); stfld:Transform(IKMappingSpine::leftUpperArmBone, ldloc:IKMappingSpine(this), ldloc:Transform(leftUpperArmBone)); stfld:Transform(IKMappingSpine::rightUpperArmBone, ldloc:IKMappingSpine(this), ldloc:Transform(rightUpperArmBone)); stfld:Transform(IKMappingSpine::leftThighBone, ldloc:IKMappingSpine(this), ldc.i4:int32[exp:Transform](0)); stfld:Transform(IKMappingSpine::rightThighBone, ldloc:IKMappingSpine(this), ldc.i4:int32[exp:Transform](0)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
// Token: 0x060025CF RID: 9679 RVA: 0x000553C8 File Offset: 0x000535C8
[Token(Token = "0x60025CF")]
[Address(RVA = "0x1185990", Offset = "0x1184790", VA = "0x181185990")]
public void StoreDefaultLocalState()
{
IKMapping.BoneMap[] array = this.spine;
int num = 0;
if (num < array.Length)
{
array[num].StoreDefaultLocalState();
IKMapping.BoneMap[] array2 = this.spine;
num++;
}
}
// Token: 0x060025D0 RID: 9680 RVA: 0x00055404 File Offset: 0x00053604
[Token(Token = "0x60025D0")]
[Address(RVA = "0x11841C0", Offset = "0x1182FC0", VA = "0x1811841C0")]
public void FixTransforms()
{
IKMapping.BoneMap[] array = this.spine;
int num = 0;
int num2 = 0;
if (num2 < array.Length)
{
int length = array.Length;
IKMapping.BoneMap boneMap = array[num];
if (num == 0)
{
}
int num3 = length - 1;
bool flag = num == num3;
boneMap.FixTransform(flag);
IKMapping.BoneMap[] array2 = this.spine;
num++;
}
}
// Token: 0x060025D1 RID: 9681 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025D1")]
[Address(RVA = "0x1184450", Offset = "0x1183250", VA = "0x181184450", Slot = "5")]
public override void Initiate(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025D2 RID: 9682 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025D2")]
[Address(RVA = "0x1185A10", Offset = "0x1184810", VA = "0x181185A10")]
private bool UseFABRIK()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025D3 RID: 9683 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025D3")]
[Address(RVA = "0x1185530", Offset = "0x1184330", VA = "0x181185530")]
public void ReadPose()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025D4 RID: 9684 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025D4")]
[Address(RVA = "0x1185A40", Offset = "0x1184840", VA = "0x181185A40")]
public void WritePose(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025D5 RID: 9685 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025D5")]
[Address(RVA = "0x1184260", Offset = "0x1183060", VA = "0x181184260")]
public void ForwardReach(Vector3 position)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025D6 RID: 9686 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025D6")]
[Address(RVA = "0x1183FE0", Offset = "0x1182DE0", VA = "0x181183FE0")]
private void BackwardReach(Vector3 position)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025D7 RID: 9687 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025D7")]
[Address(RVA = "0x1185100", Offset = "0x1183F00", VA = "0x181185100")]
private void MapToSolverPositions(IKSolverFullBody solver)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04002F79 RID: 12153
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002F79")]
public Transform[] spineBones;
// Token: 0x04002F7A RID: 12154
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002F7A")]
public Transform leftUpperArmBone;
// Token: 0x04002F7B RID: 12155
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002F7B")]
public Transform rightUpperArmBone;
// Token: 0x04002F7C RID: 12156
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4002F7C")]
public Transform leftThighBone;
// Token: 0x04002F7D RID: 12157
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4002F7D")]
public Transform rightThighBone;
// Token: 0x04002F7E RID: 12158
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002F7E")]
[Range(1f, 3f)]
public int iterations;
// Token: 0x04002F7F RID: 12159
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x4002F7F")]
[Range(0f, 1f)]
public float twistWeight;
// Token: 0x04002F80 RID: 12160
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4002F80")]
private int rootNodeIndex;
// Token: 0x04002F81 RID: 12161
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4002F81")]
private IKMapping.BoneMap[] spine;
// Token: 0x04002F82 RID: 12162
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4002F82")]
private IKMapping.BoneMap leftUpperArm;
// Token: 0x04002F83 RID: 12163
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4002F83")]
private IKMapping.BoneMap rightUpperArm;
// Token: 0x04002F84 RID: 12164
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002F84")]
private IKMapping.BoneMap leftThigh;
// Token: 0x04002F85 RID: 12165
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4002F85")]
private IKMapping.BoneMap rightThigh;
// Token: 0x04002F86 RID: 12166
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4002F86")]
private bool useFABRIK;
}
}

View File

@@ -0,0 +1,590 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000422 RID: 1058
[Token(Token = "0x2000422")]
[Serializable]
public abstract class IKSolver
{
// Token: 0x060025D8 RID: 9688 RVA: 0x00055464 File Offset: 0x00053664
[Token(Token = "0x60025D8")]
[Address(RVA = "0x1186660", Offset = "0x1185460", VA = "0x181186660")]
public bool IsValid()
{
string empty = string.Empty;
return this.IsValid(empty);
}
// Token: 0x060025D9 RID: 9689
[Token(Token = "0x60025D9")]
[Address(Slot = "4")]
public abstract bool IsValid(ref string message);
// Token: 0x060025DA RID: 9690 RVA: 0x00055480 File Offset: 0x00053680
[Token(Token = "0x60025DA")]
[Address(RVA = "0x11864F0", Offset = "0x11852F0", VA = "0x1811864F0")]
public void Initiate(Transform root)
{
IKSolver.UpdateDelegate onPreInitiate = this.OnPreInitiate;
if (onPreInitiate != 0)
{
onPreInitiate();
}
int num = 0;
if (root == num)
{
Debug.LogError("Initiating IKSolver with null root Transform.");
}
this.root = root;
this.<initiated>k__BackingField = false;
string empty = string.Empty;
if (this.IsValid(empty))
{
this.OnInitiate();
this.StoreDefaultLocalState();
IKSolver.UpdateDelegate onPostInitiate = this.OnPostInitiate;
this.<initiated>k__BackingField = true;
this.firstInitiation = false;
if (onPostInitiate != 0)
{
onPostInitiate();
return;
}
}
else
{
int num2 = 0;
Warning.Log(empty, root, num2 != 0);
}
}
// Token: 0x060025DB RID: 9691 RVA: 0x0005550C File Offset: 0x0005370C
[Token(Token = "0x60025DB")]
[Address(RVA = "0x1186B90", Offset = "0x1185990", VA = "0x181186B90")]
public void Update()
{
IKSolver.UpdateDelegate onPreUpdate = this.OnPreUpdate;
if (onPreUpdate != 0)
{
onPreUpdate();
}
if (this.firstInitiation)
{
Transform transform = this.root;
this.Initiate(transform);
}
if (this.<initiated>k__BackingField)
{
this.OnUpdate();
IKSolver.UpdateDelegate onPostUpdate = this.OnPostUpdate;
if (onPostUpdate != 0)
{
onPostUpdate();
return;
}
}
}
// Token: 0x060025DC RID: 9692 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025DC")]
[Address(RVA = "0x42E030", Offset = "0x42CE30", VA = "0x18042E030", Slot = "5")]
public virtual Vector3 GetIKPosition()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025DD RID: 9693 RVA: 0x00055564 File Offset: 0x00053764
[Token(Token = "0x60025DD")]
[Address(RVA = "0x5FD260", Offset = "0x5FC060", VA = "0x1805FD260")]
public void SetIKPosition(Vector3 position)
{
float z = position.z;
this.IKPosition.z = z;
}
// Token: 0x060025DE RID: 9694 RVA: 0x00055584 File Offset: 0x00053784
[Token(Token = "0x60025DE")]
[Address(RVA = "0x5B5B10", Offset = "0x5B4910", VA = "0x1805B5B10")]
public float GetIKPositionWeight()
{
return this.IKPositionWeight;
}
// Token: 0x060025DF RID: 9695 RVA: 0x00055598 File Offset: 0x00053798
[Token(Token = "0x60025DF")]
[Address(RVA = "0x1186B60", Offset = "0x1185960", VA = "0x181186B60")]
public void SetIKPositionWeight(float weight)
{
int num = 0;
float num2 = Mathf.Clamp(weight, (float)num, 1f);
this.IKPositionWeight = num2;
}
// Token: 0x060025E0 RID: 9696 RVA: 0x000555BC File Offset: 0x000537BC
[Token(Token = "0x60025E0")]
[Address(RVA = "0x517700", Offset = "0x516500", VA = "0x180517700")]
public Transform GetRoot()
{
return this.root;
}
// Token: 0x17000231 RID: 561
// (get) Token: 0x060025E1 RID: 9697 RVA: 0x000555D0 File Offset: 0x000537D0
// (set) Token: 0x060025E2 RID: 9698 RVA: 0x000555E4 File Offset: 0x000537E4
[Token(Token = "0x17000231")]
public bool initiated
{
[Token(Token = "0x60025E1")]
[Address(RVA = "0x51C310", Offset = "0x51B110", VA = "0x18051C310")]
get;
[Token(Token = "0x60025E2")]
[Address(RVA = "0x691DE0", Offset = "0x690BE0", VA = "0x180691DE0")]
private set;
}
// Token: 0x060025E3 RID: 9699
[Token(Token = "0x60025E3")]
[Address(Slot = "6")]
public abstract IKSolver.Point[] GetPoints();
// Token: 0x060025E4 RID: 9700
[Token(Token = "0x60025E4")]
[Address(Slot = "7")]
public abstract IKSolver.Point GetPoint(Transform transform);
// Token: 0x060025E5 RID: 9701
[Token(Token = "0x60025E5")]
[Address(Slot = "8")]
public abstract void FixTransforms();
// Token: 0x060025E6 RID: 9702
[Token(Token = "0x60025E6")]
[Address(Slot = "9")]
public abstract void StoreDefaultLocalState();
// Token: 0x060025E7 RID: 9703
[Token(Token = "0x60025E7")]
[Address(Slot = "10")]
protected abstract void OnInitiate();
// Token: 0x060025E8 RID: 9704
[Token(Token = "0x60025E8")]
[Address(Slot = "11")]
protected abstract void OnUpdate();
// Token: 0x060025E9 RID: 9705 RVA: 0x000555F8 File Offset: 0x000537F8
[Token(Token = "0x60025E9")]
[Address(RVA = "0x11866C0", Offset = "0x11854C0", VA = "0x1811866C0")]
protected void LogWarning(string message)
{
Transform transform = this.root;
Warning.Log(message, transform, true);
}
// Token: 0x060025EA RID: 9706 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025EA")]
[Address(RVA = "0x11862F0", Offset = "0x11850F0", VA = "0x1811862F0")]
public static Transform ContainsDuplicateBone(IKSolver.Bone[] bones)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025EB RID: 9707 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025EB")]
[Address(RVA = "0x1186440", Offset = "0x1185240", VA = "0x181186440")]
public static bool HierarchyIsValid(IKSolver.Bone[] bones)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025EC RID: 9708 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025EC")]
[Address(RVA = "0x11866E0", Offset = "0x11854E0", VA = "0x1811866E0")]
protected static float PreSolveBones(ref IKSolver.Bone[] bones)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025ED RID: 9709 RVA: 0x00055614 File Offset: 0x00053814
[Token(Token = "0x60025ED")]
[Address(RVA = "0x1186C00", Offset = "0x1185A00", VA = "0x181186C00")]
protected IKSolver()
{
}
// Token: 0x04002F87 RID: 12167
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002F87")]
[HideInInspector]
public Vector3 IKPosition;
// Token: 0x04002F88 RID: 12168
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4002F88")]
[Range(0f, 1f)]
[Tooltip("The positional or the master weight of the solver.")]
public float IKPositionWeight = 1f;
// Token: 0x04002F8A RID: 12170
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4002F8A")]
public IKSolver.UpdateDelegate OnPreInitiate;
// Token: 0x04002F8B RID: 12171
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4002F8B")]
public IKSolver.UpdateDelegate OnPostInitiate;
// Token: 0x04002F8C RID: 12172
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002F8C")]
public IKSolver.UpdateDelegate OnPreUpdate;
// Token: 0x04002F8D RID: 12173
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4002F8D")]
public IKSolver.UpdateDelegate OnPostUpdate;
// Token: 0x04002F8E RID: 12174
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4002F8E")]
protected bool firstInitiation = true;
// Token: 0x04002F8F RID: 12175
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4002F8F")]
[SerializeField]
[HideInInspector]
protected Transform root;
// Token: 0x02000423 RID: 1059
[Token(Token = "0x2000423")]
[Serializable]
public class Point
{
// Token: 0x060025EE RID: 9710 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025EE")]
[Address(RVA = "0x14F26D0", Offset = "0x14F14D0", VA = "0x1814F26D0")]
public void StoreDefaultLocalState()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025EF RID: 9711 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025EF")]
[Address(RVA = "0x14F25E0", Offset = "0x14F13E0", VA = "0x1814F25E0")]
public void FixTransform()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025F0 RID: 9712 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025F0")]
[Address(RVA = "0x14F27D0", Offset = "0x14F15D0", VA = "0x1814F27D0")]
public void UpdateSolverPosition()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025F1 RID: 9713 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025F1")]
[Address(RVA = "0x14F2730", Offset = "0x14F1530", VA = "0x1814F2730")]
public void UpdateSolverLocalPosition()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025F2 RID: 9714 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025F2")]
[Address(RVA = "0x14F2810", Offset = "0x14F1610", VA = "0x1814F2810")]
public void UpdateSolverState()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025F3 RID: 9715 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025F3")]
[Address(RVA = "0x14F2770", Offset = "0x14F1570", VA = "0x1814F2770")]
public void UpdateSolverLocalState()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025F4 RID: 9716 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025F4")]
[Address(RVA = "0x14F1720", Offset = "0x14F0520", VA = "0x1814F1720")]
public Point()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04002F90 RID: 12176
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002F90")]
public Transform transform;
// Token: 0x04002F91 RID: 12177
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002F91")]
[Range(0f, 1f)]
public float weight;
// Token: 0x04002F92 RID: 12178
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4002F92")]
public Vector3 solverPosition;
// Token: 0x04002F93 RID: 12179
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4002F93")]
public Quaternion solverRotation;
// Token: 0x04002F94 RID: 12180
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002F94")]
public Vector3 defaultLocalPosition;
// Token: 0x04002F95 RID: 12181
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x4002F95")]
public Quaternion defaultLocalRotation;
}
// Token: 0x02000424 RID: 1060
[Token(Token = "0x2000424")]
[Serializable]
public class Bone : IKSolver.Point
{
// Token: 0x17000232 RID: 562
// (get) Token: 0x060025F5 RID: 9717 RVA: 0x000020D3 File Offset: 0x000002D3
// (set) Token: 0x060025F6 RID: 9718 RVA: 0x0005563C File Offset: 0x0005383C
[Token(Token = "0x17000232")]
public RotationLimit rotationLimit
{
[Token(Token = "0x60025F5")]
[Address(RVA = "0x14E8E70", Offset = "0x14E7C70", VA = "0x1814E8E70")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
[Token(Token = "0x60025F6")]
[Address(RVA = "0x14E8F70", Offset = "0x14E7D70", VA = "0x1814E8F70")]
set
{
this._rotationLimit = value;
int num = 0;
bool flag = value != num;
this.isLimited = flag;
}
}
// Token: 0x060025F7 RID: 9719 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025F7")]
[Address(RVA = "0x14E8A30", Offset = "0x14E7830", VA = "0x1814E8A30")]
public void Swing(Vector3 swingTarget, float weight = 1f)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025F8 RID: 9720 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025F8")]
[Address(RVA = "0x14E8570", Offset = "0x14E7370", VA = "0x1814E8570")]
public static void SolverSwing(IKSolver.Bone[] bones, int index, Vector3 swingTarget, float weight = 1f)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025F9 RID: 9721 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025F9")]
[Address(RVA = "0x14E8850", Offset = "0x14E7650", VA = "0x1814E8850")]
public void Swing2D(Vector3 swingTarget, float weight = 1f)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025FA RID: 9722 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025FA")]
[Address(RVA = "0x14E8530", Offset = "0x14E7330", VA = "0x1814E8530")]
public void SetToSolverPosition()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025FB RID: 9723 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025FB")]
[Address(RVA = "0x14E8DE0", Offset = "0x14E7BE0", VA = "0x1814E8DE0")]
public Bone()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025FC RID: 9724 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025FC")]
[Address(RVA = "0x14E8D30", Offset = "0x14E7B30", VA = "0x1814E8D30")]
public Bone(Transform transform)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025FD RID: 9725 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025FD")]
[Address(RVA = "0x14E8C70", Offset = "0x14E7A70", VA = "0x1814E8C70")]
public Bone(Transform transform, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04002F96 RID: 12182
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4002F96")]
public float length;
// Token: 0x04002F97 RID: 12183
[FieldOffset(Offset = "0x5C")]
[Token(Token = "0x4002F97")]
public float sqrMag;
// Token: 0x04002F98 RID: 12184
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002F98")]
public Vector3 axis;
// Token: 0x04002F99 RID: 12185
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4002F99")]
private RotationLimit _rotationLimit;
// Token: 0x04002F9A RID: 12186
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4002F9A")]
private bool isLimited;
}
// Token: 0x02000425 RID: 1061
[Token(Token = "0x2000425")]
[Serializable]
public class Node : IKSolver.Point
{
// Token: 0x060025FE RID: 9726 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025FE")]
[Address(RVA = "0x14F1720", Offset = "0x14F0520", VA = "0x1814F1720")]
public Node()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060025FF RID: 9727 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60025FF")]
[Address(RVA = "0x14F16D0", Offset = "0x14F04D0", VA = "0x1814F16D0")]
public Node(Transform transform)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002600 RID: 9728 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002600")]
[Address(RVA = "0x14F1760", Offset = "0x14F0560", VA = "0x1814F1760")]
public Node(Transform transform, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04002F9B RID: 12187
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4002F9B")]
public float length;
// Token: 0x04002F9C RID: 12188
[FieldOffset(Offset = "0x5C")]
[Token(Token = "0x4002F9C")]
public float effectorPositionWeight;
// Token: 0x04002F9D RID: 12189
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002F9D")]
public float effectorRotationWeight;
// Token: 0x04002F9E RID: 12190
[FieldOffset(Offset = "0x64")]
[Token(Token = "0x4002F9E")]
public Vector3 offset;
}
// Token: 0x02000426 RID: 1062
[Token(Token = "0x2000426")]
public sealed class UpdateDelegate : MulticastDelegate
{
// Token: 0x06002601 RID: 9729 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002601")]
[Address(RVA = "0x44EA10", Offset = "0x44D810", VA = "0x18044EA10")]
public UpdateDelegate(object @object, IntPtr method)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002602 RID: 9730 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002602")]
[Address(RVA = "0x122AE30", Offset = "0x1229C30", VA = "0x18122AE30", Slot = "12")]
public void Invoke()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002603 RID: 9731 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002603")]
[Address(RVA = "0x5FA1E0", Offset = "0x5F8FE0", VA = "0x1805FA1E0", Slot = "13")]
public IAsyncResult BeginInvoke(AsyncCallback callback, object @object)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002604 RID: 9732 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002604")]
[Address(RVA = "0x44E730", Offset = "0x44D530", VA = "0x18044E730", Slot = "14")]
public void EndInvoke(IAsyncResult result)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x02000427 RID: 1063
[Token(Token = "0x2000427")]
public sealed class IterationDelegate : MulticastDelegate
{
// Token: 0x06002605 RID: 9733 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002605")]
[Address(RVA = "0x44EA10", Offset = "0x44D810", VA = "0x18044EA10")]
public IterationDelegate(object @object, IntPtr method)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002606 RID: 9734 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002606")]
[Address(RVA = "0x55BA30", Offset = "0x55A830", VA = "0x18055BA30", Slot = "12")]
public void Invoke(int i)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002607 RID: 9735 RVA: 0x00055664 File Offset: 0x00053864
[Token(Token = "0x6002607")]
[Address(RVA = "0x14EB4A0", Offset = "0x14EA2A0", VA = "0x1814EB4A0", Slot = "13")]
public IAsyncResult BeginInvoke(int i, AsyncCallback callback, object @object)
{
return typeof(int).TypeHandle;
}
// Token: 0x06002608 RID: 9736 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002608")]
[Address(RVA = "0x44E730", Offset = "0x44D530", VA = "0x18044E730", Slot = "14")]
public void EndInvoke(IAsyncResult result)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
}
}

View File

@@ -0,0 +1,199 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000428 RID: 1064
[Token(Token = "0x2000428")]
[Serializable]
public class IKSolverAim : IKSolverHeuristic
{
// Token: 0x06002609 RID: 9737 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002609")]
[Address(RVA = "0x1587630", Offset = "0x1586430", VA = "0x181587630")]
public float GetAngle()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17000233 RID: 563
// (get) Token: 0x0600260A RID: 9738 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000233")]
public Vector3 transformAxis
{
[Token(Token = "0x600260A")]
[Address(RVA = "0x1589100", Offset = "0x1587F00", VA = "0x181589100")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x17000234 RID: 564
// (get) Token: 0x0600260B RID: 9739 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000234")]
public Vector3 transformPoleAxis
{
[Token(Token = "0x600260B")]
[Address(RVA = "0x1589180", Offset = "0x1587F80", VA = "0x181589180")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x0600260C RID: 9740 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600260C")]
[Address(RVA = "0x1587C90", Offset = "0x1586A90", VA = "0x181587C90", Slot = "10")]
protected override void OnInitiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600260D RID: 9741 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600260D")]
[Address(RVA = "0x1588050", Offset = "0x1586E50", VA = "0x181588050", Slot = "11")]
protected override void OnUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17000235 RID: 565
// (get) Token: 0x0600260E RID: 9742 RVA: 0x00055678 File Offset: 0x00053878
[Token(Token = "0x17000235")]
protected override int minBones
{
[Token(Token = "0x600260E")]
[Address(RVA = "0x370C60", Offset = "0x36FA60", VA = "0x180370C60", Slot = "12")]
get
{
return 1;
}
}
// Token: 0x0600260F RID: 9743 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600260F")]
[Address(RVA = "0x1588E30", Offset = "0x1587C30", VA = "0x181588E30")]
private void Solve()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002610 RID: 9744 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002610")]
[Address(RVA = "0x1587750", Offset = "0x1586550", VA = "0x181587750")]
private Vector3 GetClampedIKPosition()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002611 RID: 9745 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002611")]
[Address(RVA = "0x15887A0", Offset = "0x15875A0", VA = "0x1815887A0")]
private void RotateToTarget(Vector3 targetPosition, IKSolver.Bone bone, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17000236 RID: 566
// (get) Token: 0x06002612 RID: 9746 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000236")]
protected override Vector3 localDirection
{
[Token(Token = "0x6002612")]
[Address(RVA = "0x1589030", Offset = "0x1587E30", VA = "0x181589030", Slot = "15")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x06002613 RID: 9747 RVA: 0x00055688 File Offset: 0x00053888
[Token(Token = "0x6002613")]
[Address(RVA = "0x1588F70", Offset = "0x1587D70", VA = "0x181588F70")]
public IKSolverAim()
{
float z = Vector3.forward.z;
this.axis.z = z;
float z2 = Vector3.up.z;
this.poleAxis.z = z2;
this.clampWeight = 0.1f;
this.clampSmoothing = (int)((ulong)2L);
this.maxIterations = (int)((ulong)4L);
int num = 0;
this.useRotationLimits = true;
IKSolver.Bone[] array = new IKSolver.Bone[num];
this.bones = array;
base..ctor();
}
// Token: 0x04002F9F RID: 12191
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x4002F9F")]
public Transform transform;
// Token: 0x04002FA0 RID: 12192
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x4002FA0")]
public Vector3 axis;
// Token: 0x04002FA1 RID: 12193
[FieldOffset(Offset = "0x9C")]
[Token(Token = "0x4002FA1")]
public Vector3 poleAxis;
// Token: 0x04002FA2 RID: 12194
[FieldOffset(Offset = "0xA8")]
[Token(Token = "0x4002FA2")]
public Vector3 polePosition;
// Token: 0x04002FA3 RID: 12195
[FieldOffset(Offset = "0xB4")]
[Token(Token = "0x4002FA3")]
[Range(0f, 1f)]
public float poleWeight;
// Token: 0x04002FA4 RID: 12196
[FieldOffset(Offset = "0xB8")]
[Token(Token = "0x4002FA4")]
public Transform poleTarget;
// Token: 0x04002FA5 RID: 12197
[FieldOffset(Offset = "0xC0")]
[Token(Token = "0x4002FA5")]
[Range(0f, 1f)]
public float clampWeight;
// Token: 0x04002FA6 RID: 12198
[FieldOffset(Offset = "0xC4")]
[Token(Token = "0x4002FA6")]
[Attribute(Name = "RangeAttribute", RVA = "0xDF060", Offset = "0xDE460")]
public int clampSmoothing;
// Token: 0x04002FA7 RID: 12199
[FieldOffset(Offset = "0xC8")]
[Token(Token = "0x4002FA7")]
public IKSolver.IterationDelegate OnPreIteration;
// Token: 0x04002FA8 RID: 12200
[FieldOffset(Offset = "0xD0")]
[Token(Token = "0x4002FA8")]
private float step;
// Token: 0x04002FA9 RID: 12201
[FieldOffset(Offset = "0xD4")]
[Token(Token = "0x4002FA9")]
private Vector3 clampedIKPosition;
// Token: 0x04002FAA RID: 12202
[FieldOffset(Offset = "0xE0")]
[Token(Token = "0x4002FAA")]
private RotationLimit transformLimit;
// Token: 0x04002FAB RID: 12203
[FieldOffset(Offset = "0xE8")]
[Token(Token = "0x4002FAB")]
private Transform lastTransform;
}
}

View File

@@ -0,0 +1,62 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000429 RID: 1065
[Token(Token = "0x2000429")]
[Serializable]
public class IKSolverCCD : IKSolverHeuristic
{
// Token: 0x06002614 RID: 9748 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002614")]
[Address(RVA = "0x1589200", Offset = "0x1588000", VA = "0x181589200")]
public void FadeOutBoneWeights()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002615 RID: 9749 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002615")]
[Address(RVA = "0x15892E0", Offset = "0x15880E0", VA = "0x1815892E0", Slot = "10")]
protected override void OnInitiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002616 RID: 9750 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002616")]
[Address(RVA = "0x1589370", Offset = "0x1588170", VA = "0x181589370", Slot = "11")]
protected override void OnUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002617 RID: 9751 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002617")]
[Address(RVA = "0x1589690", Offset = "0x1588490", VA = "0x181589690")]
private void Solve(Vector3 targetPosition)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002618 RID: 9752 RVA: 0x00055700 File Offset: 0x00053900
[Token(Token = "0x6002618")]
[Address(RVA = "0x158A000", Offset = "0x1588E00", VA = "0x18158A000")]
public IKSolverCCD()
{
this.maxIterations = (int)((ulong)4L);
int num = 0;
this.useRotationLimits = true;
IKSolver.Bone[] array = new IKSolver.Bone[num];
this.bones = array;
base..ctor();
}
// Token: 0x04002FAC RID: 12204
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x4002FAC")]
public IKSolver.IterationDelegate OnPreIteration;
}
}

View File

@@ -0,0 +1,241 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200042A RID: 1066
[Token(Token = "0x200042A")]
[Serializable]
public class IKSolverFABRIK : IKSolverHeuristic
{
// Token: 0x06002619 RID: 9753 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002619")]
[Address(RVA = "0x158E410", Offset = "0x158D210", VA = "0x18158E410")]
public void SolveForward(Vector3 position)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600261A RID: 9754 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600261A")]
[Address(RVA = "0x158E340", Offset = "0x158D140", VA = "0x18158E340")]
public void SolveBackward(Vector3 position)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600261B RID: 9755 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600261B")]
[Address(RVA = "0x158C4D0", Offset = "0x158B2D0", VA = "0x18158C4D0", Slot = "5")]
public override Vector3 GetIKPosition()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600261C RID: 9756 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600261C")]
[Address(RVA = "0x158D530", Offset = "0x158C330", VA = "0x18158D530", Slot = "10")]
protected override void OnInitiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600261D RID: 9757 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600261D")]
[Address(RVA = "0x158E030", Offset = "0x158CE30", VA = "0x18158E030", Slot = "11")]
protected override void OnUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17000237 RID: 567
// (get) Token: 0x0600261E RID: 9758 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000237")]
protected override bool boneLengthCanBeZero
{
[Token(Token = "0x600261E")]
[Address(RVA = "0x290BB0", Offset = "0x28F9B0", VA = "0x180290BB0", Slot = "13")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x0600261F RID: 9759 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600261F")]
[Address(RVA = "0x158E4C0", Offset = "0x158D2C0", VA = "0x18158E4C0")]
private Vector3 SolveJoint(Vector3 pos1, Vector3 pos2, float length)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002620 RID: 9760 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002620")]
[Address(RVA = "0x158DA60", Offset = "0x158C860", VA = "0x18158DA60")]
private void OnPreSolve()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002621 RID: 9761 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002621")]
[Address(RVA = "0x158D910", Offset = "0x158C710", VA = "0x18158D910")]
private void OnPostSolve()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002622 RID: 9762 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002622")]
[Address(RVA = "0x158E600", Offset = "0x158D400", VA = "0x18158E600")]
private void Solve(Vector3 targetPosition)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002623 RID: 9763 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002623")]
[Address(RVA = "0x158C1E0", Offset = "0x158AFE0", VA = "0x18158C1E0")]
private void ForwardReach(Vector3 position)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002624 RID: 9764 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002624")]
[Address(RVA = "0x158E880", Offset = "0x158D680", VA = "0x18158E880")]
private void SolverMove(int index, Vector3 offset)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002625 RID: 9765 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002625")]
[Address(RVA = "0x158EA00", Offset = "0x158D800", VA = "0x18158EA00")]
private void SolverRotate(int index, Quaternion rotation, bool recursive)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002626 RID: 9766 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002626")]
[Address(RVA = "0x158E940", Offset = "0x158D740", VA = "0x18158E940")]
private void SolverRotateChildren(int index, Quaternion rotation)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002627 RID: 9767 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002627")]
[Address(RVA = "0x158E6B0", Offset = "0x158D4B0", VA = "0x18158E6B0")]
private void SolverMoveChildrenAroundPoint(int index, Quaternion rotation)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002628 RID: 9768 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002628")]
[Address(RVA = "0x158C860", Offset = "0x158B660", VA = "0x18158C860")]
private Quaternion GetParentSolverRotation(int index)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002629 RID: 9769 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002629")]
[Address(RVA = "0x158C6E0", Offset = "0x158B4E0", VA = "0x18158C6E0")]
private Vector3 GetParentSolverPosition(int index)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600262A RID: 9770 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600262A")]
[Address(RVA = "0x158C580", Offset = "0x158B380", VA = "0x18158C580")]
private Quaternion GetLimitedRotation(int index, Quaternion q, out bool changed)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600262B RID: 9771 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600262B")]
[Address(RVA = "0x158C9D0", Offset = "0x158B7D0", VA = "0x18158C9D0")]
private void LimitForward(int rotateBone, int limitBone)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600262C RID: 9772 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600262C")]
[Address(RVA = "0x158C1A0", Offset = "0x158AFA0", VA = "0x18158C1A0")]
private void BackwardReach(Vector3 position)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600262D RID: 9773 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600262D")]
[Address(RVA = "0x158BFB0", Offset = "0x158ADB0", VA = "0x18158BFB0")]
private void BackwardReachUnlimited(Vector3 position)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600262E RID: 9774 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600262E")]
[Address(RVA = "0x158B870", Offset = "0x158A670", VA = "0x18158B870")]
private void BackwardReachLimited(Vector3 position)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600262F RID: 9775 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600262F")]
[Address(RVA = "0x158D370", Offset = "0x158C170", VA = "0x18158D370")]
private void MapToSolverPositions()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002630 RID: 9776 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002630")]
[Address(RVA = "0x158D250", Offset = "0x158C050", VA = "0x18158D250")]
private void MapToSolverPositionsLimited()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002631 RID: 9777 RVA: 0x00055734 File Offset: 0x00053934
[Token(Token = "0x6002631")]
[Address(RVA = "0x158EAE0", Offset = "0x158D8E0", VA = "0x18158EAE0")]
public IKSolverFABRIK()
{
bool[] array = new bool[0];
this.limitedBones = array;
Vector3[] array2 = new Vector3[0];
this.solverLocalPositions = array2;
this.maxIterations = (int)((ulong)4L);
int num = 0;
this.useRotationLimits = true;
IKSolver.Bone[] array3 = new IKSolver.Bone[num];
this.bones = array3;
base..ctor();
}
// Token: 0x04002FAD RID: 12205
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x4002FAD")]
public IKSolver.IterationDelegate OnPreIteration;
// Token: 0x04002FAE RID: 12206
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x4002FAE")]
private bool[] limitedBones;
// Token: 0x04002FAF RID: 12207
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x4002FAF")]
private Vector3[] solverLocalPositions;
}
}

View File

@@ -0,0 +1,133 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200042B RID: 1067
[Token(Token = "0x200042B")]
[Serializable]
public class IKSolverFABRIKRoot : IKSolver
{
// Token: 0x06002632 RID: 9778 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002632")]
[Address(RVA = "0x158A9E0", Offset = "0x15897E0", VA = "0x18158A9E0", Slot = "4")]
public override bool IsValid(ref string message)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002633 RID: 9779 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002633")]
[Address(RVA = "0x158B740", Offset = "0x158A540", VA = "0x18158B740", Slot = "9")]
public override void StoreDefaultLocalState()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002634 RID: 9780 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002634")]
[Address(RVA = "0x158A1D0", Offset = "0x1588FD0", VA = "0x18158A1D0", Slot = "8")]
public override void FixTransforms()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002635 RID: 9781 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002635")]
[Address(RVA = "0x158B320", Offset = "0x158A120", VA = "0x18158B320", Slot = "10")]
protected override void OnInitiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002636 RID: 9782 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002636")]
[Address(RVA = "0x158A940", Offset = "0x1589740", VA = "0x18158A940")]
private bool IsRoot(int index)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002637 RID: 9783 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002637")]
[Address(RVA = "0x158B4E0", Offset = "0x158A2E0", VA = "0x18158B4E0", Slot = "11")]
protected override void OnUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002638 RID: 9784 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002638")]
[Address(RVA = "0x158A730", Offset = "0x1589530", VA = "0x18158A730", Slot = "6")]
public override IKSolver.Point[] GetPoints()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002639 RID: 9785 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002639")]
[Address(RVA = "0x158A680", Offset = "0x1589480", VA = "0x18158A680", Slot = "7")]
public override IKSolver.Point GetPoint(Transform transform)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600263A RID: 9786 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600263A")]
[Address(RVA = "0x158A060", Offset = "0x1588E60", VA = "0x18158A060")]
private void AddPointsToArray(ref IKSolver.Point[] array, FABRIKChain chain)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600263B RID: 9787 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600263B")]
[Address(RVA = "0x158A2A0", Offset = "0x15890A0", VA = "0x18158A2A0")]
private Vector3 GetCentroid()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600263C RID: 9788 RVA: 0x00055784 File Offset: 0x00053984
[Token(Token = "0x600263C")]
[Address(RVA = "0x158B810", Offset = "0x158A610", VA = "0x18158B810")]
public IKSolverFABRIKRoot()
{
FABRIKChain[] array = new FABRIKChain[0];
this.chains = array;
base..ctor();
}
// Token: 0x04002FB0 RID: 12208
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4002FB0")]
public int iterations = (int)((ulong)4L);
// Token: 0x04002FB1 RID: 12209
[FieldOffset(Offset = "0x5C")]
[Token(Token = "0x4002FB1")]
[Range(0f, 1f)]
public float rootPin;
// Token: 0x04002FB2 RID: 12210
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002FB2")]
public FABRIKChain[] chains;
// Token: 0x04002FB3 RID: 12211
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4002FB3")]
private bool zeroWeightApplied;
// Token: 0x04002FB4 RID: 12212
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4002FB4")]
private bool[] isRoot;
// Token: 0x04002FB5 RID: 12213
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4002FB5")]
private Vector3 rootDefaultPosition;
}
}

View File

@@ -0,0 +1,478 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200042C RID: 1068
[Token(Token = "0x200042C")]
[Serializable]
public class IKSolverFullBody : IKSolver
{
// Token: 0x0600263D RID: 9789 RVA: 0x000557B0 File Offset: 0x000539B0
[Token(Token = "0x600263D")]
[Address(RVA = "0x1593D30", Offset = "0x1592B30", VA = "0x181593D30")]
public IKEffector GetEffector(Transform t)
{
IKEffector[] array = this.effectors;
int num = 0;
if (num < array.Length)
{
bool flag = array[num].bone == t;
IKEffector[] array2 = this.effectors;
if (!flag)
{
num++;
}
return array2[num];
}
throw new NullReferenceException();
}
// Token: 0x0600263E RID: 9790 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600263E")]
[Address(RVA = "0x1593CE0", Offset = "0x1592AE0", VA = "0x181593CE0")]
public FBIKChain GetChain(Transform transform)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600263F RID: 9791 RVA: 0x00055800 File Offset: 0x00053A00
[Token(Token = "0x600263F")]
[Address(RVA = "0x1593BB0", Offset = "0x15929B0", VA = "0x181593BB0")]
public int GetChainIndex(Transform transform)
{
FBIKChain[] array = this.chain;
int num = 0;
int num2 = 0;
if (num2 < array.Length)
{
int num3 = 0;
IKSolver.Node[] nodes = this.chain[num].nodes;
if (num3 < nodes.Length)
{
if (nodes[num3].transform == transform)
{
return num;
}
num3++;
}
num++;
return num;
}
throw new NullReferenceException();
}
// Token: 0x06002640 RID: 9792 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002640")]
[Address(RVA = "0x1593E50", Offset = "0x1592C50", VA = "0x181593E50")]
public IKSolver.Node GetNode(int chainIndex, int nodeIndex)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002641 RID: 9793 RVA: 0x00055868 File Offset: 0x00053A68
[Token(Token = "0x6002641")]
[Address(RVA = "0x1593B20", Offset = "0x1592920", VA = "0x181593B20")]
public void GetChainAndNodeIndexes(Transform transform, out int chainIndex, out int nodeIndex)
{
int chainIndex2 = this.GetChainIndex(transform);
chainIndex.m_value = chainIndex2;
if (chainIndex2 != -1)
{
int nodeIndex2 = this.chain[chainIndex2].GetNodeIndex(transform);
nodeIndex.m_value = nodeIndex2;
}
}
// Token: 0x06002642 RID: 9794 RVA: 0x000558A8 File Offset: 0x00053AA8
[Token(Token = "0x6002642")]
[Address(RVA = "0x1594050", Offset = "0x1592E50", VA = "0x181594050", Slot = "6")]
public override IKSolver.Point[] GetPoints()
{
IKSolver.Point[] array2;
int num5;
int num6;
IKSolver.Node[] nodes2;
do
{
FBIKChain[] array = this.chain;
int num = 0;
int num2 = 0;
int num3 = 0;
int length = array.Length;
if (num3 < length)
{
IKSolver.Node[] nodes = array[num2].nodes;
num2++;
}
array2 = new IKSolver.Point[num];
FBIKChain[] array3 = this.chain;
int num4 = 0;
num5 = 0;
if (num4 >= array3.Length)
{
return array2;
}
num6 = 0;
nodes2 = this.chain[num5].nodes;
if (num6 >= nodes2.Length)
{
goto IL_97;
}
}
while (nodes2[num6] != 0 && num6 == 0);
throw new IndexOutOfRangeException();
IL_97:
num5++;
return array2;
}
// Token: 0x06002643 RID: 9795 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002643")]
[Address(RVA = "0x1593EC0", Offset = "0x1592CC0", VA = "0x181593EC0", Slot = "7")]
public override IKSolver.Point GetPoint(Transform transform)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002644 RID: 9796 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002644")]
[Address(RVA = "0x15941E0", Offset = "0x1592FE0", VA = "0x1815941E0", Slot = "4")]
public override bool IsValid(ref string message)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002645 RID: 9797 RVA: 0x00055960 File Offset: 0x00053B60
[Token(Token = "0x6002645")]
[Address(RVA = "0x1594F30", Offset = "0x1593D30", VA = "0x181594F30", Slot = "9")]
public override void StoreDefaultLocalState()
{
this.spineMapping.StoreDefaultLocalState();
IKMappingLimb[] array = this.limbMappings;
int num = 0;
if (num < array.Length)
{
array[num].StoreDefaultLocalState();
IKMappingLimb[] array2 = this.limbMappings;
num++;
}
IKMappingBone[] array3 = this.boneMappings;
if (num < array3.Length)
{
array3[num].StoreDefaultLocalState();
IKMappingBone[] array4 = this.boneMappings;
num++;
while (array4 != 0)
{
}
}
IKSolver.UpdateDelegate onStoreDefaultLocalState = this.OnStoreDefaultLocalState;
if (onStoreDefaultLocalState != 0)
{
onStoreDefaultLocalState();
}
}
// Token: 0x06002646 RID: 9798 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002646")]
[Address(RVA = "0x1593A00", Offset = "0x1592800", VA = "0x181593A00", Slot = "8")]
public override void FixTransforms()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002647 RID: 9799 RVA: 0x000559E8 File Offset: 0x00053BE8
[Token(Token = "0x6002647")]
[Address(RVA = "0x1594480", Offset = "0x1593280", VA = "0x181594480", Slot = "10")]
protected override void OnInitiate()
{
int num = 0;
FBIKChain[] array = this.chain;
if (num < array.Length)
{
array[num].Initiate(this);
FBIKChain[] array2 = this.chain;
num++;
}
IKEffector[] array3 = this.effectors;
int length = array3.Length;
if (num < length)
{
array3[num].Initiate(this);
num++;
}
this.spineMapping.Initiate(this);
IKMappingBone[] array4 = this.boneMappings;
int length2 = array4.Length;
if (num < length2)
{
array4[num].Initiate(this);
num++;
}
IKMappingLimb[] array5 = this.limbMappings;
int length3 = array5.Length;
if (num < length3)
{
array5[num].Initiate(this);
num++;
}
}
// Token: 0x06002648 RID: 9800 RVA: 0x00055AA8 File Offset: 0x00053CA8
[Token(Token = "0x6002648")]
[Address(RVA = "0x1594650", Offset = "0x1593450", VA = "0x181594650", Slot = "11")]
protected override void OnUpdate()
{
do
{
float ikpositionWeight = this.IKPositionWeight;
int num = 0;
IKEffector[] array2;
if (num < (int)ikpositionWeight)
{
if (this.chain.Length == 0)
{
break;
}
float num2 = Mathf.Clamp(ikpositionWeight, (float)num, 1f);
IKSolver.UpdateDelegate onPreRead = this.OnPreRead;
this.IKPositionWeight = num2;
if (onPreRead != 0)
{
onPreRead();
}
this.ReadPose();
IKSolver.UpdateDelegate onPreSolve = this.OnPreSolve;
if (onPreSolve != 0)
{
onPreSolve();
}
this.Solve();
IKSolver.UpdateDelegate onPostSolve = this.OnPostSolve;
if (onPostSolve != 0)
{
onPostSolve();
}
this.WritePose();
IKEffector[] array = this.effectors;
int num3 = 0;
if (num3 >= array.Length)
{
break;
}
array[num3].OnPostWrite();
array2 = this.effectors;
num3++;
}
IKEffector ikeffector = array2[9];
int num4 = 0;
if (num4 >= ikeffector.target)
{
break;
}
Vector3 zero = Vector3.zero;
num4++;
}
while (this.effectors != 0);
}
// Token: 0x06002649 RID: 9801 RVA: 0x00055BA0 File Offset: 0x00053DA0
[Token(Token = "0x6002649")]
[Address(RVA = "0x1594800", Offset = "0x1593600", VA = "0x181594800", Slot = "12")]
protected virtual void ReadPose()
{
FBIKChain[] array = this.chain;
int num = 0;
if (num < array.Length)
{
FBIKChain fbikchain = array[num];
IKConstraintBend bendConstraint = fbikchain.bendConstraint;
if ((bendConstraint.<initiated>k__BackingField ? 1 : 0) != num)
{
IKSolver.Node[] nodes = fbikchain.nodes;
float ikpositionWeight = this.IKPositionWeight;
Transform transform = nodes[2].transform;
float positionWeight = this.GetEffector(transform).positionWeight;
bendConstraint.LimitBend(ikpositionWeight, positionWeight);
}
num++;
}
IKEffector[] array2 = this.effectors;
if (num < array2.Length)
{
array2[num].ResetOffset(this);
IKEffector[] array3 = this.effectors;
num++;
while (array3 != 0)
{
}
}
if (num < array2.Length)
{
array2[num].OnPreSolve(this);
IKEffector[] array4 = this.effectors;
num++;
while (array4 != 0)
{
}
}
FBIKChain[] array5 = this.chain;
if (num < array5.Length)
{
FBIKChain fbikchain2 = array5[num];
bool flag = this.iterations > num;
fbikchain2.ReadPose(this, flag);
FBIKChain[] array6 = this.chain;
num++;
while (array6 != 0)
{
}
}
if (this.iterations > num)
{
this.spineMapping.ReadPose();
IKMappingBone[] array7 = this.boneMappings;
if (num < array7.Length)
{
array7[num].ReadPose();
IKMappingBone[] array8 = this.boneMappings;
num++;
while (array8 != 0)
{
}
}
}
IKMappingLimb[] array9 = this.limbMappings;
if (num < array9.Length)
{
array9[num].ReadPose();
IKMappingLimb[] array10 = this.limbMappings;
num++;
while (array10 != 0)
{
}
}
}
// Token: 0x0600264A RID: 9802 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600264A")]
[Address(RVA = "0x1594B50", Offset = "0x1593950", VA = "0x181594B50", Slot = "13")]
protected virtual void Solve()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600264B RID: 9803 RVA: 0x00055D2C File Offset: 0x00053F2C
[Token(Token = "0x600264B")]
[Address(RVA = "0x15939B0", Offset = "0x15927B0", VA = "0x1815939B0", Slot = "14")]
protected virtual void ApplyBendConstraints()
{
this.chain[0].SolveTrigonometric(this, true);
}
// Token: 0x0600264C RID: 9804 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600264C")]
[Address(RVA = "0x1595040", Offset = "0x1593E40", VA = "0x181595040", Slot = "15")]
protected virtual void WritePose()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600264D RID: 9805 RVA: 0x00055D54 File Offset: 0x00053F54
[Token(Token = "0x600264D")]
[Address(RVA = "0x1595170", Offset = "0x1593F70", VA = "0x181595170")]
public IKSolverFullBody()
{
FBIKChain[] array = new FBIKChain[0];
this.chain = array;
IKEffector[] array2 = new IKEffector[0];
this.effectors = array2;
IKMappingSpine ikmappingSpine = new IKMappingSpine();
this.spineMapping = ikmappingSpine;
IKMappingBone[] array3 = new IKMappingBone[0];
this.boneMappings = array3;
IKMappingLimb[] array4 = new IKMappingLimb[0];
this.limbMappings = array4;
this.FABRIKPass = true;
base..ctor();
}
// Token: 0x04002FB6 RID: 12214
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4002FB6")]
[Range(0f, 10f)]
public int iterations = (int)((ulong)4L);
// Token: 0x04002FB7 RID: 12215
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002FB7")]
public FBIKChain[] chain;
// Token: 0x04002FB8 RID: 12216
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4002FB8")]
public IKEffector[] effectors;
// Token: 0x04002FB9 RID: 12217
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4002FB9")]
public IKMappingSpine spineMapping;
// Token: 0x04002FBA RID: 12218
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4002FBA")]
public IKMappingBone[] boneMappings;
// Token: 0x04002FBB RID: 12219
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x4002FBB")]
public IKMappingLimb[] limbMappings;
// Token: 0x04002FBC RID: 12220
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x4002FBC")]
public bool FABRIKPass;
// Token: 0x04002FBD RID: 12221
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x4002FBD")]
public IKSolver.UpdateDelegate OnPreRead;
// Token: 0x04002FBE RID: 12222
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x4002FBE")]
public IKSolver.UpdateDelegate OnPreSolve;
// Token: 0x04002FBF RID: 12223
[FieldOffset(Offset = "0xA0")]
[Token(Token = "0x4002FBF")]
public IKSolver.IterationDelegate OnPreIteration;
// Token: 0x04002FC0 RID: 12224
[FieldOffset(Offset = "0xA8")]
[Token(Token = "0x4002FC0")]
public IKSolver.IterationDelegate OnPostIteration;
// Token: 0x04002FC1 RID: 12225
[FieldOffset(Offset = "0xB0")]
[Token(Token = "0x4002FC1")]
public IKSolver.UpdateDelegate OnPreBend;
// Token: 0x04002FC2 RID: 12226
[FieldOffset(Offset = "0xB8")]
[Token(Token = "0x4002FC2")]
public IKSolver.UpdateDelegate OnPostSolve;
// Token: 0x04002FC3 RID: 12227
[FieldOffset(Offset = "0xC0")]
[Token(Token = "0x4002FC3")]
public IKSolver.UpdateDelegate OnStoreDefaultLocalState;
// Token: 0x04002FC4 RID: 12228
[FieldOffset(Offset = "0xC8")]
[Token(Token = "0x4002FC4")]
public IKSolver.UpdateDelegate OnFixTransforms;
}
}

View File

@@ -0,0 +1,537 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200042F RID: 1071
[Token(Token = "0x200042F")]
[Serializable]
public class IKSolverFullBodyBiped : IKSolverFullBody
{
// Token: 0x17000238 RID: 568
// (get) Token: 0x0600264E RID: 9806 RVA: 0x00055DC0 File Offset: 0x00053FC0
[Token(Token = "0x17000238")]
public IKEffector bodyEffector
{
[Token(Token = "0x600264E")]
[Address(RVA = "0x1593530", Offset = "0x1592330", VA = "0x181593530")]
get
{
return this.effectors[0];
}
}
// Token: 0x17000239 RID: 569
// (get) Token: 0x0600264F RID: 9807 RVA: 0x00055DE0 File Offset: 0x00053FE0
[Token(Token = "0x17000239")]
public IKEffector leftShoulderEffector
{
[Token(Token = "0x600264F")]
[Address(RVA = "0x15936F0", Offset = "0x15924F0", VA = "0x1815936F0")]
get
{
return this.effectors[1];
}
}
// Token: 0x1700023A RID: 570
// (get) Token: 0x06002650 RID: 9808 RVA: 0x00055E00 File Offset: 0x00054000
[Token(Token = "0x1700023A")]
public IKEffector rightShoulderEffector
{
[Token(Token = "0x6002650")]
[Address(RVA = "0x1593910", Offset = "0x1592710", VA = "0x181593910")]
get
{
return this.effectors[2];
}
}
// Token: 0x1700023B RID: 571
// (get) Token: 0x06002651 RID: 9809 RVA: 0x00055E20 File Offset: 0x00054020
[Token(Token = "0x1700023B")]
public IKEffector leftThighEffector
{
[Token(Token = "0x6002651")]
[Address(RVA = "0x1593730", Offset = "0x1592530", VA = "0x181593730")]
get
{
return this.effectors[3];
}
}
// Token: 0x1700023C RID: 572
// (get) Token: 0x06002652 RID: 9810 RVA: 0x00055E40 File Offset: 0x00054040
[Token(Token = "0x1700023C")]
public IKEffector rightThighEffector
{
[Token(Token = "0x6002652")]
[Address(RVA = "0x1593950", Offset = "0x1592750", VA = "0x181593950")]
get
{
return this.effectors[4];
}
}
// Token: 0x1700023D RID: 573
// (get) Token: 0x06002653 RID: 9811 RVA: 0x00055E60 File Offset: 0x00054060
[Token(Token = "0x1700023D")]
public IKEffector leftHandEffector
{
[Token(Token = "0x6002653")]
[Address(RVA = "0x1593630", Offset = "0x1592430", VA = "0x181593630")]
get
{
return this.effectors[5];
}
}
// Token: 0x1700023E RID: 574
// (get) Token: 0x06002654 RID: 9812 RVA: 0x00055E80 File Offset: 0x00054080
[Token(Token = "0x1700023E")]
public IKEffector rightHandEffector
{
[Token(Token = "0x6002654")]
[Address(RVA = "0x1593850", Offset = "0x1592650", VA = "0x181593850")]
get
{
return this.effectors[6];
}
}
// Token: 0x1700023F RID: 575
// (get) Token: 0x06002655 RID: 9813 RVA: 0x00055EA0 File Offset: 0x000540A0
[Token(Token = "0x1700023F")]
public IKEffector leftFootEffector
{
[Token(Token = "0x6002655")]
[Address(RVA = "0x15935F0", Offset = "0x15923F0", VA = "0x1815935F0")]
get
{
return this.effectors[7];
}
}
// Token: 0x17000240 RID: 576
// (get) Token: 0x06002656 RID: 9814 RVA: 0x00055EC0 File Offset: 0x000540C0
[Token(Token = "0x17000240")]
public IKEffector rightFootEffector
{
[Token(Token = "0x6002656")]
[Address(RVA = "0x1593810", Offset = "0x1592610", VA = "0x181593810")]
get
{
return this.effectors[8];
}
}
// Token: 0x17000241 RID: 577
// (get) Token: 0x06002657 RID: 9815 RVA: 0x00055EE0 File Offset: 0x000540E0
[Token(Token = "0x17000241")]
public FBIKChain leftArmChain
{
[Token(Token = "0x6002657")]
[Address(RVA = "0x1593570", Offset = "0x1592370", VA = "0x181593570")]
get
{
return this.chain[1];
}
}
// Token: 0x17000242 RID: 578
// (get) Token: 0x06002658 RID: 9816 RVA: 0x00055F00 File Offset: 0x00054100
[Token(Token = "0x17000242")]
public FBIKChain rightArmChain
{
[Token(Token = "0x6002658")]
[Address(RVA = "0x1593790", Offset = "0x1592590", VA = "0x181593790")]
get
{
return this.chain[2];
}
}
// Token: 0x17000243 RID: 579
// (get) Token: 0x06002659 RID: 9817 RVA: 0x00055F20 File Offset: 0x00054120
[Token(Token = "0x17000243")]
public FBIKChain leftLegChain
{
[Token(Token = "0x6002659")]
[Address(RVA = "0x1593670", Offset = "0x1592470", VA = "0x181593670")]
get
{
return this.chain[3];
}
}
// Token: 0x17000244 RID: 580
// (get) Token: 0x0600265A RID: 9818 RVA: 0x00055F40 File Offset: 0x00054140
[Token(Token = "0x17000244")]
public FBIKChain rightLegChain
{
[Token(Token = "0x600265A")]
[Address(RVA = "0x1593890", Offset = "0x1592690", VA = "0x181593890")]
get
{
return this.chain[4];
}
}
// Token: 0x17000245 RID: 581
// (get) Token: 0x0600265B RID: 9819 RVA: 0x00055F60 File Offset: 0x00054160
[Token(Token = "0x17000245")]
public IKMappingLimb leftArmMapping
{
[Token(Token = "0x600265B")]
[Address(RVA = "0x15935B0", Offset = "0x15923B0", VA = "0x1815935B0")]
get
{
return this.limbMappings[0];
}
}
// Token: 0x17000246 RID: 582
// (get) Token: 0x0600265C RID: 9820 RVA: 0x00055F80 File Offset: 0x00054180
[Token(Token = "0x17000246")]
public IKMappingLimb rightArmMapping
{
[Token(Token = "0x600265C")]
[Address(RVA = "0x15937D0", Offset = "0x15925D0", VA = "0x1815937D0")]
get
{
return this.limbMappings[1];
}
}
// Token: 0x17000247 RID: 583
// (get) Token: 0x0600265D RID: 9821 RVA: 0x00055FA0 File Offset: 0x000541A0
[Token(Token = "0x17000247")]
public IKMappingLimb leftLegMapping
{
[Token(Token = "0x600265D")]
[Address(RVA = "0x15936B0", Offset = "0x15924B0", VA = "0x1815936B0")]
get
{
return this.limbMappings[2];
}
}
// Token: 0x17000248 RID: 584
// (get) Token: 0x0600265E RID: 9822 RVA: 0x00055FC0 File Offset: 0x000541C0
[Token(Token = "0x17000248")]
public IKMappingLimb rightLegMapping
{
[Token(Token = "0x600265E")]
[Address(RVA = "0x15938D0", Offset = "0x15926D0", VA = "0x1815938D0")]
get
{
return this.limbMappings[3];
}
}
// Token: 0x17000249 RID: 585
// (get) Token: 0x0600265F RID: 9823 RVA: 0x00055FE0 File Offset: 0x000541E0
[Token(Token = "0x17000249")]
public IKMappingBone headMapping
{
[Token(Token = "0x600265F")]
[Address(RVA = "0x15900C0", Offset = "0x158EEC0", VA = "0x1815900C0")]
get
{
return this.boneMappings[0];
}
}
// Token: 0x06002660 RID: 9824 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002660")]
[Address(RVA = "0x1590C90", Offset = "0x158FA90", VA = "0x181590C90")]
public void SetChainWeights(FullBodyBipedChain c, float pull, float reach = 0f)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002661 RID: 9825 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002661")]
[Address(RVA = "0x1590D00", Offset = "0x158FB00", VA = "0x181590D00")]
public void SetEffectorWeights(FullBodyBipedEffector effector, float positionWeight, float rotationWeight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002662 RID: 9826 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002662")]
[Address(RVA = "0x158F8F0", Offset = "0x158E6F0", VA = "0x18158F8F0")]
public FBIKChain GetChain(FullBodyBipedChain c)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002663 RID: 9827 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002663")]
[Address(RVA = "0x158F9C0", Offset = "0x158E7C0", VA = "0x18158F9C0")]
public FBIKChain GetChain(FullBodyBipedEffector effector)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002664 RID: 9828 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002664")]
[Address(RVA = "0x158FBB0", Offset = "0x158E9B0", VA = "0x18158FBB0")]
public IKEffector GetEffector(FullBodyBipedEffector effector)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002665 RID: 9829 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002665")]
[Address(RVA = "0x158FDC0", Offset = "0x158EBC0", VA = "0x18158FDC0")]
public IKEffector GetEndEffector(FullBodyBipedChain c)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002666 RID: 9830 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002666")]
[Address(RVA = "0x15901C0", Offset = "0x158EFC0", VA = "0x1815901C0")]
public IKMappingLimb GetLimbMapping(FullBodyBipedChain chain)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002667 RID: 9831 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002667")]
[Address(RVA = "0x1590290", Offset = "0x158F090", VA = "0x181590290")]
public IKMappingLimb GetLimbMapping(FullBodyBipedEffector effector)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002668 RID: 9832 RVA: 0x00056000 File Offset: 0x00054200
[Token(Token = "0x6002668")]
[Address(RVA = "0x3EFFD0", Offset = "0x3EEDD0", VA = "0x1803EFFD0")]
public IKMappingSpine GetSpineMapping()
{
return this.spineMapping;
}
// Token: 0x06002669 RID: 9833 RVA: 0x00056014 File Offset: 0x00054214
[Token(Token = "0x6002669")]
[Address(RVA = "0x15900C0", Offset = "0x158EEC0", VA = "0x1815900C0")]
public IKMappingBone GetHeadMapping()
{
return this.boneMappings[0];
}
// Token: 0x0600266A RID: 9834 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600266A")]
[Address(RVA = "0x158F550", Offset = "0x158E350", VA = "0x18158F550")]
public IKConstraintBend GetBendConstraint(FullBodyBipedChain limb)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600266B RID: 9835 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600266B")]
[Address(RVA = "0x1590530", Offset = "0x158F330", VA = "0x181590530", Slot = "4")]
public override bool IsValid(ref string message)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600266C RID: 9836 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600266C")]
[Address(RVA = "0x1591130", Offset = "0x158FF30", VA = "0x181591130")]
public void SetToReferences(BipedReferences references, [Optional] Transform rootNode)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600266D RID: 9837 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600266D")]
[Address(RVA = "0x158F130", Offset = "0x158DF30", VA = "0x18158F130")]
public static Transform DetectRootNodeBone(BipedReferences references)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600266E RID: 9838 RVA: 0x00056034 File Offset: 0x00054234
[Token(Token = "0x600266E")]
[Address(RVA = "0x15910C0", Offset = "0x158FEC0", VA = "0x1815910C0")]
public void SetLimbOrientations(BipedLimbOrientations o)
{
BipedLimbOrientations.LimbOrientation leftArm = o.leftArm;
int num = 0;
this.SetLimbOrientation((FullBodyBipedChain)num, leftArm);
BipedLimbOrientations.LimbOrientation rightArm = o.rightArm;
this.SetLimbOrientation(FullBodyBipedChain.RightArm, rightArm);
BipedLimbOrientations.LimbOrientation leftLeg = o.leftLeg;
this.SetLimbOrientation(FullBodyBipedChain.LeftLeg, leftLeg);
BipedLimbOrientations.LimbOrientation rightLeg = o.rightLeg;
this.SetLimbOrientation(FullBodyBipedChain.RightLeg, rightLeg);
}
// Token: 0x1700024A RID: 586
// (get) Token: 0x0600266F RID: 9839 RVA: 0x000020D3 File Offset: 0x000002D3
// (set) Token: 0x06002670 RID: 9840 RVA: 0x00056088 File Offset: 0x00054288
[Token(Token = "0x1700024A")]
public Vector3 pullBodyOffset
{
[Token(Token = "0x600266F")]
[Address(RVA = "0x1593770", Offset = "0x1592570", VA = "0x181593770")]
[CompilerGenerated]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
[Token(Token = "0x6002670")]
[Address(RVA = "0x1593990", Offset = "0x1592790", VA = "0x181593990")]
[CompilerGenerated]
private set
{
float z = value.z;
this.<pullBodyOffset>k__BackingField.z = z;
}
}
// Token: 0x06002671 RID: 9841 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002671")]
[Address(RVA = "0x1590DB0", Offset = "0x158FBB0", VA = "0x181590DB0")]
private void SetLimbOrientation(FullBodyBipedChain chain, BipedLimbOrientations.LimbOrientation limbOrientation)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002672 RID: 9842 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002672")]
[Address(RVA = "0x1590100", Offset = "0x158EF00", VA = "0x181590100")]
private static Transform GetLeftClavicle(BipedReferences references)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002673 RID: 9843 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002673")]
[Address(RVA = "0x1590470", Offset = "0x158F270", VA = "0x181590470")]
private static Transform GetRightClavicle(BipedReferences references)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002674 RID: 9844 RVA: 0x000560A8 File Offset: 0x000542A8
[Token(Token = "0x6002674")]
[Address(RVA = "0x158F070", Offset = "0x158DE70", VA = "0x18158F070")]
private static bool Contains(Transform[] array, Transform transform)
{
int num = 0;
int length = array.Length;
if (num < length)
{
if (!(array[num] == transform))
{
num++;
}
return true;
}
throw new NullReferenceException();
}
// Token: 0x06002675 RID: 9845 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002675")]
[Address(RVA = "0x1590920", Offset = "0x158F720", VA = "0x181590920", Slot = "12")]
protected override void ReadPose()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002676 RID: 9846 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002676")]
[Address(RVA = "0x1590700", Offset = "0x158F500", VA = "0x181590700")]
private void PullBody()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002677 RID: 9847 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002677")]
[Address(RVA = "0x158F620", Offset = "0x158E420", VA = "0x18158F620")]
private Vector3 GetBodyOffset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002678 RID: 9848 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002678")]
[Address(RVA = "0x158FE90", Offset = "0x158EC90", VA = "0x18158FE90")]
private Vector3 GetHandBodyPull(IKEffector effector, FBIKChain arm, Vector3 offset)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002679 RID: 9849 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002679")]
[Address(RVA = "0x158EBB0", Offset = "0x158D9B0", VA = "0x18158EBB0", Slot = "14")]
protected override void ApplyBendConstraints()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600267A RID: 9850 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600267A")]
[Address(RVA = "0x15931F0", Offset = "0x1591FF0", VA = "0x1815931F0", Slot = "15")]
protected override void WritePose()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600267B RID: 9851 RVA: 0x000560E0 File Offset: 0x000542E0
[Token(Token = "0x600267B")]
[Address(RVA = "0x1593400", Offset = "0x1592200", VA = "0x181593400")]
public IKSolverFullBodyBiped()
{
this.iterations = (int)((ulong)4L);
FBIKChain[] array = new FBIKChain[0];
this.chain = array;
IKEffector[] array2 = new IKEffector[0];
this.effectors = array2;
IKMappingSpine ikmappingSpine = new IKMappingSpine();
this.spineMapping = ikmappingSpine;
IKMappingBone[] array3 = new IKMappingBone[0];
this.boneMappings = array3;
IKMappingLimb[] array4 = new IKMappingLimb[0];
this.limbMappings = array4;
this.FABRIKPass = true;
base..ctor();
}
// Token: 0x04002FD4 RID: 12244
[Cpp2IlInjected.FieldOffset(Offset = "0xD0")]
[Token(Token = "0x4002FD4")]
public Transform rootNode;
// Token: 0x04002FD5 RID: 12245
[Cpp2IlInjected.FieldOffset(Offset = "0xD8")]
[Token(Token = "0x4002FD5")]
[Range(0f, 1f)]
public float spineStiffness = 0.5f;
// Token: 0x04002FD6 RID: 12246
[Cpp2IlInjected.FieldOffset(Offset = "0xDC")]
[Token(Token = "0x4002FD6")]
[Range(-1f, 1f)]
public float pullBodyVertical = 0.5f;
// Token: 0x04002FD7 RID: 12247
[Cpp2IlInjected.FieldOffset(Offset = "0xE0")]
[Token(Token = "0x4002FD7")]
[Range(-1f, 1f)]
public float pullBodyHorizontal;
// Token: 0x04002FD9 RID: 12249
[Cpp2IlInjected.FieldOffset(Offset = "0xF0")]
[Token(Token = "0x4002FD9")]
private Vector3 offset;
}
}

View File

@@ -0,0 +1,232 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000430 RID: 1072
[Token(Token = "0x2000430")]
[Serializable]
public class IKSolverHeuristic : IKSolver
{
// Token: 0x0600267C RID: 9852 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600267C")]
[Address(RVA = "0x15965A0", Offset = "0x15953A0", VA = "0x1815965A0")]
public bool SetChain(Transform[] hierarchy, Transform root)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600267D RID: 9853 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600267D")]
[Address(RVA = "0x1595290", Offset = "0x1594090", VA = "0x181595290")]
public void AddBone(Transform bone)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600267E RID: 9854 RVA: 0x00056160 File Offset: 0x00054360
[Token(Token = "0x600267E")]
[Address(RVA = "0x1596A60", Offset = "0x1595860", VA = "0x181596A60", Slot = "9")]
public override void StoreDefaultLocalState()
{
IKSolver.Bone[] array = this.bones;
int num = 0;
if (num < array.Length)
{
array[num].StoreDefaultLocalState();
IKSolver.Bone[] array2 = this.bones;
num++;
}
}
// Token: 0x0600267F RID: 9855 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600267F")]
[Address(RVA = "0x1595460", Offset = "0x1594260", VA = "0x181595460", Slot = "8")]
public override void FixTransforms()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002680 RID: 9856 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002680")]
[Address(RVA = "0x1596150", Offset = "0x1594F50", VA = "0x181596150", Slot = "4")]
public override bool IsValid(ref string message)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002681 RID: 9857 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002681")]
[Address(RVA = "0x3EFFD0", Offset = "0x3EEDD0", VA = "0x1803EFFD0", Slot = "6")]
public override IKSolver.Point[] GetPoints()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002682 RID: 9858 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002682")]
[Address(RVA = "0x15954E0", Offset = "0x15942E0", VA = "0x1815954E0", Slot = "7")]
public override IKSolver.Point GetPoint(Transform transform)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x1700024B RID: 587
// (get) Token: 0x06002683 RID: 9859 RVA: 0x0005619C File Offset: 0x0005439C
[Token(Token = "0x1700024B")]
protected virtual int minBones
{
[Token(Token = "0x6002683")]
[Address(RVA = "0x51C1E0", Offset = "0x51AFE0", VA = "0x18051C1E0", Slot = "12")]
get
{
return 2;
}
}
// Token: 0x1700024C RID: 588
// (get) Token: 0x06002684 RID: 9860 RVA: 0x000561AC File Offset: 0x000543AC
[Token(Token = "0x1700024C")]
protected virtual bool boneLengthCanBeZero
{
[Token(Token = "0x6002684")]
[Address(RVA = "0x454840", Offset = "0x453640", VA = "0x180454840", Slot = "13")]
get
{
return true;
}
}
// Token: 0x1700024D RID: 589
// (get) Token: 0x06002685 RID: 9861 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x1700024D")]
protected virtual bool allowCommonParent
{
[Token(Token = "0x6002685")]
[Address(RVA = "0x290BB0", Offset = "0x28F9B0", VA = "0x180290BB0", Slot = "14")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x06002686 RID: 9862 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002686")]
[Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00", Slot = "10")]
protected override void OnInitiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002687 RID: 9863 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002687")]
[Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00", Slot = "11")]
protected override void OnUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002688 RID: 9864 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002688")]
[Address(RVA = "0x1595A60", Offset = "0x1594860", VA = "0x181595A60")]
protected void InitiateBones()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x1700024E RID: 590
// (get) Token: 0x06002689 RID: 9865 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x1700024E")]
protected virtual Vector3 localDirection
{
[Token(Token = "0x6002689")]
[Address(RVA = "0x1596AE0", Offset = "0x15958E0", VA = "0x181596AE0", Slot = "15")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x1700024F RID: 591
// (get) Token: 0x0600268A RID: 9866 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x1700024F")]
protected float positionOffset
{
[Token(Token = "0x600268A")]
[Address(RVA = "0x1596C80", Offset = "0x1595A80", VA = "0x181596C80")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x0600268B RID: 9867 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600268B")]
[Address(RVA = "0x1595600", Offset = "0x1594400", VA = "0x181595600")]
protected Vector3 GetSingularityOffset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600268C RID: 9868 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600268C")]
[Address(RVA = "0x1596780", Offset = "0x1595580", VA = "0x181596780")]
private bool SingularityDetected()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600268D RID: 9869 RVA: 0x000561BC File Offset: 0x000543BC
[Token(Token = "0x600268D")]
[Address(RVA = "0x158A000", Offset = "0x1588E00", VA = "0x18158A000")]
public IKSolverHeuristic()
{
int num = 0;
this.useRotationLimits = true;
IKSolver.Bone[] array = new IKSolver.Bone[num];
this.bones = array;
base..ctor();
}
// Token: 0x04002FDA RID: 12250
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4002FDA")]
public Transform target;
// Token: 0x04002FDB RID: 12251
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002FDB")]
public float tolerance;
// Token: 0x04002FDC RID: 12252
[FieldOffset(Offset = "0x64")]
[Token(Token = "0x4002FDC")]
public int maxIterations = (int)((ulong)4L);
// Token: 0x04002FDD RID: 12253
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4002FDD")]
public bool useRotationLimits;
// Token: 0x04002FDE RID: 12254
[FieldOffset(Offset = "0x69")]
[Token(Token = "0x4002FDE")]
public bool XY;
// Token: 0x04002FDF RID: 12255
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4002FDF")]
public IKSolver.Bone[] bones;
// Token: 0x04002FE0 RID: 12256
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4002FE0")]
protected Vector3 lastLocalDirection;
// Token: 0x04002FE1 RID: 12257
[FieldOffset(Offset = "0x84")]
[Token(Token = "0x4002FE1")]
protected float chainLength;
}
}

View File

@@ -0,0 +1,224 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000431 RID: 1073
[Token(Token = "0x2000431")]
[Serializable]
public class IKSolverLeg : IKSolver
{
// Token: 0x0600268E RID: 9870 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600268E")]
[Address(RVA = "0x15971A0", Offset = "0x1595FA0", VA = "0x1815971A0", Slot = "4")]
public override bool IsValid(ref string message)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600268F RID: 9871 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600268F")]
[Address(RVA = "0x1597D30", Offset = "0x1596B30", VA = "0x181597D30")]
public bool SetChain(Transform pelvis, Transform thigh, Transform calf, Transform foot, Transform toe, Transform root)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002690 RID: 9872 RVA: 0x000561F0 File Offset: 0x000543F0
[Token(Token = "0x6002690")]
[Address(RVA = "0x1596F70", Offset = "0x1595D70", VA = "0x181596F70", Slot = "6")]
public override IKSolver.Point[] GetPoints()
{
IKSolver.Point[] array;
IKSolver.Point point5;
for (;;)
{
array = new IKSolver.Point[5];
IKSolver.Point point = this.pelvis;
if (point == 0 || array != 0)
{
array[0] = point;
IKSolver.Point point2 = this.thigh;
if (point2 == 0 || array != 0)
{
array[1] = point2;
IKSolver.Point point3 = this.calf;
if (point3 == 0 || array != 0)
{
array[2] = point3;
IKSolver.Point point4 = this.foot;
if (point4 == 0 || array != 0)
{
array[3] = point4;
point5 = this.toe;
if (point5 == 0 || array != 0)
{
break;
}
}
}
}
}
}
array[4] = point5;
return array;
}
// Token: 0x06002691 RID: 9873 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002691")]
[Address(RVA = "0x1596D60", Offset = "0x1595B60", VA = "0x181596D60", Slot = "7")]
public override IKSolver.Point GetPoint(Transform transform)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002692 RID: 9874 RVA: 0x00056284 File Offset: 0x00054484
[Token(Token = "0x6002692")]
[Address(RVA = "0x1597F10", Offset = "0x1596D10", VA = "0x181597F10", Slot = "9")]
public override void StoreDefaultLocalState()
{
this.thigh.StoreDefaultLocalState();
this.calf.StoreDefaultLocalState();
this.foot.StoreDefaultLocalState();
this.toe.StoreDefaultLocalState();
}
// Token: 0x06002693 RID: 9875 RVA: 0x000562C4 File Offset: 0x000544C4
[Token(Token = "0x6002693")]
[Address(RVA = "0x1596D00", Offset = "0x1595B00", VA = "0x181596D00", Slot = "8")]
public override void FixTransforms()
{
this.thigh.FixTransform();
this.calf.FixTransform();
this.foot.FixTransform();
this.toe.FixTransform();
}
// Token: 0x06002694 RID: 9876 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002694")]
[Address(RVA = "0x1597680", Offset = "0x1596480", VA = "0x181597680", Slot = "10")]
protected override void OnInitiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002695 RID: 9877 RVA: 0x00056304 File Offset: 0x00054504
[Token(Token = "0x6002695")]
[Address(RVA = "0x1597700", Offset = "0x1596500", VA = "0x181597700", Slot = "11")]
protected override void OnUpdate()
{
this.Read();
IKSolverVR.Leg leg = this.leg;
float z = this.heelOffset.z;
float z2 = leg.heelPositionOffset.z;
float z3 = this.heelOffset.z;
float z4 = leg.heelPositionOffset.z;
float z5 = this.heelOffset.z;
leg.heelPositionOffset.z = z4;
this.leg.PreSolve();
this.leg.ApplyOffsets();
this.leg.Solve();
this.leg.ResetOffsets();
this.Write();
}
// Token: 0x06002696 RID: 9878 RVA: 0x000563A4 File Offset: 0x000545A4
[Token(Token = "0x6002696")]
[Address(RVA = "0x1597E00", Offset = "0x1596C00", VA = "0x181597E00")]
private void Solve()
{
IKSolverVR.Leg leg = this.leg;
float z = this.heelOffset.z;
float z2 = leg.heelPositionOffset.z;
float z3 = this.heelOffset.z;
float z4 = leg.heelPositionOffset.z;
float z5 = this.heelOffset.z;
leg.heelPositionOffset.z = z4;
this.leg.PreSolve();
this.leg.ApplyOffsets();
this.leg.Solve();
this.leg.PreSolve();
}
// Token: 0x06002697 RID: 9879 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002697")]
[Address(RVA = "0x1597820", Offset = "0x1596620", VA = "0x181597820")]
private void Read()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002698 RID: 9880 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002698")]
[Address(RVA = "0x1597F70", Offset = "0x1596D70", VA = "0x181597F70")]
private void Write()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002699 RID: 9881 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002699")]
[Address(RVA = "0x1598120", Offset = "0x1596F20", VA = "0x181598120")]
public IKSolverLeg()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04002FE2 RID: 12258
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4002FE2")]
[Range(0f, 1f)]
public float IKRotationWeight;
// Token: 0x04002FE3 RID: 12259
[FieldOffset(Offset = "0x5C")]
[Token(Token = "0x4002FE3")]
public Quaternion IKRotation;
// Token: 0x04002FE4 RID: 12260
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4002FE4")]
public IKSolver.Point pelvis;
// Token: 0x04002FE5 RID: 12261
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4002FE5")]
public IKSolver.Point thigh;
// Token: 0x04002FE6 RID: 12262
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x4002FE6")]
public IKSolver.Point calf;
// Token: 0x04002FE7 RID: 12263
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x4002FE7")]
public IKSolver.Point foot;
// Token: 0x04002FE8 RID: 12264
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x4002FE8")]
public IKSolver.Point toe;
// Token: 0x04002FE9 RID: 12265
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x4002FE9")]
public IKSolverVR.Leg leg;
// Token: 0x04002FEA RID: 12266
[FieldOffset(Offset = "0xA0")]
[Token(Token = "0x4002FEA")]
public Vector3 heelOffset;
// Token: 0x04002FEB RID: 12267
[FieldOffset(Offset = "0xB0")]
[Token(Token = "0x4002FEB")]
private Vector3[] positions;
// Token: 0x04002FEC RID: 12268
[FieldOffset(Offset = "0xB8")]
[Token(Token = "0x4002FEC")]
private Quaternion[] rotations;
}
}

View File

@@ -0,0 +1,243 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000432 RID: 1074
[Token(Token = "0x2000432")]
[Serializable]
public class IKSolverLimb : IKSolverTrigonometric
{
// Token: 0x0600269A RID: 9882 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600269A")]
[Address(RVA = "0x1599040", Offset = "0x1597E40", VA = "0x181599040")]
public void MaintainRotation()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600269B RID: 9883 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600269B")]
[Address(RVA = "0x1598FF0", Offset = "0x1597DF0", VA = "0x181598FF0")]
public void MaintainBend()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600269C RID: 9884 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600269C")]
[Address(RVA = "0x1599090", Offset = "0x1597E90", VA = "0x181599090", Slot = "12")]
protected override void OnInitiateVirtual()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600269D RID: 9885 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600269D")]
[Address(RVA = "0x1599590", Offset = "0x1598390", VA = "0x181599590", Slot = "13")]
protected override void OnUpdateVirtual()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600269E RID: 9886 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600269E")]
[Address(RVA = "0x15994A0", Offset = "0x15982A0", VA = "0x1815994A0", Slot = "14")]
protected override void OnPostSolveVirtual()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600269F RID: 9887 RVA: 0x00056438 File Offset: 0x00054638
[Token(Token = "0x600269F")]
[Address(RVA = "0x15999A0", Offset = "0x15987A0", VA = "0x1815999A0")]
public IKSolverLimb()
{
IKSolverLimb.AxisDirection[] array = new IKSolverLimb.AxisDirection[4];
this.axisDirectionsLeft = array;
IKSolverLimb.AxisDirection[] array2 = new IKSolverLimb.AxisDirection[4];
this.axisDirectionsRight = array2;
base..ctor();
}
// Token: 0x060026A0 RID: 9888 RVA: 0x00056474 File Offset: 0x00054674
[Token(Token = "0x60026A0")]
[Address(RVA = "0x1599900", Offset = "0x1598700", VA = "0x181599900")]
public IKSolverLimb(AvatarIKGoal goal)
{
IKSolverLimb.AxisDirection[] array = new IKSolverLimb.AxisDirection[4];
this.axisDirectionsLeft = array;
IKSolverLimb.AxisDirection[] array2 = new IKSolverLimb.AxisDirection[4];
this.axisDirectionsRight = array2;
base..ctor();
this.goal = goal;
}
// Token: 0x17000250 RID: 592
// (get) Token: 0x060026A1 RID: 9889 RVA: 0x000564B8 File Offset: 0x000546B8
[Token(Token = "0x17000250")]
private IKSolverLimb.AxisDirection[] axisDirections
{
[Token(Token = "0x60026A1")]
[Address(RVA = "0x1599A30", Offset = "0x1598830", VA = "0x181599A30")]
get
{
if (this.goal != AvatarIKGoal.LeftHand)
{
return this.axisDirectionsRight;
}
return this.axisDirectionsLeft;
}
}
// Token: 0x060026A2 RID: 9890 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026A2")]
[Address(RVA = "0x15996A0", Offset = "0x15984A0", VA = "0x1815996A0")]
private void StoreAxisDirections(ref IKSolverLimb.AxisDirection[] axisDirections)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026A3 RID: 9891 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026A3")]
[Address(RVA = "0x15982E0", Offset = "0x15970E0", VA = "0x1815982E0")]
private Vector3 GetModifiedBendNormal()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04002FED RID: 12269
[FieldOffset(Offset = "0xA8")]
[Token(Token = "0x4002FED")]
public AvatarIKGoal goal;
// Token: 0x04002FEE RID: 12270
[FieldOffset(Offset = "0xAC")]
[Token(Token = "0x4002FEE")]
public IKSolverLimb.BendModifier bendModifier;
// Token: 0x04002FEF RID: 12271
[FieldOffset(Offset = "0xB0")]
[Token(Token = "0x4002FEF")]
[Range(0f, 1f)]
public float maintainRotationWeight;
// Token: 0x04002FF0 RID: 12272
[FieldOffset(Offset = "0xB4")]
[Token(Token = "0x4002FF0")]
[Range(0f, 1f)]
public float bendModifierWeight = 1f;
// Token: 0x04002FF1 RID: 12273
[FieldOffset(Offset = "0xB8")]
[Token(Token = "0x4002FF1")]
public Transform bendGoal;
// Token: 0x04002FF2 RID: 12274
[FieldOffset(Offset = "0xC0")]
[Token(Token = "0x4002FF2")]
private bool maintainBendFor1Frame;
// Token: 0x04002FF3 RID: 12275
[FieldOffset(Offset = "0xC1")]
[Token(Token = "0x4002FF3")]
private bool maintainRotationFor1Frame;
// Token: 0x04002FF4 RID: 12276
[FieldOffset(Offset = "0xC4")]
[Token(Token = "0x4002FF4")]
private Quaternion defaultRootRotation;
// Token: 0x04002FF5 RID: 12277
[FieldOffset(Offset = "0xD4")]
[Token(Token = "0x4002FF5")]
private Quaternion parentDefaultRotation;
// Token: 0x04002FF6 RID: 12278
[FieldOffset(Offset = "0xE4")]
[Token(Token = "0x4002FF6")]
private Quaternion bone3RotationBeforeSolve;
// Token: 0x04002FF7 RID: 12279
[FieldOffset(Offset = "0xF4")]
[Token(Token = "0x4002FF7")]
private Quaternion maintainRotation;
// Token: 0x04002FF8 RID: 12280
[FieldOffset(Offset = "0x104")]
[Token(Token = "0x4002FF8")]
private Quaternion bone3DefaultRotation;
// Token: 0x04002FF9 RID: 12281
[FieldOffset(Offset = "0x114")]
[Token(Token = "0x4002FF9")]
private Vector3 _bendNormal;
// Token: 0x04002FFA RID: 12282
[FieldOffset(Offset = "0x120")]
[Token(Token = "0x4002FFA")]
private Vector3 animationNormal;
// Token: 0x04002FFB RID: 12283
[FieldOffset(Offset = "0x130")]
[Token(Token = "0x4002FFB")]
private IKSolverLimb.AxisDirection[] axisDirectionsLeft;
// Token: 0x04002FFC RID: 12284
[FieldOffset(Offset = "0x138")]
[Token(Token = "0x4002FFC")]
private IKSolverLimb.AxisDirection[] axisDirectionsRight;
// Token: 0x02000433 RID: 1075
[Token(Token = "0x2000433")]
[Serializable]
public enum BendModifier
{
// Token: 0x04002FFE RID: 12286
[Token(Token = "0x4002FFE")]
Animation,
// Token: 0x04002FFF RID: 12287
[Token(Token = "0x4002FFF")]
Target,
// Token: 0x04003000 RID: 12288
[Token(Token = "0x4003000")]
Parent,
// Token: 0x04003001 RID: 12289
[Token(Token = "0x4003001")]
Arm,
// Token: 0x04003002 RID: 12290
[Token(Token = "0x4003002")]
Goal
}
// Token: 0x02000434 RID: 1076
[Token(Token = "0x2000434")]
[Serializable]
public struct AxisDirection
{
// Token: 0x060026A4 RID: 9892 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026A4")]
[Address(RVA = "0x14E5A30", Offset = "0x14E4830", VA = "0x1814E5A30")]
public AxisDirection(Vector3 direction, Vector3 axis)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04003003 RID: 12291
[FieldOffset(Offset = "0x0")]
[Token(Token = "0x4003003")]
public Vector3 direction;
// Token: 0x04003004 RID: 12292
[FieldOffset(Offset = "0xC")]
[Token(Token = "0x4003004")]
public Vector3 axis;
// Token: 0x04003005 RID: 12293
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4003005")]
public float dot;
}
}
}

View File

@@ -0,0 +1,440 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000435 RID: 1077
[Token(Token = "0x2000435")]
[Serializable]
public class IKSolverLookAt : IKSolver
{
// Token: 0x060026A5 RID: 9893 RVA: 0x000564DC File Offset: 0x000546DC
[Token(Token = "0x60026A5")]
[Address(RVA = "0x1186B60", Offset = "0x1185960", VA = "0x181186B60")]
public void SetLookAtWeight(float weight)
{
int num = 0;
float num2 = Mathf.Clamp(weight, (float)num, 1f);
this.IKPositionWeight = num2;
}
// Token: 0x060026A6 RID: 9894 RVA: 0x00056500 File Offset: 0x00054700
[Token(Token = "0x60026A6")]
[Address(RVA = "0x159AFF0", Offset = "0x1599DF0", VA = "0x18159AFF0")]
public void SetLookAtWeight(float weight, float bodyWeight)
{
int num = 0;
float num2 = Mathf.Clamp(weight, (float)num, 1f);
this.IKPositionWeight = num2;
int num3 = 0;
float num4 = Mathf.Clamp(bodyWeight, (float)num3, 1f);
this.bodyWeight = num4;
}
// Token: 0x060026A7 RID: 9895 RVA: 0x0005653C File Offset: 0x0005473C
[Token(Token = "0x60026A7")]
[Address(RVA = "0x159B050", Offset = "0x1599E50", VA = "0x18159B050")]
public void SetLookAtWeight(float weight, float bodyWeight, float headWeight)
{
int num = 0;
float num2 = Mathf.Clamp(weight, (float)num, 1f);
this.IKPositionWeight = num2;
int num3 = 0;
float num4 = Mathf.Clamp(bodyWeight, (float)num3, 1f);
this.bodyWeight = num4;
int num5 = 0;
float num6 = Mathf.Clamp(headWeight, (float)num5, 1f);
this.headWeight = num6;
}
// Token: 0x060026A8 RID: 9896 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026A8")]
[Address(RVA = "0x159AF50", Offset = "0x1599D50", VA = "0x18159AF50")]
public void SetLookAtWeight(float weight, float bodyWeight, float headWeight, float eyesWeight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026A9 RID: 9897 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026A9")]
[Address(RVA = "0x159AE70", Offset = "0x1599C70", VA = "0x18159AE70")]
public void SetLookAtWeight(float weight, float bodyWeight, float headWeight, float eyesWeight, float clampWeight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026AA RID: 9898 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026AA")]
[Address(RVA = "0x159B0D0", Offset = "0x1599ED0", VA = "0x18159B0D0")]
public void SetLookAtWeight(float weight, float bodyWeight = 0f, float headWeight = 1f, float eyesWeight = 0.5f, float clampWeight = 0.5f, float clampWeightHead = 0.5f, float clampWeightEyes = 0.3f)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026AB RID: 9899 RVA: 0x00056594 File Offset: 0x00054794
[Token(Token = "0x60026AB")]
[Address(RVA = "0x159BAF0", Offset = "0x159A8F0", VA = "0x18159BAF0", Slot = "9")]
public override void StoreDefaultLocalState()
{
IKSolverLookAt.LookAtBone[] array = this.spine;
int num = 0;
if (num < array.Length)
{
array[num].StoreDefaultLocalState();
IKSolverLookAt.LookAtBone[] array2 = this.spine;
num++;
}
IKSolverLookAt.LookAtBone[] array3 = this.eyes;
if (num < array3.Length)
{
array3[num].StoreDefaultLocalState();
IKSolverLookAt.LookAtBone[] array4 = this.eyes;
num++;
while (array4 != 0)
{
}
}
IKSolverLookAt.LookAtBone lookAtBone = this.head;
if (lookAtBone != 0)
{
Transform transform = lookAtBone.transform;
int num2 = 0;
if (transform != num2)
{
this.head.StoreDefaultLocalState();
}
}
}
// Token: 0x060026AC RID: 9900 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026AC")]
[Address(RVA = "0x1599A50", Offset = "0x1598850", VA = "0x181599A50", Slot = "8")]
public override void FixTransforms()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026AD RID: 9901 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026AD")]
[Address(RVA = "0x159A3E0", Offset = "0x15991E0", VA = "0x18159A3E0", Slot = "4")]
public override bool IsValid(ref string message)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026AE RID: 9902 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026AE")]
[Address(RVA = "0x159A0F0", Offset = "0x1598EF0", VA = "0x18159A0F0", Slot = "6")]
public override IKSolver.Point[] GetPoints()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026AF RID: 9903 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026AF")]
[Address(RVA = "0x1599F30", Offset = "0x1598D30", VA = "0x181599F30", Slot = "7")]
public override IKSolver.Point GetPoint(Transform transform)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026B0 RID: 9904 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026B0")]
[Address(RVA = "0x159ADB0", Offset = "0x1599BB0", VA = "0x18159ADB0")]
public bool SetChain(Transform[] spine, Transform head, Transform[] eyes, Transform root)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026B1 RID: 9905 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026B1")]
[Address(RVA = "0x159A710", Offset = "0x1599510", VA = "0x18159A710", Slot = "10")]
protected override void OnInitiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026B2 RID: 9906 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026B2")]
[Address(RVA = "0x159AB00", Offset = "0x1599900", VA = "0x18159AB00", Slot = "11")]
protected override void OnUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17000251 RID: 593
// (get) Token: 0x060026B3 RID: 9907 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000251")]
private bool spineIsValid
{
[Token(Token = "0x60026B3")]
[Address(RVA = "0x159C0A0", Offset = "0x159AEA0", VA = "0x18159C0A0")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x17000252 RID: 594
// (get) Token: 0x060026B4 RID: 9908 RVA: 0x00056630 File Offset: 0x00054830
[Token(Token = "0x17000252")]
private bool spineIsEmpty
{
[Token(Token = "0x60026B4")]
[Address(RVA = "0x159C080", Offset = "0x159AE80", VA = "0x18159C080")]
get
{
return this.spine.Length == 0;
}
}
// Token: 0x060026B5 RID: 9909 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026B5")]
[Address(RVA = "0x159B860", Offset = "0x159A660", VA = "0x18159B860")]
private void SolveSpine()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17000253 RID: 595
// (get) Token: 0x060026B6 RID: 9910 RVA: 0x00056654 File Offset: 0x00054854
[Token(Token = "0x17000253")]
private bool headIsValid
{
[Token(Token = "0x60026B6")]
[Address(RVA = "0x159C070", Offset = "0x159AE70", VA = "0x18159C070")]
get
{
return this.head != (ulong)0L;
}
}
// Token: 0x17000254 RID: 596
// (get) Token: 0x060026B7 RID: 9911 RVA: 0x00056670 File Offset: 0x00054870
[Token(Token = "0x17000254")]
private bool headIsEmpty
{
[Token(Token = "0x60026B7")]
[Address(RVA = "0x159C000", Offset = "0x159AE00", VA = "0x18159C000")]
get
{
Transform transform = this.head.transform;
int num = 0;
return transform == num;
}
}
// Token: 0x060026B8 RID: 9912 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026B8")]
[Address(RVA = "0x159B510", Offset = "0x159A310", VA = "0x18159B510")]
private void SolveHead()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17000255 RID: 597
// (get) Token: 0x060026B9 RID: 9913 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000255")]
private bool eyesIsValid
{
[Token(Token = "0x60026B9")]
[Address(RVA = "0x159BF10", Offset = "0x159AD10", VA = "0x18159BF10")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x17000256 RID: 598
// (get) Token: 0x060026BA RID: 9914 RVA: 0x00056698 File Offset: 0x00054898
[Token(Token = "0x17000256")]
private bool eyesIsEmpty
{
[Token(Token = "0x60026BA")]
[Address(RVA = "0x159BEF0", Offset = "0x159ACF0", VA = "0x18159BEF0")]
get
{
return this.eyes.Length == 0;
}
}
// Token: 0x060026BB RID: 9915 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026BB")]
[Address(RVA = "0x159B1E0", Offset = "0x1599FE0", VA = "0x18159B1E0")]
private void SolveEyes()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026BC RID: 9916 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026BC")]
[Address(RVA = "0x1599BC0", Offset = "0x15989C0", VA = "0x181599BC0")]
private Vector3[] GetForwards(ref Vector3[] forwards, Vector3 baseForward, Vector3 targetForward, int bones, float clamp)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026BD RID: 9917 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026BD")]
[Address(RVA = "0x159ABE0", Offset = "0x15999E0", VA = "0x18159ABE0")]
private void SetBones(Transform[] array, ref IKSolverLookAt.LookAtBone[] bones)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026BE RID: 9918 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026BE")]
[Address(RVA = "0x159BC50", Offset = "0x159AA50", VA = "0x18159BC50")]
public IKSolverLookAt()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04003006 RID: 12294
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4003006")]
public Transform target;
// Token: 0x04003007 RID: 12295
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4003007")]
public IKSolverLookAt.LookAtBone[] spine;
// Token: 0x04003008 RID: 12296
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4003008")]
public IKSolverLookAt.LookAtBone head;
// Token: 0x04003009 RID: 12297
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4003009")]
public IKSolverLookAt.LookAtBone[] eyes;
// Token: 0x0400300A RID: 12298
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x400300A")]
[Range(0f, 1f)]
public float bodyWeight;
// Token: 0x0400300B RID: 12299
[FieldOffset(Offset = "0x7C")]
[Token(Token = "0x400300B")]
[Range(0f, 1f)]
public float headWeight;
// Token: 0x0400300C RID: 12300
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x400300C")]
[Range(0f, 1f)]
public float eyesWeight;
// Token: 0x0400300D RID: 12301
[FieldOffset(Offset = "0x84")]
[Token(Token = "0x400300D")]
[Range(0f, 1f)]
public float clampWeight;
// Token: 0x0400300E RID: 12302
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x400300E")]
[Range(0f, 1f)]
public float clampWeightHead;
// Token: 0x0400300F RID: 12303
[FieldOffset(Offset = "0x8C")]
[Token(Token = "0x400300F")]
[Range(0f, 1f)]
public float clampWeightEyes;
// Token: 0x04003010 RID: 12304
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x4003010")]
[Attribute(Name = "RangeAttribute", RVA = "0xDF060", Offset = "0xDE460")]
public int clampSmoothing;
// Token: 0x04003011 RID: 12305
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x4003011")]
public AnimationCurve spineWeightCurve;
// Token: 0x04003012 RID: 12306
[FieldOffset(Offset = "0xA0")]
[Token(Token = "0x4003012")]
private Vector3[] spineForwards;
// Token: 0x04003013 RID: 12307
[FieldOffset(Offset = "0xA8")]
[Token(Token = "0x4003013")]
private Vector3[] headForwards;
// Token: 0x04003014 RID: 12308
[FieldOffset(Offset = "0xB0")]
[Token(Token = "0x4003014")]
private Vector3[] eyeForward;
// Token: 0x02000436 RID: 1078
[Token(Token = "0x2000436")]
[Serializable]
public class LookAtBone : IKSolver.Bone
{
// Token: 0x060026BF RID: 9919 RVA: 0x000566BC File Offset: 0x000548BC
[Token(Token = "0x60026BF")]
[Address(RVA = "0x14F1520", Offset = "0x14F0320", VA = "0x1814F1520")]
public LookAtBone()
{
}
// Token: 0x060026C0 RID: 9920 RVA: 0x000566D0 File Offset: 0x000548D0
[Token(Token = "0x60026C0")]
[Address(RVA = "0x14F14F0", Offset = "0x14F02F0", VA = "0x1814F14F0")]
public LookAtBone(Transform transform)
{
/*
An exception occurred when decompiling this method (060026C0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.IKSolverLookAt/LookAtBone::.ctor(UnityEngine.Transform)
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; call:void(Bone::.ctor, ldloc:LookAtBone[exp:Bone](this)); stfld:Transform(Point::transform, ldloc:LookAtBone[exp:Point](this), ldloc:Transform(transform)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
// Token: 0x060026C1 RID: 9921 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026C1")]
[Address(RVA = "0x14F1270", Offset = "0x14F0070", VA = "0x1814F1270")]
public void Initiate(Transform root)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026C2 RID: 9922 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026C2")]
[Address(RVA = "0x14F1390", Offset = "0x14F0190", VA = "0x1814F1390")]
public void LookAt(Vector3 direction, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17000257 RID: 599
// (get) Token: 0x060026C3 RID: 9923 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000257")]
public Vector3 forward
{
[Token(Token = "0x60026C3")]
[Address(RVA = "0x14F1530", Offset = "0x14F0330", VA = "0x1814F1530")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
}
}
}

View File

@@ -0,0 +1,317 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000437 RID: 1079
[Token(Token = "0x2000437")]
[Serializable]
public class IKSolverTrigonometric : IKSolver
{
// Token: 0x060026C4 RID: 9924 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026C4")]
[Address(RVA = "0x159DF00", Offset = "0x159CD00", VA = "0x18159DF00")]
public void SetBendGoalPosition(Vector3 goalPosition, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026C5 RID: 9925 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026C5")]
[Address(RVA = "0x159E170", Offset = "0x159CF70", VA = "0x18159E170")]
public void SetBendPlaneToCurrent()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026C6 RID: 9926 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026C6")]
[Address(RVA = "0x101BA00", Offset = "0x101A800", VA = "0x18101BA00")]
public void SetIKRotation(Quaternion rotation)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026C7 RID: 9927 RVA: 0x000566EC File Offset: 0x000548EC
[Token(Token = "0x60026C7")]
[Address(RVA = "0x159E410", Offset = "0x159D210", VA = "0x18159E410")]
public void SetIKRotationWeight(float weight)
{
int num = 0;
float num2 = Mathf.Clamp(weight, (float)num, 1f);
this.IKRotationWeight = num2;
}
// Token: 0x060026C8 RID: 9928 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026C8")]
[Address(RVA = "0x159C6C0", Offset = "0x159B4C0", VA = "0x18159C6C0")]
public Quaternion GetIKRotation()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026C9 RID: 9929 RVA: 0x00056710 File Offset: 0x00054910
[Token(Token = "0x60026C9")]
[Address(RVA = "0x618E30", Offset = "0x617C30", VA = "0x180618E30")]
public float GetIKRotationWeight()
{
return this.IKRotationWeight;
}
// Token: 0x060026CA RID: 9930 RVA: 0x00056724 File Offset: 0x00054924
[Token(Token = "0x60026CA")]
[Address(RVA = "0x159C830", Offset = "0x159B630", VA = "0x18159C830", Slot = "6")]
public override IKSolver.Point[] GetPoints()
{
IKSolver.Point[] array;
IKSolverTrigonometric.TrigonometricBone trigonometricBone3;
for (;;)
{
array = new IKSolver.Point[3];
IKSolverTrigonometric.TrigonometricBone trigonometricBone = this.bone1;
if (trigonometricBone == 0 || array != 0)
{
array[0] = trigonometricBone;
IKSolverTrigonometric.TrigonometricBone trigonometricBone2 = this.bone2;
if (trigonometricBone2 == 0 || array != 0)
{
array[1] = trigonometricBone2;
trigonometricBone3 = this.bone3;
if (trigonometricBone3 == 0 || array != 0)
{
break;
}
}
}
}
array[2] = trigonometricBone3;
return array;
}
// Token: 0x060026CB RID: 9931 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026CB")]
[Address(RVA = "0x159C6D0", Offset = "0x159B4D0", VA = "0x18159C6D0", Slot = "7")]
public override IKSolver.Point GetPoint(Transform transform)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026CC RID: 9932 RVA: 0x00056784 File Offset: 0x00054984
[Token(Token = "0x60026CC")]
[Address(RVA = "0x159EC50", Offset = "0x159DA50", VA = "0x18159EC50", Slot = "9")]
public override void StoreDefaultLocalState()
{
this.bone1.StoreDefaultLocalState();
this.bone2.StoreDefaultLocalState();
this.bone3.StoreDefaultLocalState();
}
// Token: 0x060026CD RID: 9933 RVA: 0x000567B8 File Offset: 0x000549B8
[Token(Token = "0x60026CD")]
[Address(RVA = "0x159C190", Offset = "0x159AF90", VA = "0x18159C190", Slot = "8")]
public override void FixTransforms()
{
this.bone1.FixTransform();
this.bone2.FixTransform();
this.bone3.FixTransform();
}
// Token: 0x060026CE RID: 9934 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026CE")]
[Address(RVA = "0x159CDC0", Offset = "0x159BBC0", VA = "0x18159CDC0", Slot = "4")]
public override bool IsValid(ref string message)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026CF RID: 9935 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026CF")]
[Address(RVA = "0x159E380", Offset = "0x159D180", VA = "0x18159E380")]
public bool SetChain(Transform bone1, Transform bone2, Transform bone3, Transform root)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026D0 RID: 9936 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026D0")]
[Address(RVA = "0x159E440", Offset = "0x159D240", VA = "0x18159E440")]
public static void Solve(Transform bone1, Transform bone2, Transform bone3, Vector3 targetPosition, Vector3 bendNormal, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026D1 RID: 9937 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026D1")]
[Address(RVA = "0x159C4F0", Offset = "0x159B2F0", VA = "0x18159C4F0")]
private static Vector3 GetDirectionToBendPoint(Vector3 direction, float directionMag, Vector3 bendDirection, float sqrMag1, float sqrMag2)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026D2 RID: 9938 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026D2")]
[Address(RVA = "0x159D2B0", Offset = "0x159C0B0", VA = "0x18159D2B0", Slot = "10")]
protected override void OnInitiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026D3 RID: 9939 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026D3")]
[Address(RVA = "0x159CC90", Offset = "0x159BA90", VA = "0x18159CC90")]
private bool IsDirectHierarchy()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026D4 RID: 9940 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026D4")]
[Address(RVA = "0x159C9B0", Offset = "0x159B7B0", VA = "0x18159C9B0")]
private void InitiateBones()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026D5 RID: 9941 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026D5")]
[Address(RVA = "0x159D4C0", Offset = "0x159C2C0", VA = "0x18159D4C0", Slot = "11")]
protected override void OnUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026D6 RID: 9942 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026D6")]
[Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00", Slot = "12")]
protected virtual void OnInitiateVirtual()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026D7 RID: 9943 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026D7")]
[Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00", Slot = "13")]
protected virtual void OnUpdateVirtual()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026D8 RID: 9944 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026D8")]
[Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00", Slot = "14")]
protected virtual void OnPostSolveVirtual()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026D9 RID: 9945 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026D9")]
[Address(RVA = "0x159C1E0", Offset = "0x159AFE0", VA = "0x18159C1E0")]
protected Vector3 GetBendDirection(Vector3 IKPosition, Vector3 bendNormal)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026DA RID: 9946 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026DA")]
[Address(RVA = "0x159ECA0", Offset = "0x159DAA0", VA = "0x18159ECA0")]
public IKSolverTrigonometric()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04003015 RID: 12309
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4003015")]
public Transform target;
// Token: 0x04003016 RID: 12310
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4003016")]
[Range(0f, 1f)]
public float IKRotationWeight;
// Token: 0x04003017 RID: 12311
[FieldOffset(Offset = "0x64")]
[Token(Token = "0x4003017")]
public Quaternion IKRotation;
// Token: 0x04003018 RID: 12312
[FieldOffset(Offset = "0x74")]
[Token(Token = "0x4003018")]
public Vector3 bendNormal;
// Token: 0x04003019 RID: 12313
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x4003019")]
public IKSolverTrigonometric.TrigonometricBone bone1;
// Token: 0x0400301A RID: 12314
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x400301A")]
public IKSolverTrigonometric.TrigonometricBone bone2;
// Token: 0x0400301B RID: 12315
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x400301B")]
public IKSolverTrigonometric.TrigonometricBone bone3;
// Token: 0x0400301C RID: 12316
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x400301C")]
protected Vector3 weightIKPosition;
// Token: 0x0400301D RID: 12317
[FieldOffset(Offset = "0xA4")]
[Token(Token = "0x400301D")]
protected bool directHierarchy;
// Token: 0x02000438 RID: 1080
[Token(Token = "0x2000438")]
[Serializable]
public class TrigonometricBone : IKSolver.Bone
{
// Token: 0x060026DB RID: 9947 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026DB")]
[Address(RVA = "0x14F7940", Offset = "0x14F6740", VA = "0x1814F7940")]
public void Initiate(Vector3 childPosition, Vector3 bendNormal)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026DC RID: 9948 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026DC")]
[Address(RVA = "0x14F78C0", Offset = "0x14F66C0", VA = "0x1814F78C0")]
public Quaternion GetRotation(Vector3 direction, Vector3 bendNormal)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026DD RID: 9949 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60026DD")]
[Address(RVA = "0x14F7840", Offset = "0x14F6640", VA = "0x1814F7840")]
public Vector3 GetBendNormalFromCurrentRotation()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060026DE RID: 9950 RVA: 0x000567EC File Offset: 0x000549EC
[Token(Token = "0x60026DE")]
[Address(RVA = "0x14F1520", Offset = "0x14F0320", VA = "0x1814F1520")]
public TrigonometricBone()
{
}
// Token: 0x0400301E RID: 12318
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x400301E")]
private Quaternion targetToLocalSpace;
// Token: 0x0400301F RID: 12319
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x400301F")]
private Vector3 defaultLocalBendNormal;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,184 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000479 RID: 1145
[Token(Token = "0x2000479")]
public class Inertia : OffsetModifier
{
// Token: 0x060028D7 RID: 10455 RVA: 0x00059CF0 File Offset: 0x00057EF0
[Token(Token = "0x60028D7")]
[Address(RVA = "0x10D2E60", Offset = "0x10D1C60", VA = "0x1810D2E60")]
public void ResetBodies()
{
float time = Time.time;
Inertia.Body[] array = this.bodies;
this.lastTime = time;
int num = 0;
int length = array.Length;
if (num < length)
{
array[num].Reset();
num++;
}
}
// Token: 0x060028D8 RID: 10456 RVA: 0x00059D38 File Offset: 0x00057F38
[Token(Token = "0x60028D8")]
[Address(RVA = "0x10D2D90", Offset = "0x10D1B90", VA = "0x1810D2D90", Slot = "4")]
protected override void OnModifyOffset()
{
Inertia.Body[] array = this.bodies;
int num = 0;
int length = array.Length;
if (num < length)
{
Inertia.Body body = array[num];
IKSolverFullBodyBiped solver = this.ik.solver;
float weight = this.weight;
float deltaTime = base.deltaTime;
body.Update(solver, weight, deltaTime);
num++;
}
OffsetModifier.OffsetLimits[] array2 = this.limits;
base.ApplyLimits(array2);
}
// Token: 0x060028D9 RID: 10457 RVA: 0x00059DA4 File Offset: 0x00057FA4
[Token(Token = "0x60028D9")]
[Address(RVA = "0x8CD260", Offset = "0x8CC060", VA = "0x1808CD260")]
public Inertia()
{
}
// Token: 0x04003214 RID: 12820
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4003214")]
[Tooltip("The array of Bodies")]
public Inertia.Body[] bodies;
// Token: 0x04003215 RID: 12821
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4003215")]
[Tooltip("The array of OffsetLimits")]
public OffsetModifier.OffsetLimits[] limits;
// Token: 0x0200047A RID: 1146
[Token(Token = "0x200047A")]
[Serializable]
public class Body
{
// Token: 0x060028DA RID: 10458 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028DA")]
[Address(RVA = "0x14E64C0", Offset = "0x14E52C0", VA = "0x1814E64C0")]
public void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028DB RID: 10459 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028DB")]
[Address(RVA = "0x14E65A0", Offset = "0x14E53A0", VA = "0x1814E65A0")]
public void Update(IKSolverFullBodyBiped solver, float weight, float deltaTime)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028DC RID: 10460 RVA: 0x00059DB8 File Offset: 0x00057FB8
[Token(Token = "0x60028DC")]
[Address(RVA = "0x14E6B00", Offset = "0x14E5900", VA = "0x1814E6B00")]
public Body()
{
}
// Token: 0x04003216 RID: 12822
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003216")]
[Tooltip("The Transform to follow, can be any bone of the character")]
public Transform transform;
// Token: 0x04003217 RID: 12823
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4003217")]
[Tooltip("Linking the body to effectors. One Body can be used to offset more than one effector")]
public Inertia.Body.EffectorLink[] effectorLinks;
// Token: 0x04003218 RID: 12824
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4003218")]
[Tooltip("The speed to follow the Transform")]
public float speed = 10f;
// Token: 0x04003219 RID: 12825
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x4003219")]
[Tooltip("The acceleration, smaller values means lazyer following")]
public float acceleration = 3f;
// Token: 0x0400321A RID: 12826
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400321A")]
[Tooltip("Matching target velocity")]
[Range(0f, 1f)]
public float matchVelocity;
// Token: 0x0400321B RID: 12827
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x400321B")]
[Tooltip("gravity applied to the Body")]
public float gravity;
// Token: 0x0400321C RID: 12828
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400321C")]
private Vector3 delta;
// Token: 0x0400321D RID: 12829
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x400321D")]
private Vector3 lazyPoint;
// Token: 0x0400321E RID: 12830
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x400321E")]
private Vector3 direction;
// Token: 0x0400321F RID: 12831
[FieldOffset(Offset = "0x54")]
[Token(Token = "0x400321F")]
private Vector3 lastPosition;
// Token: 0x04003220 RID: 12832
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4003220")]
private bool firstUpdate = true;
// Token: 0x0200047B RID: 1147
[Token(Token = "0x200047B")]
[Serializable]
public class EffectorLink
{
// Token: 0x060028DD RID: 10461 RVA: 0x0003883F File Offset: 0x00036A3F
[Token(Token = "0x60028DD")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public EffectorLink()
{
}
// Token: 0x04003221 RID: 12833
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003221")]
[Tooltip("Type of the FBBIK effector to use")]
public FullBodyBipedEffector effector;
// Token: 0x04003222 RID: 12834
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4003222")]
[Tooltip("Weight of using this effector")]
public float weight;
}
}
}
}

View File

@@ -0,0 +1,431 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000445 RID: 1093
[Token(Token = "0x2000445")]
[Serializable]
public class InteractionEffector
{
// Token: 0x17000277 RID: 631
// (get) Token: 0x06002776 RID: 10102 RVA: 0x00057344 File Offset: 0x00055544
// (set) Token: 0x06002777 RID: 10103 RVA: 0x00057358 File Offset: 0x00055558
[Token(Token = "0x17000277")]
public FullBodyBipedEffector effectorType
{
[Token(Token = "0x6002776")]
[Address(RVA = "0x2B3F20", Offset = "0x2B2D20", VA = "0x1802B3F20")]
get;
[Token(Token = "0x6002777")]
[Address(RVA = "0x417DE0", Offset = "0x416BE0", VA = "0x180417DE0")]
private set;
}
// Token: 0x17000278 RID: 632
// (get) Token: 0x06002778 RID: 10104 RVA: 0x0005736C File Offset: 0x0005556C
// (set) Token: 0x06002779 RID: 10105 RVA: 0x00057380 File Offset: 0x00055580
[Token(Token = "0x17000278")]
public bool isPaused
{
[Token(Token = "0x6002778")]
[Address(RVA = "0x412250", Offset = "0x411050", VA = "0x180412250")]
get;
[Token(Token = "0x6002779")]
[Address(RVA = "0x412670", Offset = "0x411470", VA = "0x180412670")]
private set;
}
// Token: 0x17000279 RID: 633
// (get) Token: 0x0600277A RID: 10106 RVA: 0x00057394 File Offset: 0x00055594
// (set) Token: 0x0600277B RID: 10107 RVA: 0x000573A8 File Offset: 0x000555A8
[Token(Token = "0x17000279")]
public InteractionObject interactionObject
{
[Token(Token = "0x600277A")]
[Address(RVA = "0x2B4380", Offset = "0x2B3180", VA = "0x1802B4380")]
[CompilerGenerated]
get
{
return this.<interactionObject>k__BackingField;
}
[Token(Token = "0x600277B")]
[Address(RVA = "0x413D20", Offset = "0x412B20", VA = "0x180413D20")]
[CompilerGenerated]
private set
{
/*
An exception occurred when decompiling this method (0600277B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.InteractionEffector::set_interactionObject(RootMotion.FinalIK.InteractionObject)
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; stfld:InteractionObject(InteractionEffector::<interactionObject>k__BackingField, ldloc:InteractionEffector(this), ldloc:InteractionObject(value)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
}
// Token: 0x1700027A RID: 634
// (get) Token: 0x0600277C RID: 10108 RVA: 0x000573BC File Offset: 0x000555BC
[Token(Token = "0x1700027A")]
public bool inInteraction
{
[Token(Token = "0x600277C")]
[Address(RVA = "0x10D59F0", Offset = "0x10D47F0", VA = "0x1810D59F0")]
get
{
InteractionObject interactionObject = this.<interactionObject>k__BackingField;
int num = 0;
return interactionObject != num;
}
}
// Token: 0x0600277D RID: 10109 RVA: 0x000573DC File Offset: 0x000555DC
[Token(Token = "0x600277D")]
[Address(RVA = "0x10D5960", Offset = "0x10D4760", VA = "0x1810D5960")]
public InteractionEffector(FullBodyBipedEffector effectorType)
{
List<bool> list = new List();
this.triggered = list;
base..ctor();
this.effectorType = effectorType;
}
// Token: 0x0600277E RID: 10110 RVA: 0x00057408 File Offset: 0x00055608
[Token(Token = "0x600277E")]
[Address(RVA = "0x10D3890", Offset = "0x10D2690", VA = "0x1810D3890")]
public void Initiate(InteractionSystem interactionSystem)
{
this.interactionSystem = interactionSystem;
if (this.effector == (ulong)0L)
{
IKSolverFullBodyBiped solver = interactionSystem.fullBody.solver;
FullBodyBipedEffector fullBodyBipedEffector = this.<effectorType>k__BackingField;
IKEffector ikeffector = solver.GetEffector(fullBodyBipedEffector);
this.effector = ikeffector;
Poser component = this.effector.bone.GetComponent<Poser>();
this.poser = component;
}
this.StoreDefaults();
}
// Token: 0x0600277F RID: 10111 RVA: 0x00057470 File Offset: 0x00055670
[Token(Token = "0x600277F")]
[Address(RVA = "0x10D4C00", Offset = "0x10D3A00", VA = "0x1810D4C00")]
private void StoreDefaults()
{
IKSolverFullBodyBiped solver = this.interactionSystem.fullBody.solver;
FullBodyBipedEffector fullBodyBipedEffector = this.<effectorType>k__BackingField;
float positionWeight = solver.GetEffector(fullBodyBipedEffector).positionWeight;
this.defaultPositionWeight = positionWeight;
IKSolverFullBodyBiped solver2 = this.interactionSystem.fullBody.solver;
FullBodyBipedEffector fullBodyBipedEffector2 = this.<effectorType>k__BackingField;
float rotationWeight = solver2.GetEffector(fullBodyBipedEffector2).rotationWeight;
this.defaultRotationWeight = rotationWeight;
IKSolverFullBodyBiped solver3 = this.interactionSystem.fullBody.solver;
FullBodyBipedEffector fullBodyBipedEffector3 = this.<effectorType>k__BackingField;
float pull = solver3.GetChain(fullBodyBipedEffector3).pull;
this.defaultPull = pull;
IKSolverFullBodyBiped solver4 = this.interactionSystem.fullBody.solver;
FullBodyBipedEffector fullBodyBipedEffector4 = this.<effectorType>k__BackingField;
float reach = solver4.GetChain(fullBodyBipedEffector4).reach;
this.defaultReach = reach;
IKSolverFullBodyBiped solver5 = this.interactionSystem.fullBody.solver;
FullBodyBipedEffector fullBodyBipedEffector5 = this.<effectorType>k__BackingField;
float push = solver5.GetChain(fullBodyBipedEffector5).push;
this.defaultPush = push;
IKSolverFullBodyBiped solver6 = this.interactionSystem.fullBody.solver;
FullBodyBipedEffector fullBodyBipedEffector6 = this.<effectorType>k__BackingField;
float pushParent = solver6.GetChain(fullBodyBipedEffector6).pushParent;
this.defaultPushParent = pushParent;
}
// Token: 0x06002780 RID: 10112 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002780")]
[Address(RVA = "0x10D3FB0", Offset = "0x10D2DB0", VA = "0x1810D3FB0")]
public bool ResetToDefaults(float speed)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002781 RID: 10113 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002781")]
[Address(RVA = "0x10D3BF0", Offset = "0x10D29F0", VA = "0x1810D3BF0")]
public bool Pause()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002782 RID: 10114 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002782")]
[Address(RVA = "0x10D43E0", Offset = "0x10D31E0", VA = "0x1810D43E0")]
public bool Resume()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002783 RID: 10115 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002783")]
[Address(RVA = "0x10D4490", Offset = "0x10D3290", VA = "0x1810D4490")]
public bool Start(InteractionObject interactionObject, string tag, float fadeInTime, bool interrupt)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002784 RID: 10116 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002784")]
[Address(RVA = "0x10D5080", Offset = "0x10D3E80", VA = "0x1810D5080")]
public void Update(Transform root, float speed)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x1700027B RID: 635
// (get) Token: 0x06002785 RID: 10117 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x1700027B")]
public float progress
{
[Token(Token = "0x6002785")]
[Address(RVA = "0x10D5A50", Offset = "0x10D4850", VA = "0x1810D5A50")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x06002786 RID: 10118 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002786")]
[Address(RVA = "0x10D4DA0", Offset = "0x10D3BA0", VA = "0x1810D4DA0")]
private void TriggerUntriggeredEvents(bool checkTime, out bool pickUp, out bool pause)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002787 RID: 10119 RVA: 0x000575A8 File Offset: 0x000557A8
[Token(Token = "0x6002787")]
[Address(RVA = "0x10D3D60", Offset = "0x10D2B60", VA = "0x1810D3D60")]
private void PickUp(Transform root)
{
IKEffector ikeffector = this.effector;
float z = ikeffector.position.z;
this.pickUpPosition.z = z;
Quaternion rotation = ikeffector.rotation;
InteractionObject interactionObject = this.<interactionObject>k__BackingField;
this.pickUpRotation = rotation;
Rigidbody component = interactionObject.targetsRoot.GetComponent<Rigidbody>();
int num = 0;
if (component != num)
{
if (!component.isKinematic)
{
component.isKinematic = true;
}
Collider component2 = root.GetComponent<Collider>();
int num2 = 0;
if (component2 != num2)
{
Collider[] componentsInChildren = this.<interactionObject>k__BackingField.targetsRoot.GetComponentsInChildren<Collider>();
int num3 = 0;
int num4 = componentsInChildren.Length;
if (num3 < num4)
{
Collider collider = componentsInChildren[num3];
if (!collider.isTrigger)
{
Physics.IgnoreCollision(root.GetComponent<Collider>(), collider);
}
num3++;
}
}
}
InteractionSystem.InteractionDelegate onInteractionPickUp = this.interactionSystem.OnInteractionPickUp;
if (onInteractionPickUp != 0)
{
InteractionObject interactionObject2 = this.<interactionObject>k__BackingField;
FullBodyBipedEffector fullBodyBipedEffector = this.<effectorType>k__BackingField;
onInteractionPickUp(fullBodyBipedEffector, interactionObject2);
}
}
// Token: 0x06002788 RID: 10120 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002788")]
[Address(RVA = "0x10D49C0", Offset = "0x10D37C0", VA = "0x1810D49C0")]
public bool Stop()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002789 RID: 10121 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002789")]
[Address(RVA = "0x10D3960", Offset = "0x10D2760", VA = "0x1810D3960")]
public void OnPostFBBIK()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x040030F3 RID: 12531
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40030F3")]
private Poser poser;
// Token: 0x040030F4 RID: 12532
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40030F4")]
private IKEffector effector;
// Token: 0x040030F5 RID: 12533
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40030F5")]
private float timer;
// Token: 0x040030F6 RID: 12534
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x40030F6")]
private float length;
// Token: 0x040030F7 RID: 12535
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40030F7")]
private float weight;
// Token: 0x040030F8 RID: 12536
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x40030F8")]
private float fadeInSpeed;
// Token: 0x040030F9 RID: 12537
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40030F9")]
private float defaultPositionWeight;
// Token: 0x040030FA RID: 12538
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x40030FA")]
private float defaultRotationWeight;
// Token: 0x040030FB RID: 12539
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40030FB")]
private float defaultPull;
// Token: 0x040030FC RID: 12540
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x40030FC")]
private float defaultReach;
// Token: 0x040030FD RID: 12541
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40030FD")]
private float defaultPush;
// Token: 0x040030FE RID: 12542
[FieldOffset(Offset = "0x54")]
[Token(Token = "0x40030FE")]
private float defaultPushParent;
// Token: 0x040030FF RID: 12543
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x40030FF")]
private float resetTimer;
// Token: 0x04003100 RID: 12544
[FieldOffset(Offset = "0x5C")]
[Token(Token = "0x4003100")]
private bool positionWeightUsed;
// Token: 0x04003101 RID: 12545
[FieldOffset(Offset = "0x5D")]
[Token(Token = "0x4003101")]
private bool rotationWeightUsed;
// Token: 0x04003102 RID: 12546
[FieldOffset(Offset = "0x5E")]
[Token(Token = "0x4003102")]
private bool pullUsed;
// Token: 0x04003103 RID: 12547
[FieldOffset(Offset = "0x5F")]
[Token(Token = "0x4003103")]
private bool reachUsed;
// Token: 0x04003104 RID: 12548
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4003104")]
private bool pushUsed;
// Token: 0x04003105 RID: 12549
[FieldOffset(Offset = "0x61")]
[Token(Token = "0x4003105")]
private bool pushParentUsed;
// Token: 0x04003106 RID: 12550
[FieldOffset(Offset = "0x62")]
[Token(Token = "0x4003106")]
private bool pickedUp;
// Token: 0x04003107 RID: 12551
[FieldOffset(Offset = "0x63")]
[Token(Token = "0x4003107")]
private bool defaults;
// Token: 0x04003108 RID: 12552
[FieldOffset(Offset = "0x64")]
[Token(Token = "0x4003108")]
private bool pickUpOnPostFBBIK;
// Token: 0x04003109 RID: 12553
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4003109")]
private Vector3 pickUpPosition;
// Token: 0x0400310A RID: 12554
[FieldOffset(Offset = "0x74")]
[Token(Token = "0x400310A")]
private Vector3 pausePositionRelative;
// Token: 0x0400310B RID: 12555
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x400310B")]
private Quaternion pickUpRotation;
// Token: 0x0400310C RID: 12556
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x400310C")]
private Quaternion pauseRotationRelative;
// Token: 0x0400310D RID: 12557
[FieldOffset(Offset = "0xA0")]
[Token(Token = "0x400310D")]
private InteractionTarget interactionTarget;
// Token: 0x0400310E RID: 12558
[FieldOffset(Offset = "0xA8")]
[Token(Token = "0x400310E")]
private Transform target;
// Token: 0x0400310F RID: 12559
[FieldOffset(Offset = "0xB0")]
[Token(Token = "0x400310F")]
private List<bool> triggered;
// Token: 0x04003110 RID: 12560
[FieldOffset(Offset = "0xB8")]
[Token(Token = "0x4003110")]
private InteractionSystem interactionSystem;
// Token: 0x04003111 RID: 12561
[FieldOffset(Offset = "0xC0")]
[Token(Token = "0x4003111")]
private bool started;
}
}

View File

@@ -0,0 +1,120 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000446 RID: 1094
[Token(Token = "0x2000446")]
[Serializable]
public class InteractionLookAt
{
// Token: 0x0600278A RID: 10122 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600278A")]
[Address(RVA = "0x10D5AD0", Offset = "0x10D48D0", VA = "0x1810D5AD0")]
public void Look(Transform target, float time)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600278B RID: 10123 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600278B")]
[Address(RVA = "0x10D5E50", Offset = "0x10D4C50", VA = "0x1810D5E50")]
public void Update()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600278C RID: 10124 RVA: 0x000576B0 File Offset: 0x000558B0
[Token(Token = "0x600278C")]
[Address(RVA = "0x10D5D30", Offset = "0x10D4B30", VA = "0x1810D5D30")]
public void SolveSpine()
{
LookAtIK lookAtIK = this.ik;
int num = 0;
bool flag = lookAtIK == num;
if (!flag && this.firstFBBIKSolve != flag)
{
IKSolverLookAt solver = this.ik.solver;
float headWeight = solver.headWeight;
int num2 = 0;
float eyesWeight = solver.eyesWeight;
solver.headWeight = (float)num2;
this.ik.solver.eyesWeight = (float)num2;
this.ik.solver.Update();
this.ik.solver.headWeight = headWeight;
this.ik.solver.eyesWeight = eyesWeight;
}
}
// Token: 0x0600278D RID: 10125 RVA: 0x00057750 File Offset: 0x00055950
[Token(Token = "0x600278D")]
[Address(RVA = "0x10D5C60", Offset = "0x10D4A60", VA = "0x1810D5C60")]
public void SolveHead()
{
LookAtIK lookAtIK = this.ik;
int num = 0;
bool flag = lookAtIK == num;
if (!flag && this.firstFBBIKSolve != flag)
{
IKSolverLookAt solver = this.ik.solver;
float bodyWeight = solver.bodyWeight;
solver.bodyWeight = 0f;
this.ik.solver.Update();
this.ik.solver.bodyWeight = bodyWeight;
this.firstFBBIKSolve = false;
}
}
// Token: 0x0600278E RID: 10126 RVA: 0x000577CC File Offset: 0x000559CC
[Token(Token = "0x600278E")]
[Address(RVA = "0x10D60D0", Offset = "0x10D4ED0", VA = "0x1810D60D0")]
public InteractionLookAt()
{
}
// Token: 0x04003112 RID: 12562
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003112")]
[Tooltip("(Optional) reference to the LookAtIK component that will be used to make the character look at the objects that it is interacting with.")]
public LookAtIK ik;
// Token: 0x04003113 RID: 12563
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4003113")]
[Tooltip("Interpolation speed of the LookAtIK target.")]
public float lerpSpeed = 5f;
// Token: 0x04003114 RID: 12564
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4003114")]
[Tooltip("Interpolation speed of the LookAtIK weight.")]
public float weightSpeed = 1f;
// Token: 0x04003115 RID: 12565
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4003115")]
[HideInInspector]
public bool isPaused;
// Token: 0x04003116 RID: 12566
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4003116")]
private Transform lookAtTarget;
// Token: 0x04003117 RID: 12567
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4003117")]
private float stopLookTime;
// Token: 0x04003118 RID: 12568
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x4003118")]
private float weight;
// Token: 0x04003119 RID: 12569
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4003119")]
private bool firstFBBIKSolve;
}
}

View File

@@ -0,0 +1,768 @@
using System;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000447 RID: 1095
[Token(Token = "0x2000447")]
[HelpURL("https://www.youtube.com/watch?v=r5jiZnsDH3M")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/Interaction System/Interaction Object")]
public class InteractionObject : MonoBehaviour
{
// Token: 0x0600278F RID: 10127 RVA: 0x000577F8 File Offset: 0x000559F8
[Token(Token = "0x600278F")]
[Address(RVA = "0x10D77E0", Offset = "0x10D65E0", VA = "0x1810D77E0")]
[ContextMenu("TUTORIAL VIDEO (PART 1: BASICS)")]
private void OpenTutorial1()
{
Application.OpenURL("https://www.youtube.com/watch?v=r5jiZnsDH3M");
}
// Token: 0x06002790 RID: 10128 RVA: 0x00057810 File Offset: 0x00055A10
[Token(Token = "0x6002790")]
[Address(RVA = "0x10D7820", Offset = "0x10D6620", VA = "0x1810D7820")]
[ContextMenu("TUTORIAL VIDEO (PART 2: PICKING UP...)")]
private void OpenTutorial2()
{
Application.OpenURL("https://www.youtube.com/watch?v=eP9-zycoHLk");
}
// Token: 0x06002791 RID: 10129 RVA: 0x00057828 File Offset: 0x00055A28
[Token(Token = "0x6002791")]
[Address(RVA = "0x10D7860", Offset = "0x10D6660", VA = "0x1810D7860")]
[ContextMenu("TUTORIAL VIDEO (PART 3: ANIMATION)")]
private void OpenTutorial3()
{
Application.OpenURL("https://www.youtube.com/watch?v=sQfB2RcT1T4&index=14&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6");
}
// Token: 0x06002792 RID: 10130 RVA: 0x00057840 File Offset: 0x00055A40
[Token(Token = "0x6002792")]
[Address(RVA = "0x10D78A0", Offset = "0x10D66A0", VA = "0x1810D78A0")]
[ContextMenu("TUTORIAL VIDEO (PART 4: TRIGGERS)")]
private void OpenTutorial4()
{
Application.OpenURL("https://www.youtube.com/watch?v=-TDZpNjt2mk&index=15&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6");
}
// Token: 0x06002793 RID: 10131 RVA: 0x00057858 File Offset: 0x00055A58
[Token(Token = "0x6002793")]
[Address(RVA = "0x10D7920", Offset = "0x10D6720", VA = "0x1810D7920")]
[ContextMenu("Support Group")]
private void SupportGroup()
{
Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
}
// Token: 0x06002794 RID: 10132 RVA: 0x00057870 File Offset: 0x00055A70
[Token(Token = "0x6002794")]
[Address(RVA = "0x10D60F0", Offset = "0x10D4EF0", VA = "0x1810D60F0")]
[ContextMenu("Asset Store Thread")]
private void ASThread()
{
Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
}
// Token: 0x1700027C RID: 636
// (get) Token: 0x06002795 RID: 10133 RVA: 0x00057888 File Offset: 0x00055A88
// (set) Token: 0x06002796 RID: 10134 RVA: 0x0005789C File Offset: 0x00055A9C
[Token(Token = "0x1700027C")]
public float length
{
[Token(Token = "0x6002795")]
[Address(RVA = "0x38DB30", Offset = "0x38C930", VA = "0x18038DB30")]
get;
[Token(Token = "0x6002796")]
[Address(RVA = "0x38DBA0", Offset = "0x38C9A0", VA = "0x18038DBA0")]
private set;
}
// Token: 0x1700027D RID: 637
// (get) Token: 0x06002797 RID: 10135 RVA: 0x000578B0 File Offset: 0x00055AB0
// (set) Token: 0x06002798 RID: 10136 RVA: 0x000578C4 File Offset: 0x00055AC4
[Token(Token = "0x1700027D")]
public InteractionSystem lastUsedInteractionSystem
{
[Token(Token = "0x6002797")]
[Address(RVA = "0x517700", Offset = "0x516500", VA = "0x180517700")]
[CompilerGenerated]
get
{
return this.<lastUsedInteractionSystem>k__BackingField;
}
[Token(Token = "0x6002798")]
[Address(RVA = "0x4C0FD0", Offset = "0x4BFDD0", VA = "0x1804C0FD0")]
[CompilerGenerated]
private set
{
/*
An exception occurred when decompiling this method (06002798)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.InteractionObject::set_lastUsedInteractionSystem(RootMotion.FinalIK.InteractionSystem)
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; stfld:InteractionSystem(InteractionObject::<lastUsedInteractionSystem>k__BackingField, ldloc:InteractionObject(this), ldloc:InteractionSystem(value)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
}
// Token: 0x06002799 RID: 10137 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002799")]
[Address(RVA = "0x10D74E0", Offset = "0x10D62E0", VA = "0x1810D74E0")]
public void Initiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x1700027E RID: 638
// (get) Token: 0x0600279A RID: 10138 RVA: 0x000578D8 File Offset: 0x00055AD8
[Token(Token = "0x1700027E")]
public Transform lookAtTarget
{
[Token(Token = "0x600279A")]
[Address(RVA = "0x10D79C0", Offset = "0x10D67C0", VA = "0x1810D79C0")]
get
{
Transform transform = this.otherLookAtTarget;
int num = 0;
if (!(transform != num))
{
return base.transform;
}
return this.otherLookAtTarget;
}
}
// Token: 0x0600279B RID: 10139 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600279B")]
[Address(RVA = "0x10D6E60", Offset = "0x10D5C60", VA = "0x1810D6E60")]
public InteractionTarget GetTarget(FullBodyBipedEffector effectorType, InteractionSystem interactionSystem)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600279C RID: 10140 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600279C")]
[Address(RVA = "0x10D6CB0", Offset = "0x10D5AB0", VA = "0x1810D6CB0")]
public bool CurveUsed(InteractionObject.WeightCurve.Type type)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600279D RID: 10141 RVA: 0x00057908 File Offset: 0x00055B08
[Token(Token = "0x600279D")]
[Address(RVA = "0x31E360", Offset = "0x31D160", VA = "0x18031E360")]
public InteractionTarget[] GetTargets()
{
return this.targets;
}
// Token: 0x0600279E RID: 10142 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600279E")]
[Address(RVA = "0x10D6FF0", Offset = "0x10D5DF0", VA = "0x1810D6FF0")]
public Transform GetTarget(FullBodyBipedEffector effectorType, string tag)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600279F RID: 10143 RVA: 0x0005791C File Offset: 0x00055B1C
[Token(Token = "0x600279F")]
[Address(RVA = "0x4C0FD0", Offset = "0x4BFDD0", VA = "0x1804C0FD0")]
public void OnStartInteraction(InteractionSystem interactionSystem)
{
/*
An exception occurred when decompiling this method (0600279F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.InteractionObject::OnStartInteraction(RootMotion.FinalIK.InteractionSystem)
---> System.Exception: Basic block has to end with unconditional control flow.
{; Block_0:; stfld:InteractionSystem(InteractionObject::<lastUsedInteractionSystem>k__BackingField, ldloc:InteractionObject(this), ldloc:InteractionSystem(interactionSystem)); };
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
// Token: 0x060027A0 RID: 10144 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60027A0")]
[Address(RVA = "0x10D6710", Offset = "0x10D5510", VA = "0x1810D6710")]
public void Apply(IKSolverFullBodyBiped solver, FullBodyBipedEffector effector, InteractionTarget target, float timer, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060027A1 RID: 10145 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60027A1")]
[Address(RVA = "0x10D71A0", Offset = "0x10D5FA0", VA = "0x1810D71A0")]
public float GetValue(InteractionObject.WeightCurve.Type weightCurveType, InteractionTarget target, float timer)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x1700027F RID: 639
// (get) Token: 0x060027A2 RID: 10146 RVA: 0x00057930 File Offset: 0x00055B30
[Token(Token = "0x1700027F")]
public Transform targetsRoot
{
[Token(Token = "0x60027A2")]
[Address(RVA = "0x10D7A40", Offset = "0x10D6840", VA = "0x1810D7A40")]
get
{
Transform transform = this.otherTargetsRoot;
int num = 0;
if (!(transform != num))
{
return base.transform;
}
return this.otherTargetsRoot;
}
}
// Token: 0x060027A3 RID: 10147 RVA: 0x00057960 File Offset: 0x00055B60
[Token(Token = "0x60027A3")]
[Address(RVA = "0x10D6CA0", Offset = "0x10D5AA0", VA = "0x1810D6CA0")]
private void Awake()
{
this.Initiate();
}
// Token: 0x060027A4 RID: 10148 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60027A4")]
[Address(RVA = "0x10D6130", Offset = "0x10D4F30", VA = "0x1810D6130")]
private void Apply(IKSolverFullBodyBiped solver, FullBodyBipedEffector effector, InteractionObject.WeightCurve.Type type, float value, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060027A5 RID: 10149 RVA: 0x00057974 File Offset: 0x00055B74
[Token(Token = "0x60027A5")]
[Address(RVA = "0x10D6DE0", Offset = "0x10D5BE0", VA = "0x1810D6DE0")]
private Transform GetTarget(FullBodyBipedEffector effectorType)
{
InteractionTarget[] array = this.targets;
int num = 0;
int length = array.Length;
if (num < length)
{
InteractionTarget interactionTarget = array[num];
if (interactionTarget.effectorType != effectorType)
{
num++;
}
return interactionTarget.transform;
}
return base.transform;
}
// Token: 0x060027A6 RID: 10150 RVA: 0x000579C0 File Offset: 0x00055BC0
[Token(Token = "0x60027A6")]
[Address(RVA = "0x10D7470", Offset = "0x10D6270", VA = "0x1810D7470")]
private int GetWeightCurveIndex(InteractionObject.WeightCurve.Type weightCurveType)
{
InteractionObject.WeightCurve[] array = this.weightCurves;
int num = 0;
int length = array.Length;
if (num < length && array[num].type != weightCurveType)
{
num++;
}
return -1;
}
// Token: 0x060027A7 RID: 10151 RVA: 0x00057A00 File Offset: 0x00055C00
[Token(Token = "0x60027A7")]
[Address(RVA = "0x10D6D70", Offset = "0x10D5B70", VA = "0x1810D6D70")]
private int GetMultiplierIndex(InteractionObject.WeightCurve.Type weightCurveType)
{
InteractionObject.Multiplier[] array = this.multipliers;
int num = 0;
int length = array.Length;
if (num < length && array[num].result != weightCurveType)
{
num++;
}
return -1;
}
// Token: 0x060027A8 RID: 10152 RVA: 0x00057A40 File Offset: 0x00055C40
[Token(Token = "0x60027A8")]
[Address(RVA = "0x10D78E0", Offset = "0x10D66E0", VA = "0x1810D78E0")]
[ContextMenu("User Manual")]
private void OpenUserManual()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/page10.html");
}
// Token: 0x060027A9 RID: 10153 RVA: 0x00057A58 File Offset: 0x00055C58
[Token(Token = "0x60027A9")]
[Address(RVA = "0x10D77A0", Offset = "0x10D65A0", VA = "0x1810D77A0")]
[ContextMenu("Scrpt Reference")]
private void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_interaction_object.html");
}
// Token: 0x060027AA RID: 10154 RVA: 0x00057A70 File Offset: 0x00055C70
[Token(Token = "0x60027AA")]
[Address(RVA = "0x10D7960", Offset = "0x10D6760", VA = "0x1810D7960")]
public InteractionObject()
{
InteractionTarget[] array = new InteractionTarget[0];
this.targets = array;
base..ctor();
}
// Token: 0x0400311A RID: 12570
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400311A")]
[Tooltip("If the Interaction System has a 'Look At' LookAtIK component assigned, will use it to make the character look at the specified Transform. If unassigned, will look at this GameObject.")]
public Transform otherLookAtTarget;
// Token: 0x0400311B RID: 12571
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400311B")]
[Tooltip("The root Transform of the InteractionTargets. If null, will use this GameObject. GetComponentsInChildren<InteractionTarget>() will be used at initiation to find all InteractionTargets associated with this InteractionObject.")]
public Transform otherTargetsRoot;
// Token: 0x0400311C RID: 12572
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400311C")]
[Tooltip("If assigned, all PositionOffset channels will be applied in the rotation space of this Transform. If not, they will be in the rotation space of the character.")]
public Transform positionOffsetSpace;
// Token: 0x0400311D RID: 12573
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400311D")]
public InteractionObject.WeightCurve[] weightCurves;
// Token: 0x0400311E RID: 12574
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400311E")]
public InteractionObject.Multiplier[] multipliers;
// Token: 0x0400311F RID: 12575
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x400311F")]
public InteractionObject.InteractionEvent[] events;
// Token: 0x04003122 RID: 12578
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4003122")]
private InteractionTarget[] targets;
// Token: 0x02000448 RID: 1096
[Token(Token = "0x2000448")]
[Serializable]
public class InteractionEvent
{
// Token: 0x060027AB RID: 10155 RVA: 0x00057A94 File Offset: 0x00055C94
[Token(Token = "0x60027AB")]
[Address(RVA = "0x14EB2F0", Offset = "0x14EA0F0", VA = "0x1814EB2F0")]
public void Activate(Transform t)
{
InteractionObject.AnimatorEvent[] array = this.animations;
int num = 0;
int length = array.Length;
if (num < length)
{
InteractionObject.AnimatorEvent animatorEvent = array[num];
bool flag = this.pickUp;
animatorEvent.Activate(flag);
num++;
}
InteractionObject.Message[] array2 = this.messages;
int length2 = array2.Length;
if (num < length2)
{
InteractionObject.Message message = array2[num];
GameObject recipient = message.recipient;
int num2 = 0;
if (!(recipient == num2))
{
string function = message.function;
string empty = string.Empty;
if (!string.Equals(function, empty) && !string.Equals(message.function, ""))
{
GameObject recipient2 = message.recipient;
string function2 = message.function;
int num3 = 0;
recipient2.SendMessage(function2, t, (SendMessageOptions)num3);
}
}
num++;
}
}
// Token: 0x060027AC RID: 10156 RVA: 0x00057B68 File Offset: 0x00055D68
[Token(Token = "0x60027AC")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public InteractionEvent()
{
}
// Token: 0x04003123 RID: 12579
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003123")]
[Tooltip("The time of the event since interaction start.")]
public float time;
// Token: 0x04003124 RID: 12580
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4003124")]
[Tooltip("If true, the interaction will be paused on this event. The interaction can be resumed by InteractionSystem.ResumeInteraction() or InteractionSystem.ResumeAll;")]
public bool pause;
// Token: 0x04003125 RID: 12581
[FieldOffset(Offset = "0x15")]
[Token(Token = "0x4003125")]
[Tooltip("If true, the object will be parented to the effector bone on this event. Note that picking up like this can be done by only a single effector at a time. If you wish to pick up an object with both hands, see the Interaction PickUp2Handed demo scene.")]
public bool pickUp;
// Token: 0x04003126 RID: 12582
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4003126")]
[Tooltip("The animations called on this event.")]
public InteractionObject.AnimatorEvent[] animations;
// Token: 0x04003127 RID: 12583
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4003127")]
[Tooltip("The messages sent on this event using GameObject.SendMessage().")]
public InteractionObject.Message[] messages;
}
// Token: 0x02000449 RID: 1097
[Token(Token = "0x2000449")]
[Serializable]
public class Message
{
// Token: 0x060027AD RID: 10157 RVA: 0x00057B7C File Offset: 0x00055D7C
[Token(Token = "0x60027AD")]
[Address(RVA = "0x14F15A0", Offset = "0x14F03A0", VA = "0x1814F15A0")]
public void Send(Transform t)
{
GameObject gameObject = this.recipient;
int num = 0;
if (!(gameObject == num))
{
string text = this.function;
string text2 = string.Empty;
if (!string.Equals(text, text2) && !string.Equals(this.function, ""))
{
GameObject gameObject2 = this.recipient;
string text3 = this.function;
int num2 = 0;
gameObject2.SendMessage(text3, t, (SendMessageOptions)num2);
}
}
}
// Token: 0x060027AE RID: 10158 RVA: 0x00057BEC File Offset: 0x00055DEC
[Token(Token = "0x60027AE")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public Message()
{
}
// Token: 0x04003128 RID: 12584
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003128")]
[Tooltip("The name of the function called.")]
public string function;
// Token: 0x04003129 RID: 12585
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4003129")]
[Tooltip("The recipient game object.")]
public GameObject recipient;
// Token: 0x0400312A RID: 12586
[Token(Token = "0x400312A")]
private const string empty = "";
}
// Token: 0x0200044A RID: 1098
[Token(Token = "0x200044A")]
[Serializable]
public class AnimatorEvent
{
// Token: 0x060027AF RID: 10159 RVA: 0x00057C00 File Offset: 0x00055E00
[Token(Token = "0x60027AF")]
[Address(RVA = "0x14E2000", Offset = "0x14E0E00", VA = "0x1814E2000")]
public void Activate(bool pickUp)
{
Animator animator = this.animator;
int num = 0;
bool flag = animator != num;
int num2 = 0;
if (flag)
{
if (pickUp)
{
Animator animator2 = this.animator;
int num3 = 0;
animator2.applyRootMotion = num3 != 0;
}
Animator animator3 = this.animator;
bool flag2 = string.Equals(this.animationState, "");
if (!flag2)
{
int num4 = this.layer;
float num5 = this.crossfadeTime;
string text = this.animationState;
if (this.resetNormalizedTime == flag2)
{
animator3.CrossFade(text, num5, num4);
}
animator3.CrossFade(text, num5, num4, (float)num2);
}
}
Animation animation = this.animation;
int num6 = 0;
if (animation != num6)
{
Animation animation2 = this.animation;
bool flag3 = string.Equals(this.animationState, "");
if (!flag3)
{
if (this.resetNormalizedTime != flag3)
{
string text2 = this.animationState;
AnimationState animationState = animation2[text2];
int num7 = 0;
animationState.normalizedTime = (float)num7;
}
string text3 = this.animationState;
AnimationState animationState2 = animation2[text3];
int num8 = this.layer;
animationState2.layer = num8;
float num9 = this.crossfadeTime;
string text4 = this.animationState;
animation2.CrossFade(text4, num9);
}
}
}
// Token: 0x060027B0 RID: 10160 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60027B0")]
[Address(RVA = "0x14E21F0", Offset = "0x14E0FF0", VA = "0x1814E21F0")]
private void Activate(Animator animator)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060027B1 RID: 10161 RVA: 0x00057D40 File Offset: 0x00055F40
[Token(Token = "0x60027B1")]
[Address(RVA = "0x14E1F40", Offset = "0x14E0D40", VA = "0x1814E1F40")]
private void Activate(Animation animation)
{
bool flag = string.Equals(this.animationState, "");
if (!flag)
{
if (this.resetNormalizedTime != flag)
{
string text = this.animationState;
AnimationState animationState = animation[text];
int num = 0;
animationState.normalizedTime = (float)num;
}
string text2 = this.animationState;
AnimationState animationState2 = animation[text2];
int num2 = this.layer;
animationState2.layer = num2;
float num3 = this.crossfadeTime;
string text3 = this.animationState;
animation.CrossFade(text3, num3);
}
}
// Token: 0x060027B2 RID: 10162 RVA: 0x00057DC8 File Offset: 0x00055FC8
[Token(Token = "0x60027B2")]
[Address(RVA = "0x14E2290", Offset = "0x14E1090", VA = "0x1814E2290")]
public AnimatorEvent()
{
}
// Token: 0x0400312B RID: 12587
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400312B")]
[Tooltip("The Animator component that will receive the AnimatorEvents.")]
public Animator animator;
// Token: 0x0400312C RID: 12588
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400312C")]
[Tooltip("The Animation component that will receive the AnimatorEvents (Legacy).")]
public Animation animation;
// Token: 0x0400312D RID: 12589
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400312D")]
[Tooltip("The name of the animation state.")]
public string animationState;
// Token: 0x0400312E RID: 12590
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400312E")]
[Tooltip("The crossfading time.")]
public float crossfadeTime = 0.3f;
// Token: 0x0400312F RID: 12591
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x400312F")]
[Tooltip("The layer of the animation state (if using Legacy, the animation state will be forced to this layer).")]
public int layer;
// Token: 0x04003130 RID: 12592
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4003130")]
[Tooltip("Should the animation always start from 0 normalized time?")]
public bool resetNormalizedTime;
// Token: 0x04003131 RID: 12593
[Token(Token = "0x4003131")]
private const string empty = "";
}
// Token: 0x0200044B RID: 1099
[Token(Token = "0x200044B")]
[Serializable]
public class WeightCurve
{
// Token: 0x060027B3 RID: 10163 RVA: 0x00057DE8 File Offset: 0x00055FE8
[Token(Token = "0x60027B3")]
[Address(RVA = "0x14FB840", Offset = "0x14FA640", VA = "0x1814FB840")]
public float GetValue(float timer)
{
return this.curve.Evaluate(timer);
}
// Token: 0x060027B4 RID: 10164 RVA: 0x00057E08 File Offset: 0x00056008
[Token(Token = "0x60027B4")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public WeightCurve()
{
}
// Token: 0x04003132 RID: 12594
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003132")]
[Tooltip("The type of the curve (InteractionObject.WeightCurve.Type).")]
public InteractionObject.WeightCurve.Type type;
// Token: 0x04003133 RID: 12595
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4003133")]
[Tooltip("The weight curve.")]
public AnimationCurve curve;
// Token: 0x0200044C RID: 1100
[Token(Token = "0x200044C")]
[Serializable]
public enum Type
{
// Token: 0x04003135 RID: 12597
[Token(Token = "0x4003135")]
PositionWeight,
// Token: 0x04003136 RID: 12598
[Token(Token = "0x4003136")]
RotationWeight,
// Token: 0x04003137 RID: 12599
[Token(Token = "0x4003137")]
PositionOffsetX,
// Token: 0x04003138 RID: 12600
[Token(Token = "0x4003138")]
PositionOffsetY,
// Token: 0x04003139 RID: 12601
[Token(Token = "0x4003139")]
PositionOffsetZ,
// Token: 0x0400313A RID: 12602
[Token(Token = "0x400313A")]
Pull,
// Token: 0x0400313B RID: 12603
[Token(Token = "0x400313B")]
Reach,
// Token: 0x0400313C RID: 12604
[Token(Token = "0x400313C")]
RotateBoneWeight,
// Token: 0x0400313D RID: 12605
[Token(Token = "0x400313D")]
Push,
// Token: 0x0400313E RID: 12606
[Token(Token = "0x400313E")]
PushParent,
// Token: 0x0400313F RID: 12607
[Token(Token = "0x400313F")]
PoserWeight
}
}
// Token: 0x0200044D RID: 1101
[Token(Token = "0x200044D")]
[Serializable]
public class Multiplier
{
// Token: 0x060027B5 RID: 10165 RVA: 0x00057E1C File Offset: 0x0005601C
[Token(Token = "0x60027B5")]
[Address(RVA = "0x14F1690", Offset = "0x14F0490", VA = "0x1814F1690")]
public float GetValue(InteractionObject.WeightCurve weightCurve, float timer)
{
/*
An exception occurred when decompiling this method (060027B5)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Single RootMotion.FinalIK.InteractionObject/Multiplier::GetValue(RootMotion.FinalIK.InteractionObject/WeightCurve,System.Single)
---> System.ArgumentOutOfRangeException: Non-negative number required. (Parameter 'length')
at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)
at System.Array.Copy(Array sourceArray, Array destinationArray, Int32 length)
at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 51
at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 401
at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 276
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 112
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
}
// Token: 0x060027B6 RID: 10166 RVA: 0x00057E44 File Offset: 0x00056044
[Token(Token = "0x60027B6")]
[Address(RVA = "0x5FD950", Offset = "0x5FC750", VA = "0x1805FD950")]
public Multiplier()
{
}
// Token: 0x04003140 RID: 12608
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003140")]
[Tooltip("The curve type to multiply.")]
public InteractionObject.WeightCurve.Type curve;
// Token: 0x04003141 RID: 12609
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4003141")]
[Tooltip("The multiplier of the curve's value.")]
public float multiplier = 1f;
// Token: 0x04003142 RID: 12610
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4003142")]
[Tooltip("The resulting value will be applied to this channel.")]
public InteractionObject.WeightCurve.Type result;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,211 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000451 RID: 1105
[Token(Token = "0x2000451")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/Interaction System/Interaction Target")]
[HelpURL("https://www.youtube.com/watch?v=r5jiZnsDH3M")]
public class InteractionTarget : MonoBehaviour
{
// Token: 0x060027F8 RID: 10232 RVA: 0x0005897C File Offset: 0x00056B7C
[Token(Token = "0x60027F8")]
[Address(RVA = "0x10DC760", Offset = "0x10DB560", VA = "0x1810DC760")]
[ContextMenu("TUTORIAL VIDEO (PART 1: BASICS)")]
private void OpenTutorial1()
{
Application.OpenURL("https://www.youtube.com/watch?v=r5jiZnsDH3M");
}
// Token: 0x060027F9 RID: 10233 RVA: 0x00058994 File Offset: 0x00056B94
[Token(Token = "0x60027F9")]
[Address(RVA = "0x10DC7A0", Offset = "0x10DB5A0", VA = "0x1810DC7A0")]
[ContextMenu("TUTORIAL VIDEO (PART 2: PICKING UP...)")]
private void OpenTutorial2()
{
Application.OpenURL("https://www.youtube.com/watch?v=eP9-zycoHLk");
}
// Token: 0x060027FA RID: 10234 RVA: 0x000589AC File Offset: 0x00056BAC
[Token(Token = "0x60027FA")]
[Address(RVA = "0x10DC7E0", Offset = "0x10DB5E0", VA = "0x1810DC7E0")]
[ContextMenu("TUTORIAL VIDEO (PART 3: ANIMATION)")]
private void OpenTutorial3()
{
Application.OpenURL("https://www.youtube.com/watch?v=sQfB2RcT1T4&index=14&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6");
}
// Token: 0x060027FB RID: 10235 RVA: 0x000589C4 File Offset: 0x00056BC4
[Token(Token = "0x60027FB")]
[Address(RVA = "0x10DC820", Offset = "0x10DB620", VA = "0x1810DC820")]
[ContextMenu("TUTORIAL VIDEO (PART 4: TRIGGERS)")]
private void OpenTutorial4()
{
Application.OpenURL("https://www.youtube.com/watch?v=-TDZpNjt2mk&index=15&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6");
}
// Token: 0x060027FC RID: 10236 RVA: 0x000589DC File Offset: 0x00056BDC
[Token(Token = "0x60027FC")]
[Address(RVA = "0x10DCF30", Offset = "0x10DBD30", VA = "0x1810DCF30")]
[ContextMenu("Support Group")]
private void SupportGroup()
{
Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
}
// Token: 0x060027FD RID: 10237 RVA: 0x000589F4 File Offset: 0x00056BF4
[Token(Token = "0x60027FD")]
[Address(RVA = "0x10DC670", Offset = "0x10DB470", VA = "0x1810DC670")]
[ContextMenu("Asset Store Thread")]
private void ASThread()
{
Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
}
// Token: 0x060027FE RID: 10238 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60027FE")]
[Address(RVA = "0x10DC6B0", Offset = "0x10DB4B0", VA = "0x1810DC6B0")]
public float GetValue(InteractionObject.WeightCurve.Type curveType)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060027FF RID: 10239 RVA: 0x00058A0C File Offset: 0x00056C0C
[Token(Token = "0x60027FF")]
[Address(RVA = "0x10DC8A0", Offset = "0x10DB6A0", VA = "0x1810DC8A0")]
public void ResetRotation()
{
Transform transform = this.pivot;
int num = 0;
if (transform != num)
{
Transform transform2 = this.pivot;
Quaternion quaternion = this.defaultLocalRotation;
transform2.localRotation = quaternion;
}
}
// Token: 0x06002800 RID: 10240 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002800")]
[Address(RVA = "0x10DC930", Offset = "0x10DB730", VA = "0x1810DC930")]
public void RotateTo(Vector3 position)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002801 RID: 10241 RVA: 0x00058A48 File Offset: 0x00056C48
[Token(Token = "0x6002801")]
[Address(RVA = "0x10DC860", Offset = "0x10DB660", VA = "0x1810DC860")]
[ContextMenu("User Manual")]
private void OpenUserManual()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/page10.html");
}
// Token: 0x06002802 RID: 10242 RVA: 0x00058A60 File Offset: 0x00056C60
[Token(Token = "0x6002802")]
[Address(RVA = "0x10DC720", Offset = "0x10DB520", VA = "0x1810DC720")]
[ContextMenu("Scrpt Reference")]
private void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_interaction_target.html");
}
// Token: 0x06002803 RID: 10243 RVA: 0x00058A78 File Offset: 0x00056C78
[Token(Token = "0x6002803")]
[Address(RVA = "0x10DCF70", Offset = "0x10DBD70", VA = "0x1810DCF70")]
public InteractionTarget()
{
float z = Vector3.up.z;
this.twistAxis.z = z;
this.twistWeight = 1f;
this.rotateOnce = true;
base..ctor();
}
// Token: 0x0400315B RID: 12635
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400315B")]
[Tooltip("The type of the FBBIK effector.")]
public FullBodyBipedEffector effectorType;
// Token: 0x0400315C RID: 12636
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400315C")]
[Tooltip("InteractionObject weight curve multipliers for this effector target.")]
public InteractionTarget.Multiplier[] multipliers;
// Token: 0x0400315D RID: 12637
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400315D")]
[Tooltip("The interaction speed multiplier for this effector. This can be used to make interactions faster/slower for specific effectors.")]
public float interactionSpeedMlp = 1f;
// Token: 0x0400315E RID: 12638
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400315E")]
[Tooltip("The pivot to twist/swing this interaction target about. For symmetric objects that can be interacted with from a certain angular range.")]
public Transform pivot;
// Token: 0x0400315F RID: 12639
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400315F")]
[Tooltip("The axis of twisting the interaction target (blue line).")]
public Vector3 twistAxis;
// Token: 0x04003160 RID: 12640
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x4003160")]
[Tooltip("The weight of twisting the interaction target towards the effector bone in the start of the interaction.")]
public float twistWeight;
// Token: 0x04003161 RID: 12641
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4003161")]
[Tooltip("The weight of swinging the interaction target towards the effector bone in the start of the interaction. Swing is defined as a 3-DOF rotation around any axis, while twist is only around the twist axis.")]
public float swingWeight;
// Token: 0x04003162 RID: 12642
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x4003162")]
[Tooltip("If true, will twist/swing around the pivot only once at the start of the interaction. If false, will continue rotating throuout the whole interaction.")]
public bool rotateOnce;
// Token: 0x04003163 RID: 12643
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4003163")]
private Quaternion defaultLocalRotation;
// Token: 0x04003164 RID: 12644
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4003164")]
private Transform lastPivot;
// Token: 0x02000452 RID: 1106
[Token(Token = "0x2000452")]
[Serializable]
public class Multiplier
{
// Token: 0x06002804 RID: 10244 RVA: 0x00058AC0 File Offset: 0x00056CC0
[Token(Token = "0x6002804")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public Multiplier()
{
}
// Token: 0x04003165 RID: 12645
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003165")]
[Tooltip("The curve type (InteractionObject.WeightCurve.Type).")]
public InteractionObject.WeightCurve.Type curve;
// Token: 0x04003166 RID: 12646
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4003166")]
[Tooltip("Multiplier of the curve's value.")]
public float multiplier;
}
}
}

View File

@@ -0,0 +1,306 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000453 RID: 1107
[Token(Token = "0x2000453")]
[HelpURL("https://www.youtube.com/watch?v=-TDZpNjt2mk&index=15&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/Interaction System/Interaction Trigger")]
public class InteractionTrigger : MonoBehaviour
{
// Token: 0x06002805 RID: 10245 RVA: 0x00058AD4 File Offset: 0x00056CD4
[Token(Token = "0x6002805")]
[Address(RVA = "0x10DD200", Offset = "0x10DC000", VA = "0x1810DD200")]
[ContextMenu("TUTORIAL VIDEO")]
private void OpenTutorial4()
{
Application.OpenURL("https://www.youtube.com/watch?v=-TDZpNjt2mk&index=15&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6");
}
// Token: 0x06002806 RID: 10246 RVA: 0x00058AEC File Offset: 0x00056CEC
[Token(Token = "0x6002806")]
[Address(RVA = "0x10DD240", Offset = "0x10DC040", VA = "0x1810DD240")]
[ContextMenu("Support Group")]
private void SupportGroup()
{
Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
}
// Token: 0x06002807 RID: 10247 RVA: 0x00058B04 File Offset: 0x00056D04
[Token(Token = "0x6002807")]
[Address(RVA = "0x10DCFC0", Offset = "0x10DBDC0", VA = "0x1810DCFC0")]
[ContextMenu("Asset Store Thread")]
private void ASThread()
{
Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
}
// Token: 0x06002808 RID: 10248 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002808")]
[Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00")]
private void Start()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002809 RID: 10249 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002809")]
[Address(RVA = "0x10DD000", Offset = "0x10DBE00", VA = "0x1810DD000")]
public int GetBestRangeIndex(Transform character, Transform raycastFrom, RaycastHit raycastHit)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600280A RID: 10250 RVA: 0x00058B1C File Offset: 0x00056D1C
[Token(Token = "0x600280A")]
[Address(RVA = "0x10DD280", Offset = "0x10DC080", VA = "0x1810DD280")]
public InteractionTrigger()
{
InteractionTrigger.Range[] array = new InteractionTrigger.Range[0];
this.ranges = array;
base..ctor();
}
// Token: 0x04003167 RID: 12647
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4003167")]
[Tooltip("The valid ranges of the character's and/or it's camera's position for triggering interaction when the character is in contact with the collider of this trigger.")]
public InteractionTrigger.Range[] ranges;
// Token: 0x02000454 RID: 1108
[Token(Token = "0x2000454")]
[Serializable]
public class CharacterPosition
{
// Token: 0x17000283 RID: 643
// (get) Token: 0x0600280B RID: 10251 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000283")]
public Vector3 offset3D
{
[Token(Token = "0x600280B")]
[Address(RVA = "0x14E9DF0", Offset = "0x14E8BF0", VA = "0x1814E9DF0")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x17000284 RID: 644
// (get) Token: 0x0600280C RID: 10252 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000284")]
public Vector3 direction3D
{
[Token(Token = "0x600280C")]
[Address(RVA = "0x14E9D50", Offset = "0x14E8B50", VA = "0x1814E9D50")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x0600280D RID: 10253 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600280D")]
[Address(RVA = "0x14E9590", Offset = "0x14E8390", VA = "0x1814E9590")]
public bool IsInRange(Transform character, Transform trigger, out float error)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600280E RID: 10254 RVA: 0x00058B40 File Offset: 0x00056D40
[Token(Token = "0x600280E")]
[Address(RVA = "0x14E9D30", Offset = "0x14E8B30", VA = "0x1814E9D30")]
public CharacterPosition()
{
}
// Token: 0x04003168 RID: 12648
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003168")]
[Tooltip("If false, will not care where the character stands, as long as it is in contact with the trigger collider.")]
public bool use;
// Token: 0x04003169 RID: 12649
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4003169")]
[Tooltip("The offset of the character's position relative to the trigger in XZ plane. Y position of the character is unlimited as long as it is contact with the collider.")]
public Vector2 offset;
// Token: 0x0400316A RID: 12650
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x400316A")]
[Tooltip("Angle offset from the default forward direction.")]
[Range(-180f, 180f)]
public float angleOffset;
// Token: 0x0400316B RID: 12651
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400316B")]
[Range(0f, 180f)]
[Tooltip("Max angular offset of the character's forward from the direction of this trigger.")]
public float maxAngle = 45f;
// Token: 0x0400316C RID: 12652
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x400316C")]
[Tooltip("Max offset of the character's position from this range's center.")]
public float radius = 0.5f;
// Token: 0x0400316D RID: 12653
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400316D")]
[Tooltip("If true, will rotate the trigger around it's Y axis relative to the position of the character, so the object can be interacted with from all sides.")]
public bool orbit;
// Token: 0x0400316E RID: 12654
[FieldOffset(Offset = "0x29")]
[Token(Token = "0x400316E")]
[Tooltip("Fixes the Y axis of the trigger to Vector3.up. This makes the trigger symmetrical relative to the object. For example a gun will be able to be picked up from the same direction relative to the barrel no matter which side the gun is resting on.")]
public bool fixYAxis;
}
// Token: 0x02000455 RID: 1109
[Token(Token = "0x2000455")]
[Serializable]
public class CameraPosition
{
// Token: 0x0600280F RID: 10255 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600280F")]
[Address(RVA = "0x14E8FF0", Offset = "0x14E7DF0", VA = "0x1814E8FF0")]
public Quaternion GetRotation()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002810 RID: 10256 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002810")]
[Address(RVA = "0x14E9150", Offset = "0x14E7F50", VA = "0x1814E9150")]
public bool IsInRange(Transform raycastFrom, RaycastHit hit, Transform trigger, out float error)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002811 RID: 10257 RVA: 0x00058B6C File Offset: 0x00056D6C
[Token(Token = "0x6002811")]
[Address(RVA = "0x14E9510", Offset = "0x14E8310", VA = "0x1814E9510")]
public CameraPosition()
{
float z = Vector3.forward.z;
this.direction.z = z;
this.maxDistance = 0.5f;
this.maxAngle = 45f;
base..ctor();
}
// Token: 0x0400316F RID: 12655
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400316F")]
[Tooltip("What the camera should be looking at to trigger the interaction?")]
public Collider lookAtTarget;
// Token: 0x04003170 RID: 12656
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4003170")]
[Tooltip("The direction from the lookAtTarget towards the camera (in lookAtTarget's space).")]
public Vector3 direction;
// Token: 0x04003171 RID: 12657
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x4003171")]
[Tooltip("Max distance from the lookAtTarget to the camera.")]
public float maxDistance;
// Token: 0x04003172 RID: 12658
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4003172")]
[Tooltip("Max angle between the direction and the direction towards the camera.")]
[Range(0f, 180f)]
public float maxAngle;
// Token: 0x04003173 RID: 12659
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4003173")]
[Tooltip("Fixes the Y axis of the trigger to Vector3.up. This makes the trigger symmetrical relative to the object.")]
public bool fixYAxis;
}
// Token: 0x02000456 RID: 1110
[Token(Token = "0x2000456")]
[Serializable]
public class Range
{
// Token: 0x06002812 RID: 10258 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002812")]
[Address(RVA = "0x14F2D90", Offset = "0x14F1B90", VA = "0x1814F2D90")]
public bool IsInRange(Transform character, Transform raycastFrom, RaycastHit raycastHit, Transform trigger, out float maxError)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002813 RID: 10259 RVA: 0x00058BAC File Offset: 0x00056DAC
[Token(Token = "0x6002813")]
[Address(RVA = "0x14F2EA0", Offset = "0x14F1CA0", VA = "0x1814F2EA0")]
public Range()
{
}
// Token: 0x04003174 RID: 12660
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003174")]
[SerializeField]
[HideInInspector]
public string name;
// Token: 0x04003175 RID: 12661
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4003175")]
[HideInInspector]
[SerializeField]
public bool show = true;
// Token: 0x04003176 RID: 12662
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4003176")]
[Tooltip("The range for the character's position and rotation.")]
public InteractionTrigger.CharacterPosition characterPosition;
// Token: 0x04003177 RID: 12663
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4003177")]
[Tooltip("The range for the character camera's position and rotation.")]
public InteractionTrigger.CameraPosition cameraPosition;
// Token: 0x04003178 RID: 12664
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4003178")]
[Tooltip("Definitions of the interactions associated with this range.")]
public InteractionTrigger.Range.Interaction[] interactions;
// Token: 0x02000457 RID: 1111
[Token(Token = "0x2000457")]
[Serializable]
public class Interaction
{
// Token: 0x06002814 RID: 10260 RVA: 0x0003883F File Offset: 0x00036A3F
[Token(Token = "0x6002814")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public Interaction()
{
}
// Token: 0x04003179 RID: 12665
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003179")]
[Tooltip("The InteractionObject to interact with.")]
public InteractionObject interactionObject;
// Token: 0x0400317A RID: 12666
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400317A")]
[Tooltip("The effectors to interact with.")]
public FullBodyBipedEffector[] effectors;
}
}
}
}

View File

@@ -0,0 +1,71 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200040D RID: 1037
[Token(Token = "0x200040D")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/IK/Leg IK")]
public class LegIK : IK
{
// Token: 0x06002521 RID: 9505 RVA: 0x00054014 File Offset: 0x00052214
[Token(Token = "0x6002521")]
[Address(RVA = "0x10E38E0", Offset = "0x10E26E0", VA = "0x1810E38E0", Slot = "8")]
[ContextMenu("User Manual")]
protected override void OpenUserManual()
{
Debug.Log("No User Manual page for this component yet, sorry.");
}
// Token: 0x06002522 RID: 9506 RVA: 0x0005402C File Offset: 0x0005222C
[Token(Token = "0x6002522")]
[Address(RVA = "0x10E3880", Offset = "0x10E2680", VA = "0x1810E3880", Slot = "9")]
[ContextMenu("Scrpt Reference")]
protected override void OpenScriptReference()
{
Debug.Log("No Script Reference for this component yet, sorry.");
}
// Token: 0x06002523 RID: 9507 RVA: 0x00054044 File Offset: 0x00052244
[Token(Token = "0x6002523")]
[Address(RVA = "0x10E3940", Offset = "0x10E2740", VA = "0x1810E3940")]
[ContextMenu("Support Group")]
private void SupportGroup()
{
Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
}
// Token: 0x06002524 RID: 9508 RVA: 0x0005405C File Offset: 0x0005225C
[Token(Token = "0x6002524")]
[Address(RVA = "0x10E3840", Offset = "0x10E2640", VA = "0x1810E3840")]
[ContextMenu("Asset Store Thread")]
private void ASThread()
{
Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
}
// Token: 0x06002525 RID: 9509 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002525")]
[Address(RVA = "0x31E3C0", Offset = "0x31D1C0", VA = "0x18031E3C0", Slot = "7")]
public override IKSolver GetIKSolver()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002526 RID: 9510 RVA: 0x00054074 File Offset: 0x00052274
[Token(Token = "0x6002526")]
[Address(RVA = "0x10E3980", Offset = "0x10E2780", VA = "0x1810E3980")]
public LegIK()
{
IKSolverLeg iksolverLeg = new IKSolverLeg();
this.solver = iksolverLeg;
base..ctor();
}
// Token: 0x04002EA2 RID: 11938
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002EA2")]
public IKSolverLeg solver;
}
}

View File

@@ -0,0 +1,72 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200040E RID: 1038
[Token(Token = "0x200040E")]
[HelpURL("http://www.root-motion.com/finalikdox/html/page7.html")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/IK/Limb IK")]
public class LimbIK : IK
{
// Token: 0x06002527 RID: 9511 RVA: 0x00054094 File Offset: 0x00052294
[Token(Token = "0x6002527")]
[Address(RVA = "0x3FB090", Offset = "0x3F9E90", VA = "0x1803FB090", Slot = "8")]
[ContextMenu("User Manual")]
protected override void OpenUserManual()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/page7.html");
}
// Token: 0x06002528 RID: 9512 RVA: 0x000540AC File Offset: 0x000522AC
[Token(Token = "0x6002528")]
[Address(RVA = "0x3FB050", Offset = "0x3F9E50", VA = "0x1803FB050", Slot = "9")]
[ContextMenu("Scrpt Reference")]
protected override void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_limb_i_k.html");
}
// Token: 0x06002529 RID: 9513 RVA: 0x000540C4 File Offset: 0x000522C4
[Token(Token = "0x6002529")]
[Address(RVA = "0x3FB0D0", Offset = "0x3F9ED0", VA = "0x1803FB0D0")]
[ContextMenu("Support Group")]
private void SupportGroup()
{
Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
}
// Token: 0x0600252A RID: 9514 RVA: 0x000540DC File Offset: 0x000522DC
[Token(Token = "0x600252A")]
[Address(RVA = "0x3FB010", Offset = "0x3F9E10", VA = "0x1803FB010")]
[ContextMenu("Asset Store Thread")]
private void ASThread()
{
Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
}
// Token: 0x0600252B RID: 9515 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600252B")]
[Address(RVA = "0x31E3C0", Offset = "0x31D1C0", VA = "0x18031E3C0", Slot = "7")]
public override IKSolver GetIKSolver()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600252C RID: 9516 RVA: 0x000540F4 File Offset: 0x000522F4
[Token(Token = "0x600252C")]
[Address(RVA = "0x3FB110", Offset = "0x3F9F10", VA = "0x1803FB110")]
public LimbIK()
{
IKSolverLimb iksolverLimb = new IKSolverLimb();
this.solver = iksolverLimb;
base..ctor();
}
// Token: 0x04002EA3 RID: 11939
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002EA3")]
public IKSolverLimb solver;
}
}

View File

@@ -0,0 +1,72 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200040F RID: 1039
[Token(Token = "0x200040F")]
[HelpURL("http://www.root-motion.com/finalikdox/html/page8.html")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/IK/Look At IK")]
public class LookAtIK : IK
{
// Token: 0x0600252D RID: 9517 RVA: 0x00054114 File Offset: 0x00052314
[Token(Token = "0x600252D")]
[Address(RVA = "0x3FFEF0", Offset = "0x3FECF0", VA = "0x1803FFEF0", Slot = "8")]
[ContextMenu("User Manual")]
protected override void OpenUserManual()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/page8.html");
}
// Token: 0x0600252E RID: 9518 RVA: 0x0005412C File Offset: 0x0005232C
[Token(Token = "0x600252E")]
[Address(RVA = "0x3FFEB0", Offset = "0x3FECB0", VA = "0x1803FFEB0", Slot = "9")]
[ContextMenu("Scrpt Reference")]
protected override void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_look_at_i_k.html");
}
// Token: 0x0600252F RID: 9519 RVA: 0x00054144 File Offset: 0x00052344
[Token(Token = "0x600252F")]
[Address(RVA = "0x3FFF30", Offset = "0x3FED30", VA = "0x1803FFF30")]
[ContextMenu("Support Group")]
private void SupportGroup()
{
Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
}
// Token: 0x06002530 RID: 9520 RVA: 0x0005415C File Offset: 0x0005235C
[Token(Token = "0x6002530")]
[Address(RVA = "0x3FFE70", Offset = "0x3FEC70", VA = "0x1803FFE70")]
[ContextMenu("Asset Store Thread")]
private void ASThread()
{
Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
}
// Token: 0x06002531 RID: 9521 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002531")]
[Address(RVA = "0x31E3C0", Offset = "0x31D1C0", VA = "0x18031E3C0", Slot = "7")]
public override IKSolver GetIKSolver()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002532 RID: 9522 RVA: 0x00054174 File Offset: 0x00052374
[Token(Token = "0x6002532")]
[Address(RVA = "0x3FFF70", Offset = "0x3FED70", VA = "0x1803FFF70")]
public LookAtIK()
{
IKSolverLookAt iksolverLookAt = new IKSolverLookAt();
this.solver = iksolverLookAt;
base..ctor();
}
// Token: 0x04002EA4 RID: 11940
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002EA4")]
public IKSolverLookAt solver;
}
}

View File

@@ -0,0 +1,237 @@
using System;
using System.Collections;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200047C RID: 1148
[Token(Token = "0x200047C")]
public abstract class OffsetModifier : MonoBehaviour
{
// Token: 0x1700029A RID: 666
// (get) Token: 0x060028DE RID: 10462 RVA: 0x00059DE8 File Offset: 0x00057FE8
[Token(Token = "0x1700029A")]
protected float deltaTime
{
[Token(Token = "0x60028DE")]
[Address(RVA = "0xD38330", Offset = "0xD37130", VA = "0x180D38330")]
get
{
return Time.time;
}
}
// Token: 0x060028DF RID: 10463
[Token(Token = "0x60028DF")]
[Address(Slot = "4")]
protected abstract void OnModifyOffset();
// Token: 0x060028E0 RID: 10464 RVA: 0x00059DFC File Offset: 0x00057FFC
[Token(Token = "0x60028E0")]
[Address(RVA = "0xD386B0", Offset = "0xD374B0", VA = "0x180D386B0", Slot = "5")]
protected virtual void Start()
{
int num;
OffsetModifier.<Initiate>d__8 <Initiate>d__ = new OffsetModifier.<Initiate>d__8(num);
num = 0;
<Initiate>d__.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(<Initiate>d__);
}
// Token: 0x060028E1 RID: 10465 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028E1")]
[Address(RVA = "0xD38440", Offset = "0xD37240", VA = "0x180D38440")]
private IEnumerator Initiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028E2 RID: 10466 RVA: 0x00059E28 File Offset: 0x00058028
[Token(Token = "0x60028E2")]
[Address(RVA = "0xD384B0", Offset = "0xD372B0", VA = "0x180D384B0")]
private void ModifyOffset()
{
if (base.enabled)
{
int num = 0;
if (num < (int)this.weight)
{
float time = Time.time;
if (num < (int)time)
{
FullBodyBipedIK fullBodyBipedIK = this.ik;
int num2 = 0;
if (!(fullBodyBipedIK == num2))
{
float num3 = this.weight;
int num4 = 0;
float num5 = Mathf.Clamp(num3, (float)num4, 1f);
this.weight = num5;
this.OnModifyOffset();
float time2 = Time.time;
this.lastTime = time2;
}
}
}
}
}
// Token: 0x060028E3 RID: 10467 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028E3")]
[Address(RVA = "0xD38350", Offset = "0xD37150", VA = "0x180D38350")]
protected void ApplyLimits(OffsetModifier.OffsetLimits[] limits)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028E4 RID: 10468 RVA: 0x00059EA8 File Offset: 0x000580A8
[Token(Token = "0x60028E4")]
[Address(RVA = "0xD38590", Offset = "0xD37390", VA = "0x180D38590", Slot = "6")]
protected virtual void OnDestroy()
{
FullBodyBipedIK fullBodyBipedIK = this.ik;
int num = 0;
if (fullBodyBipedIK != num)
{
IKSolverFullBodyBiped solver = this.ik.solver;
IKSolver.UpdateDelegate onPreUpdate = solver.OnPreUpdate;
IKSolver.UpdateDelegate updateDelegate = new IKSolver.UpdateDelegate(this.ModifyOffset);
Delegate @delegate = Delegate.Remove(onPreUpdate, updateDelegate);
int num2 = 0;
if (@delegate != 0 && @delegate == 0)
{
throw new InvalidCastException();
}
solver.OnPreUpdate = num2;
}
}
// Token: 0x060028E5 RID: 10469 RVA: 0x00059F14 File Offset: 0x00058114
[Token(Token = "0x60028E5")]
[Address(RVA = "0xBE5C30", Offset = "0xBE4A30", VA = "0x180BE5C30")]
protected OffsetModifier()
{
}
// Token: 0x04003223 RID: 12835
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4003223")]
[Tooltip("The master weight")]
public float weight = 1f;
// Token: 0x04003224 RID: 12836
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4003224")]
[Tooltip("Reference to the FBBIK component")]
public FullBodyBipedIK ik;
// Token: 0x04003225 RID: 12837
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4003225")]
protected float lastTime;
// Token: 0x0200047D RID: 1149
[Token(Token = "0x200047D")]
[Serializable]
public class OffsetLimits
{
// Token: 0x060028E6 RID: 10470 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028E6")]
[Address(RVA = "0x69F500", Offset = "0x69E300", VA = "0x18069F500")]
public void Apply(IKEffector e, Quaternion rootRotation)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028E7 RID: 10471 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028E7")]
[Address(RVA = "0x69F6D0", Offset = "0x69E4D0", VA = "0x18069F6D0")]
private float SpringAxis(float value, float min, float max)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028E8 RID: 10472 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028E8")]
[Address(RVA = "0x69F750", Offset = "0x69E550", VA = "0x18069F750")]
private float Spring(float value, float limit, bool negative)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028E9 RID: 10473 RVA: 0x00059F34 File Offset: 0x00058134
[Token(Token = "0x60028E9")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public OffsetLimits()
{
}
// Token: 0x04003226 RID: 12838
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003226")]
[Tooltip("The effector type (this is just an enum)")]
public FullBodyBipedEffector effector;
// Token: 0x04003227 RID: 12839
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4003227")]
[Tooltip("Spring force, if zero then this is a hard limit, if not, offset can exceed the limit.")]
public float spring;
// Token: 0x04003228 RID: 12840
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4003228")]
[Tooltip("Which axes to limit the offset on?")]
public bool x;
// Token: 0x04003229 RID: 12841
[FieldOffset(Offset = "0x19")]
[Token(Token = "0x4003229")]
[Tooltip("Which axes to limit the offset on?")]
public bool y;
// Token: 0x0400322A RID: 12842
[FieldOffset(Offset = "0x1A")]
[Token(Token = "0x400322A")]
[Tooltip("Which axes to limit the offset on?")]
public bool z;
// Token: 0x0400322B RID: 12843
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x400322B")]
[Tooltip("The limits")]
public float minX;
// Token: 0x0400322C RID: 12844
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400322C")]
[Tooltip("The limits")]
public float maxX;
// Token: 0x0400322D RID: 12845
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x400322D")]
[Tooltip("The limits")]
public float minY;
// Token: 0x0400322E RID: 12846
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400322E")]
[Tooltip("The limits")]
public float maxY;
// Token: 0x0400322F RID: 12847
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x400322F")]
[Tooltip("The limits")]
public float minZ;
// Token: 0x04003230 RID: 12848
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4003230")]
[Tooltip("The limits")]
public float maxZ;
}
}
}

View File

@@ -0,0 +1,126 @@
using System;
using System.Collections;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200047F RID: 1151
[Token(Token = "0x200047F")]
public abstract class OffsetModifierVRIK : MonoBehaviour
{
// Token: 0x1700029D RID: 669
// (get) Token: 0x060028F0 RID: 10480 RVA: 0x00059FA0 File Offset: 0x000581A0
[Token(Token = "0x1700029D")]
protected float deltaTime
{
[Token(Token = "0x60028F0")]
[Address(RVA = "0xD38330", Offset = "0xD37130", VA = "0x180D38330")]
get
{
return Time.time;
}
}
// Token: 0x060028F1 RID: 10481
[Token(Token = "0x60028F1")]
[Address(Slot = "4")]
protected abstract void OnModifyOffset();
// Token: 0x060028F2 RID: 10482 RVA: 0x00059FB4 File Offset: 0x000581B4
[Token(Token = "0x60028F2")]
[Address(RVA = "0xD382B0", Offset = "0xD370B0", VA = "0x180D382B0", Slot = "5")]
protected virtual void Start()
{
int num;
OffsetModifierVRIK.<Initiate>d__7 <Initiate>d__ = new OffsetModifierVRIK.<Initiate>d__7(num);
num = 0;
<Initiate>d__.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(<Initiate>d__);
}
// Token: 0x060028F3 RID: 10483 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028F3")]
[Address(RVA = "0xD38040", Offset = "0xD36E40", VA = "0x180D38040")]
private IEnumerator Initiate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028F4 RID: 10484 RVA: 0x00059FE0 File Offset: 0x000581E0
[Token(Token = "0x60028F4")]
[Address(RVA = "0xD380B0", Offset = "0xD36EB0", VA = "0x180D380B0")]
private void ModifyOffset()
{
if (base.enabled)
{
int num = 0;
if (num < (int)this.weight)
{
float time = Time.time;
if (num < (int)time)
{
VRIK vrik = this.ik;
int num2 = 0;
if (!(vrik == num2))
{
float num3 = this.weight;
int num4 = 0;
float num5 = Mathf.Clamp(num3, (float)num4, 1f);
this.weight = num5;
this.OnModifyOffset();
float time2 = Time.time;
this.lastTime = time2;
}
}
}
}
}
// Token: 0x060028F5 RID: 10485 RVA: 0x0005A060 File Offset: 0x00058260
[Token(Token = "0x60028F5")]
[Address(RVA = "0xD38190", Offset = "0xD36F90", VA = "0x180D38190", Slot = "6")]
protected virtual void OnDestroy()
{
VRIK vrik = this.ik;
int num = 0;
if (vrik != num)
{
IKSolverVR solver = this.ik.solver;
IKSolver.UpdateDelegate onPreUpdate = solver.OnPreUpdate;
IKSolver.UpdateDelegate updateDelegate = new IKSolver.UpdateDelegate(this.ModifyOffset);
Delegate @delegate = Delegate.Remove(onPreUpdate, updateDelegate);
int num2 = 0;
if (@delegate != 0 && @delegate == 0)
{
throw new InvalidCastException();
}
solver.OnPreUpdate = num2;
}
}
// Token: 0x060028F6 RID: 10486 RVA: 0x0005A0CC File Offset: 0x000582CC
[Token(Token = "0x60028F6")]
[Address(RVA = "0xBE5C30", Offset = "0xBE4A30", VA = "0x180BE5C30")]
protected OffsetModifierVRIK()
{
}
// Token: 0x04003234 RID: 12852
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4003234")]
[Tooltip("The master weight")]
public float weight = 1f;
// Token: 0x04003235 RID: 12853
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4003235")]
[Tooltip("Reference to the VRIK component")]
public VRIK ik;
// Token: 0x04003236 RID: 12854
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4003236")]
private float lastTime;
}
}

View File

@@ -0,0 +1,83 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000481 RID: 1153
[Token(Token = "0x2000481")]
public class OffsetPose : MonoBehaviour
{
// Token: 0x060028FD RID: 10493 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028FD")]
[Address(RVA = "0xD38800", Offset = "0xD37600", VA = "0x180D38800")]
public void Apply(IKSolverFullBodyBiped solver, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028FE RID: 10494 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x60028FE")]
[Address(RVA = "0xD38730", Offset = "0xD37530", VA = "0x180D38730")]
public void Apply(IKSolverFullBodyBiped solver, float weight, Quaternion rotation)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060028FF RID: 10495 RVA: 0x0005A144 File Offset: 0x00058344
[Token(Token = "0x60028FF")]
[Address(RVA = "0xD388F0", Offset = "0xD376F0", VA = "0x180D388F0")]
public OffsetPose()
{
OffsetPose.EffectorLink[] array = new OffsetPose.EffectorLink[0];
this.effectorLinks = array;
base..ctor();
}
// Token: 0x0400323A RID: 12858
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400323A")]
public OffsetPose.EffectorLink[] effectorLinks;
// Token: 0x02000482 RID: 1154
[Token(Token = "0x2000482")]
[Serializable]
public class EffectorLink
{
// Token: 0x06002900 RID: 10496 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002900")]
[Address(RVA = "0x69CB10", Offset = "0x69B910", VA = "0x18069CB10")]
public void Apply(IKSolverFullBodyBiped solver, float weight, Quaternion rotation)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002901 RID: 10497 RVA: 0x0005A168 File Offset: 0x00058368
[Token(Token = "0x6002901")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public EffectorLink()
{
}
// Token: 0x0400323B RID: 12859
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400323B")]
public FullBodyBipedEffector effector;
// Token: 0x0400323C RID: 12860
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x400323C")]
public Vector3 offset;
// Token: 0x0400323D RID: 12861
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400323D")]
public Vector3 pin;
// Token: 0x0400323E RID: 12862
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x400323E")]
public Vector3 pinWeight;
}
}
}

View File

@@ -0,0 +1,106 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200045B RID: 1115
[Token(Token = "0x200045B")]
public abstract class Poser : SolverManager
{
// Token: 0x06002826 RID: 10278
[Token(Token = "0x6002826")]
[Address(Slot = "7")]
public abstract void AutoMapping();
// Token: 0x06002827 RID: 10279
[Token(Token = "0x6002827")]
[Address(Slot = "8")]
protected abstract void InitiatePoser();
// Token: 0x06002828 RID: 10280
[Token(Token = "0x6002828")]
[Address(Slot = "9")]
protected abstract void UpdatePoser();
// Token: 0x06002829 RID: 10281
[Token(Token = "0x6002829")]
[Address(Slot = "10")]
protected abstract void FixPoserTransforms();
// Token: 0x0600282A RID: 10282 RVA: 0x00058CF0 File Offset: 0x00056EF0
[Token(Token = "0x600282A")]
[Address(RVA = "0xBDC470", Offset = "0xBDB270", VA = "0x180BDC470", Slot = "5")]
protected override void UpdateSolver()
{
if (!this.initiated)
{
this.InitiateSolver();
if (!this.initiated)
{
return;
}
}
this.AutoMapping();
}
// Token: 0x0600282B RID: 10283 RVA: 0x00058D1C File Offset: 0x00056F1C
[Token(Token = "0x600282B")]
[Address(RVA = "0xBDC440", Offset = "0xBDB240", VA = "0x180BDC440", Slot = "4")]
protected override void InitiateSolver()
{
if (!this.initiated)
{
this.InitiatePoser();
this.initiated = true;
}
}
// Token: 0x0600282C RID: 10284 RVA: 0x00058D40 File Offset: 0x00056F40
[Token(Token = "0x600282C")]
[Address(RVA = "0xBDC420", Offset = "0xBDB220", VA = "0x180BDC420", Slot = "6")]
protected override void FixTransforms()
{
if (this.initiated)
{
this.AutoMapping();
return;
}
}
// Token: 0x0600282D RID: 10285 RVA: 0x00058D60 File Offset: 0x00056F60
[Token(Token = "0x600282D")]
[Address(RVA = "0xBDC4C0", Offset = "0xBDB2C0", VA = "0x180BDC4C0")]
protected Poser()
{
}
// Token: 0x04003185 RID: 12677
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4003185")]
public Transform poseRoot;
// Token: 0x04003186 RID: 12678
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4003186")]
[Range(0f, 1f)]
public float weight = 1f;
// Token: 0x04003187 RID: 12679
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x4003187")]
[Range(0f, 1f)]
public float localRotationWeight = 1f;
// Token: 0x04003188 RID: 12680
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4003188")]
[Range(0f, 1f)]
public float localPositionWeight;
// Token: 0x04003189 RID: 12681
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x4003189")]
private bool initiated;
}
}

View File

@@ -0,0 +1,509 @@
using System;
using System.Collections;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200045C RID: 1116
[Token(Token = "0x200045C")]
[RequireComponent(typeof(Animator))]
public class RagdollUtility : MonoBehaviour
{
// Token: 0x0600282E RID: 10286 RVA: 0x00058D8C File Offset: 0x00056F8C
[Token(Token = "0x600282E")]
[Address(RVA = "0xBE4430", Offset = "0xBE3230", VA = "0x180BE4430")]
public void EnableRagdoll()
{
if (this.rigidbones[0].r.isKinematic || this.animator.enabled)
{
base.StopAllCoroutines();
this.enableRagdollFlag = true;
}
}
// Token: 0x0600282F RID: 10287 RVA: 0x00058DD4 File Offset: 0x00056FD4
[Token(Token = "0x600282F")]
[Address(RVA = "0xBE42E0", Offset = "0xBE30E0", VA = "0x180BE42E0")]
public void DisableRagdoll()
{
if (!this.rigidbones[0].r.isKinematic && !this.animator.enabled)
{
RagdollUtility.Child[] array = this.children;
int num = 0;
int length = array.Length;
if (num < length)
{
array[num].StoreLocalState();
num++;
}
base.StopAllCoroutines();
int num2;
RagdollUtility.<DisableRagdollSmooth>d__21 <DisableRagdollSmooth>d__ = new RagdollUtility.<DisableRagdollSmooth>d__21(num2);
num2 = 0;
<DisableRagdollSmooth>d__.<>4__this = this;
Coroutine coroutine = base.StartCoroutine(<DisableRagdollSmooth>d__);
}
}
// Token: 0x06002830 RID: 10288 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002830")]
[Address(RVA = "0xBE4CA0", Offset = "0xBE3AA0", VA = "0x180BE4CA0")]
public void Start()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002831 RID: 10289 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002831")]
[Address(RVA = "0xBE4270", Offset = "0xBE3070", VA = "0x180BE4270")]
private IEnumerator DisableRagdollSmooth()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002832 RID: 10290 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002832")]
[Address(RVA = "0xBE5210", Offset = "0xBE4010", VA = "0x180BE5210")]
private void Update()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002833 RID: 10291 RVA: 0x00058E54 File Offset: 0x00057054
[Token(Token = "0x6002833")]
[Address(RVA = "0xBE4520", Offset = "0xBE3320", VA = "0x180BE4520")]
private void FixedUpdate()
{
if (!this.rigidbones[0].r.isKinematic)
{
bool enabled = this.animator.enabled;
if (!enabled && this.applyIkOnRagdoll != enabled)
{
this.FixTransforms(1f);
}
}
this.fixedFrame = true;
}
// Token: 0x06002834 RID: 10292 RVA: 0x00058EAC File Offset: 0x000570AC
[Token(Token = "0x6002834")]
[Address(RVA = "0xBE45B0", Offset = "0xBE33B0", VA = "0x180BE45B0")]
private void LateUpdate()
{
if (this.animator.updateMode != AnimatorUpdateMode.AnimatePhysics || (this.animator.updateMode == AnimatorUpdateMode.AnimatePhysics && this.fixedFrame))
{
if (!this.rigidbones[0].r.isKinematic && !this.animator.enabled)
{
RagdollUtility.Child[] array = this.children;
int num = 0;
int length = array.Length;
if (num >= length)
{
goto IL_7E;
}
array[num].StoreLocalState();
num++;
}
float num2 = this.ragdollWeight;
this.FixTransforms(num2);
}
IL_7E:
this.fixedFrame = false;
if (!this.ikUsed)
{
this.OnFinalPose();
}
}
// Token: 0x06002835 RID: 10293 RVA: 0x00058F54 File Offset: 0x00057154
[Token(Token = "0x6002835")]
[Address(RVA = "0xBE4240", Offset = "0xBE3040", VA = "0x180BE4240")]
private void AfterLastIK()
{
if (this.ikUsed)
{
this.OnFinalPose();
return;
}
}
// Token: 0x06002836 RID: 10294 RVA: 0x00058F74 File Offset: 0x00057174
[Token(Token = "0x6002836")]
[Address(RVA = "0xBE4170", Offset = "0xBE2F70", VA = "0x180BE4170")]
private void AfterAnimation()
{
if (!this.rigidbones[0].r.isKinematic && !this.animator.enabled)
{
RagdollUtility.Child[] array = this.children;
int num = 0;
int length = array.Length;
if (num >= length)
{
return;
}
array[num].StoreLocalState();
num++;
}
float num2 = this.ragdollWeight;
this.FixTransforms(num2);
}
// Token: 0x06002837 RID: 10295 RVA: 0x00058FE0 File Offset: 0x000571E0
[Token(Token = "0x6002837")]
[Address(RVA = "0xBE4820", Offset = "0xBE3620", VA = "0x180BE4820")]
private void OnFinalPose()
{
if (this.rigidbones[0].r.isKinematic || this.animator.enabled)
{
RagdollUtility.Rigidbone[] array = this.rigidbones;
int num = 0;
int length = array.Length;
if (num < length)
{
array[num].RecordVelocity();
num++;
}
}
if (this.enableRagdollFlag)
{
this.RagdollEnabler();
}
}
// Token: 0x06002838 RID: 10296 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002838")]
[Address(RVA = "0xBE4900", Offset = "0xBE3700", VA = "0x180BE4900")]
private void RagdollEnabler()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17000285 RID: 645
// (get) Token: 0x06002839 RID: 10297 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000285")]
private bool isRagdoll
{
[Token(Token = "0x6002839")]
[Address(RVA = "0xBE57F0", Offset = "0xBE45F0", VA = "0x180BE57F0")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x0600283A RID: 10298 RVA: 0x00059050 File Offset: 0x00057250
[Token(Token = "0x600283A")]
[Address(RVA = "0xBE4C40", Offset = "0xBE3A40", VA = "0x180BE4C40")]
private void RecordVelocities()
{
RagdollUtility.Rigidbone[] array = this.rigidbones;
int num = 0;
int length = array.Length;
if (num < length)
{
array[num].RecordVelocity();
num++;
}
}
// Token: 0x17000286 RID: 646
// (get) Token: 0x0600283B RID: 10299 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000286")]
private bool ikUsed
{
[Token(Token = "0x600283B")]
[Address(RVA = "0xBE56A0", Offset = "0xBE44A0", VA = "0x180BE56A0")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x0600283C RID: 10300 RVA: 0x00059088 File Offset: 0x00057288
[Token(Token = "0x600283C")]
[Address(RVA = "0xBE51B0", Offset = "0xBE3FB0", VA = "0x180BE51B0")]
private void StoreLocalState()
{
RagdollUtility.Child[] array = this.children;
int num = 0;
int length = array.Length;
if (num < length)
{
array[num].StoreLocalState();
num++;
}
}
// Token: 0x0600283D RID: 10301 RVA: 0x000590C0 File Offset: 0x000572C0
[Token(Token = "0x600283D")]
[Address(RVA = "0xBE44B0", Offset = "0xBE32B0", VA = "0x180BE44B0")]
private void FixTransforms(float weight)
{
RagdollUtility.Child[] array = this.children;
int num = 0;
int length = array.Length;
if (num < length)
{
array[num].FixTransform(weight);
num++;
}
}
// Token: 0x0600283E RID: 10302 RVA: 0x000590F8 File Offset: 0x000572F8
[Token(Token = "0x600283E")]
[Address(RVA = "0xBE46F0", Offset = "0xBE34F0", VA = "0x180BE46F0")]
private void OnDestroy()
{
IK ik = this.ik;
int num = 0;
if (ik != num)
{
IKSolver iksolver = this.ik.GetIKSolver();
IKSolver.UpdateDelegate onPostUpdate = iksolver.OnPostUpdate;
IKSolver.UpdateDelegate updateDelegate = new IKSolver.UpdateDelegate(this.AfterLastIK);
Delegate @delegate = Delegate.Remove(onPostUpdate, updateDelegate);
int num2 = 0;
if (@delegate != 0 && @delegate == 0)
{
throw new InvalidCastException();
}
iksolver.OnPostUpdate = num2;
}
}
// Token: 0x0600283F RID: 10303 RVA: 0x00059164 File Offset: 0x00057364
[Token(Token = "0x600283F")]
[Address(RVA = "0xBE55A0", Offset = "0xBE43A0", VA = "0x180BE55A0")]
public RagdollUtility()
{
int num = 0;
this.applyVelocity = 1f;
this.applyAngularVelocity = 1f;
RagdollUtility.Rigidbone[] array = new RagdollUtility.Rigidbone[num];
this.rigidbones = array;
RagdollUtility.Child[] array2 = new RagdollUtility.Child[0];
this.children = array2;
IK[] array3 = new IK[0];
this.allIKComponents = array3;
bool[] array4 = new bool[0];
this.fixTransforms = array4;
bool[] array5 = new bool[0];
this.disabledIKComponents = array5;
base..ctor();
}
// Token: 0x0400318A RID: 12682
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400318A")]
[Tooltip("If you have multiple IK components, then this should be the one that solves last each frame.")]
public IK ik;
// Token: 0x0400318B RID: 12683
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400318B")]
[Tooltip("How long does it take to blend from ragdoll to animation?")]
public float ragdollToAnimationTime = 0.2f;
// Token: 0x0400318C RID: 12684
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x400318C")]
[Tooltip("If true, IK can be used on top of physical ragdoll simulation.")]
public bool applyIkOnRagdoll;
// Token: 0x0400318D RID: 12685
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400318D")]
[Tooltip("How much velocity transfer from animation to ragdoll?")]
public float applyVelocity;
// Token: 0x0400318E RID: 12686
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x400318E")]
[Tooltip("How much angular velocity to transfer from animation to ragdoll?")]
public float applyAngularVelocity;
// Token: 0x0400318F RID: 12687
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400318F")]
private Animator animator;
// Token: 0x04003190 RID: 12688
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4003190")]
private RagdollUtility.Rigidbone[] rigidbones;
// Token: 0x04003191 RID: 12689
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4003191")]
private RagdollUtility.Child[] children;
// Token: 0x04003192 RID: 12690
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4003192")]
private bool enableRagdollFlag;
// Token: 0x04003193 RID: 12691
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x4003193")]
private AnimatorUpdateMode animatorUpdateMode;
// Token: 0x04003194 RID: 12692
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4003194")]
private IK[] allIKComponents;
// Token: 0x04003195 RID: 12693
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4003195")]
private bool[] fixTransforms;
// Token: 0x04003196 RID: 12694
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4003196")]
private float ragdollWeight;
// Token: 0x04003197 RID: 12695
[FieldOffset(Offset = "0x64")]
[Token(Token = "0x4003197")]
private float ragdollWeightV;
// Token: 0x04003198 RID: 12696
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4003198")]
private bool fixedFrame;
// Token: 0x04003199 RID: 12697
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4003199")]
private bool[] disabledIKComponents;
// Token: 0x0200045D RID: 1117
[Token(Token = "0x200045D")]
public class Rigidbone
{
// Token: 0x06002840 RID: 10304 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002840")]
[Address(RVA = "0x6A1750", Offset = "0x6A0550", VA = "0x1806A1750")]
public Rigidbone(Rigidbody r)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002841 RID: 10305 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002841")]
[Address(RVA = "0x6A1380", Offset = "0x6A0180", VA = "0x1806A1380")]
public void RecordVelocity()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002842 RID: 10306 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002842")]
[Address(RVA = "0x6A14C0", Offset = "0x6A02C0", VA = "0x1806A14C0")]
public void WakeUp(float velocityWeight, float angularVelocityWeight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0400319A RID: 12698
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400319A")]
public Rigidbody r;
// Token: 0x0400319B RID: 12699
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400319B")]
public Transform t;
// Token: 0x0400319C RID: 12700
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400319C")]
public Collider collider;
// Token: 0x0400319D RID: 12701
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400319D")]
public Joint joint;
// Token: 0x0400319E RID: 12702
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400319E")]
public Rigidbody c;
// Token: 0x0400319F RID: 12703
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400319F")]
public bool updateAnchor;
// Token: 0x040031A0 RID: 12704
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x40031A0")]
public Vector3 deltaPosition;
// Token: 0x040031A1 RID: 12705
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40031A1")]
public Quaternion deltaRotation;
// Token: 0x040031A2 RID: 12706
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x40031A2")]
public float deltaTime;
// Token: 0x040031A3 RID: 12707
[FieldOffset(Offset = "0x5C")]
[Token(Token = "0x40031A3")]
public Vector3 lastPosition;
// Token: 0x040031A4 RID: 12708
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x40031A4")]
public Quaternion lastRotation;
}
// Token: 0x0200045E RID: 1118
[Token(Token = "0x200045E")]
public class Child
{
// Token: 0x06002843 RID: 10307 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002843")]
[Address(RVA = "0x69B9E0", Offset = "0x69A7E0", VA = "0x18069B9E0")]
public Child(Transform transform)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002844 RID: 10308 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002844")]
[Address(RVA = "0x69B7C0", Offset = "0x69A5C0", VA = "0x18069B7C0")]
public void FixTransform(float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002845 RID: 10309 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002845")]
[Address(RVA = "0x69B980", Offset = "0x69A780", VA = "0x18069B980")]
public void StoreLocalState()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x040031A5 RID: 12709
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40031A5")]
public Transform t;
// Token: 0x040031A6 RID: 12710
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40031A6")]
public Vector3 localPosition;
// Token: 0x040031A7 RID: 12711
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x40031A7")]
public Quaternion localRotation;
}
}
}

View File

@@ -0,0 +1,417 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000483 RID: 1155
[Token(Token = "0x2000483")]
public class Recoil : OffsetModifier
{
// Token: 0x170002A0 RID: 672
// (get) Token: 0x06002902 RID: 10498 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x170002A0")]
public bool isFinished
{
[Token(Token = "0x6002902")]
[Address(RVA = "0xBE7150", Offset = "0xBE5F50", VA = "0x180BE7150")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x06002903 RID: 10499 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002903")]
[Address(RVA = "0xBE70B0", Offset = "0xBE5EB0", VA = "0x180BE70B0")]
public void SetHandRotations(Quaternion leftHandRotation, Quaternion rightHandRotation)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002904 RID: 10500 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002904")]
[Address(RVA = "0xBE5E40", Offset = "0xBE4C40", VA = "0x180BE5E40")]
public void Fire(float magnitude)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002905 RID: 10501 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002905")]
[Address(RVA = "0xBE61F0", Offset = "0xBE4FF0", VA = "0x180BE61F0", Slot = "4")]
protected override void OnModifyOffset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002906 RID: 10502 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002906")]
[Address(RVA = "0xBE5C90", Offset = "0xBE4A90", VA = "0x180BE5C90")]
private void AfterFBBIK()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002907 RID: 10503 RVA: 0x0005A17C File Offset: 0x0005837C
[Token(Token = "0x6002907")]
[Address(RVA = "0xBE5C40", Offset = "0xBE4A40", VA = "0x180BE5C40")]
private void AfterAimIK()
{
if (this.aimIKSolvedLast)
{
IKSolverAim solver = this.aimIK.solver;
float z = this.aimIKAxis.z;
solver.axis.z = z;
}
}
// Token: 0x170002A1 RID: 673
// (get) Token: 0x06002908 RID: 10504 RVA: 0x0005A1BC File Offset: 0x000583BC
[Token(Token = "0x170002A1")]
private IKEffector primaryHandEffector
{
[Token(Token = "0x6002908")]
[Address(RVA = "0xBE7170", Offset = "0xBE5F70", VA = "0x180BE7170")]
get
{
FullBodyBipedIK ik = this.ik;
if (this.handedness != Recoil.Handedness.Right)
{
return ik.solver.leftHandEffector;
}
return ik.solver.rightHandEffector;
}
}
// Token: 0x170002A2 RID: 674
// (get) Token: 0x06002909 RID: 10505 RVA: 0x0005A1F8 File Offset: 0x000583F8
[Token(Token = "0x170002A2")]
private IKEffector secondaryHandEffector
{
[Token(Token = "0x6002909")]
[Address(RVA = "0xBE7210", Offset = "0xBE6010", VA = "0x180BE7210")]
get
{
FullBodyBipedIK ik = this.ik;
if (this.handedness != Recoil.Handedness.Right)
{
return ik.solver.rightHandEffector;
}
return ik.solver.leftHandEffector;
}
}
// Token: 0x170002A3 RID: 675
// (get) Token: 0x0600290A RID: 10506 RVA: 0x0005A234 File Offset: 0x00058434
[Token(Token = "0x170002A3")]
private Transform primaryHand
{
[Token(Token = "0x600290A")]
[Address(RVA = "0xBE71C0", Offset = "0xBE5FC0", VA = "0x180BE71C0")]
get
{
FullBodyBipedIK ik = this.ik;
if (this.handedness != Recoil.Handedness.Right)
{
IKEffector leftHandEffector = ik.solver.leftHandEffector;
}
return ik.solver.rightHandEffector.bone;
}
}
// Token: 0x170002A4 RID: 676
// (get) Token: 0x0600290B RID: 10507 RVA: 0x0005A274 File Offset: 0x00058474
[Token(Token = "0x170002A4")]
private Transform secondaryHand
{
[Token(Token = "0x600290B")]
[Address(RVA = "0xBE7260", Offset = "0xBE6060", VA = "0x180BE7260")]
get
{
FullBodyBipedIK ik = this.ik;
if (this.handedness != Recoil.Handedness.Right)
{
IKEffector rightHandEffector = ik.solver.rightHandEffector;
}
return ik.solver.leftHandEffector.bone;
}
}
// Token: 0x0600290C RID: 10508 RVA: 0x0005A2B4 File Offset: 0x000584B4
[Token(Token = "0x600290C")]
[Address(RVA = "0xBE5FE0", Offset = "0xBE4DE0", VA = "0x180BE5FE0", Slot = "6")]
protected override void OnDestroy()
{
base.OnDestroy();
FullBodyBipedIK ik = this.ik;
int num = 0;
if (ik != num && this.initiated)
{
IKSolverFullBodyBiped solver = this.ik.solver;
IKSolver.UpdateDelegate onPostUpdate = solver.OnPostUpdate;
IKSolver.UpdateDelegate updateDelegate = new IKSolver.UpdateDelegate(this.AfterFBBIK);
Delegate @delegate = Delegate.Remove(onPostUpdate, updateDelegate);
int num2 = 0;
if (@delegate == 0 || @delegate != 0)
{
solver.OnPostUpdate = num2;
AimIK aimIK = this.aimIK;
int num3 = 0;
if (!(aimIK != num3))
{
return;
}
IKSolverAim solver2 = this.aimIK.solver;
IKSolver.UpdateDelegate onPostUpdate2 = solver2.OnPostUpdate;
IKSolver.UpdateDelegate updateDelegate2 = new IKSolver.UpdateDelegate(this.AfterAimIK);
Delegate delegate2 = Delegate.Remove(onPostUpdate2, updateDelegate2);
if (delegate2 == 0 || delegate2 != 0)
{
solver2.OnPostUpdate = delegate2;
return;
}
}
throw new InvalidCastException();
}
}
// Token: 0x0600290D RID: 10509 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600290D")]
[Address(RVA = "0xBE70E0", Offset = "0xBE5EE0", VA = "0x180BE70E0")]
public Recoil()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0400323F RID: 12863
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400323F")]
[Tooltip("Reference to the AimIK component. Optional, only used to getting the aiming direction.")]
public AimIK aimIK;
// Token: 0x04003240 RID: 12864
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4003240")]
[Tooltip("Set this true if you are using IKExecutionOrder.cs or a custom script to force AimIK solve after FBBIK.")]
public bool aimIKSolvedLast;
// Token: 0x04003241 RID: 12865
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x4003241")]
[Tooltip("Which hand is holding the weapon?")]
public Recoil.Handedness handedness;
// Token: 0x04003242 RID: 12866
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4003242")]
[Tooltip("Check for 2-handed weapons.")]
public bool twoHanded;
// Token: 0x04003243 RID: 12867
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4003243")]
[Tooltip("Weight curve for the recoil offsets. Recoil procedure is as long as this curve.")]
public AnimationCurve recoilWeight;
// Token: 0x04003244 RID: 12868
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4003244")]
[Tooltip("How much is the magnitude randomized each time Recoil is called?")]
public float magnitudeRandom;
// Token: 0x04003245 RID: 12869
[FieldOffset(Offset = "0x54")]
[Token(Token = "0x4003245")]
[Tooltip("How much is the rotation randomized each time Recoil is called?")]
public Vector3 rotationRandom;
// Token: 0x04003246 RID: 12870
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4003246")]
[Tooltip("Rotating the primary hand bone for the recoil (in local space).")]
public Vector3 handRotationOffset;
// Token: 0x04003247 RID: 12871
[FieldOffset(Offset = "0x6C")]
[Token(Token = "0x4003247")]
[Tooltip("Time of blending in another recoil when doing automatic fire.")]
public float blendTime;
// Token: 0x04003248 RID: 12872
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4003248")]
[Space]
[Space(10f)]
[Tooltip("FBBIK effector position offsets for the recoil (in aiming direction space).")]
public Recoil.RecoilOffset[] offsets;
// Token: 0x04003249 RID: 12873
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4003249")]
[HideInInspector]
public Quaternion rotationOffset;
// Token: 0x0400324A RID: 12874
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x400324A")]
private float magnitudeMlp;
// Token: 0x0400324B RID: 12875
[FieldOffset(Offset = "0x8C")]
[Token(Token = "0x400324B")]
private float endTime;
// Token: 0x0400324C RID: 12876
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x400324C")]
private Quaternion handRotation;
// Token: 0x0400324D RID: 12877
[FieldOffset(Offset = "0xA0")]
[Token(Token = "0x400324D")]
private Quaternion secondaryHandRelativeRotation;
// Token: 0x0400324E RID: 12878
[FieldOffset(Offset = "0xB0")]
[Token(Token = "0x400324E")]
private Quaternion randomRotation;
// Token: 0x0400324F RID: 12879
[FieldOffset(Offset = "0xC0")]
[Token(Token = "0x400324F")]
private float length;
// Token: 0x04003250 RID: 12880
[FieldOffset(Offset = "0xC4")]
[Token(Token = "0x4003250")]
private bool initiated;
// Token: 0x04003251 RID: 12881
[FieldOffset(Offset = "0xC8")]
[Token(Token = "0x4003251")]
private float blendWeight;
// Token: 0x04003252 RID: 12882
[FieldOffset(Offset = "0xCC")]
[Token(Token = "0x4003252")]
private float w;
// Token: 0x04003253 RID: 12883
[FieldOffset(Offset = "0xD0")]
[Token(Token = "0x4003253")]
private Quaternion primaryHandRotation;
// Token: 0x04003254 RID: 12884
[FieldOffset(Offset = "0xE0")]
[Token(Token = "0x4003254")]
private bool handRotationsSet;
// Token: 0x04003255 RID: 12885
[FieldOffset(Offset = "0xE4")]
[Token(Token = "0x4003255")]
private Vector3 aimIKAxis;
// Token: 0x02000484 RID: 1156
[Token(Token = "0x2000484")]
[Serializable]
public class RecoilOffset
{
// Token: 0x0600290E RID: 10510 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600290E")]
[Address(RVA = "0x6A0250", Offset = "0x69F050", VA = "0x1806A0250")]
public void Start()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600290F RID: 10511 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600290F")]
[Address(RVA = "0x69FFA0", Offset = "0x69EDA0", VA = "0x18069FFA0")]
public void Apply(IKSolverFullBodyBiped solver, Quaternion rotation, float masterWeight, float length, float timeLeft)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002910 RID: 10512 RVA: 0x0005A390 File Offset: 0x00058590
[Token(Token = "0x6002910")]
[Address(RVA = "0x6A0300", Offset = "0x69F100", VA = "0x1806A0300")]
public RecoilOffset()
{
}
// Token: 0x04003256 RID: 12886
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003256")]
[Tooltip("Offset vector for the associated effector when doing recoil.")]
public Vector3 offset;
// Token: 0x04003257 RID: 12887
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4003257")]
[Range(0f, 1f)]
[Tooltip("When firing before the last recoil has faded, how much of the current recoil offset will be maintained?")]
public float additivity = 1f;
// Token: 0x04003258 RID: 12888
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4003258")]
[Tooltip("Max additive recoil for automatic fire.")]
public float maxAdditiveOffsetMag = 0.2f;
// Token: 0x04003259 RID: 12889
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4003259")]
[Tooltip("Linking this recoil offset to FBBIK effectors.")]
public Recoil.RecoilOffset.EffectorLink[] effectorLinks;
// Token: 0x0400325A RID: 12890
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400325A")]
private Vector3 additiveOffset;
// Token: 0x0400325B RID: 12891
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x400325B")]
private Vector3 lastOffset;
// Token: 0x02000485 RID: 1157
[Token(Token = "0x2000485")]
[Serializable]
public class EffectorLink
{
// Token: 0x06002911 RID: 10513 RVA: 0x0003883F File Offset: 0x00036A3F
[Token(Token = "0x6002911")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public EffectorLink()
{
}
// Token: 0x0400325C RID: 12892
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400325C")]
[Tooltip("Type of the FBBIK effector to use")]
public FullBodyBipedEffector effector;
// Token: 0x0400325D RID: 12893
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x400325D")]
[Tooltip("Weight of using this effector")]
public float weight;
}
}
// Token: 0x02000486 RID: 1158
[Token(Token = "0x2000486")]
[Serializable]
public enum Handedness
{
// Token: 0x0400325F RID: 12895
[Token(Token = "0x400325F")]
Right,
// Token: 0x04003260 RID: 12896
[Token(Token = "0x4003260")]
Left
}
}
}

View File

@@ -0,0 +1,165 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000460 RID: 1120
[Token(Token = "0x2000460")]
public abstract class RotationLimit : MonoBehaviour
{
// Token: 0x0600284C RID: 10316 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600284C")]
[Address(RVA = "0xBEB340", Offset = "0xBEA140", VA = "0x180BEB340")]
public void SetDefaultLocalRotation()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600284D RID: 10317 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600284D")]
[Address(RVA = "0xBEADB0", Offset = "0xBE9BB0", VA = "0x180BEADB0")]
public Quaternion GetLimitedLocalRotation(Quaternion localRotation, out bool changed)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600284E RID: 10318 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600284E")]
[Address(RVA = "0xBEAB00", Offset = "0xBE9900", VA = "0x180BEAB00")]
public bool Apply()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600284F RID: 10319 RVA: 0x0005923C File Offset: 0x0005743C
[Token(Token = "0x600284F")]
[Address(RVA = "0xBEAD80", Offset = "0xBE9B80", VA = "0x180BEAD80")]
public void Disable()
{
if (!this.initiated)
{
this.Awake();
}
int num = 0;
base.enabled = num != 0;
}
// Token: 0x17000289 RID: 649
// (get) Token: 0x06002850 RID: 10320 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000289")]
public Vector3 secondaryAxis
{
[Token(Token = "0x6002850")]
[Address(RVA = "0xBEB430", Offset = "0xBEA230", VA = "0x180BEB430")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x1700028A RID: 650
// (get) Token: 0x06002851 RID: 10321 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x1700028A")]
public Vector3 crossAxis
{
[Token(Token = "0x6002851")]
[Address(RVA = "0xBEB3C0", Offset = "0xBEA1C0", VA = "0x180BEB3C0")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x06002852 RID: 10322
[Token(Token = "0x6002852")]
[Address(Slot = "4")]
protected abstract Quaternion LimitRotation(Quaternion rotation);
// Token: 0x06002853 RID: 10323 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002853")]
[Address(RVA = "0xBEAC80", Offset = "0xBE9A80", VA = "0x180BEAC80")]
private void Awake()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002854 RID: 10324 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002854")]
[Address(RVA = "0xBEAF50", Offset = "0xBE9D50", VA = "0x180BEAF50")]
private void LateUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002855 RID: 10325 RVA: 0x00059264 File Offset: 0x00057464
[Token(Token = "0x6002855")]
[Address(RVA = "0x8D5970", Offset = "0x8D4770", VA = "0x1808D5970")]
public void LogWarning(string message)
{
Transform transform = base.transform;
int num = 0;
Warning.Log(message, transform, num != 0);
}
// Token: 0x06002856 RID: 10326 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002856")]
[Address(RVA = "0xBEB0C0", Offset = "0xBE9EC0", VA = "0x180BEB0C0")]
protected static Quaternion Limit1DOF(Quaternion rotation, Vector3 axis)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002857 RID: 10327 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002857")]
[Address(RVA = "0xBEB180", Offset = "0xBE9F80", VA = "0x180BEB180")]
protected static Quaternion LimitTwist(Quaternion rotation, Vector3 axis, Vector3 orthoAxis, float twistLimit)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002858 RID: 10328 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002858")]
[Address(RVA = "0xBEAED0", Offset = "0xBE9CD0", VA = "0x180BEAED0")]
protected static float GetOrthogonalAngle(Vector3 v1, Vector3 v2, Vector3 normal)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002859 RID: 10329 RVA: 0x00059284 File Offset: 0x00057484
[Token(Token = "0x6002859")]
[Address(RVA = "0xBEB380", Offset = "0xBEA180", VA = "0x180BEB380")]
protected RotationLimit()
{
float z = Vector3.forward.z;
this.axis.z = z;
base..ctor();
}
// Token: 0x040031AB RID: 12715
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40031AB")]
public Vector3 axis;
// Token: 0x040031AC RID: 12716
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x40031AC")]
[HideInInspector]
public Quaternion defaultLocalRotation;
// Token: 0x040031AD RID: 12717
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x40031AD")]
private bool initiated;
// Token: 0x040031AE RID: 12718
[FieldOffset(Offset = "0x35")]
[Token(Token = "0x40031AE")]
private bool applicationQuit;
// Token: 0x040031AF RID: 12719
[FieldOffset(Offset = "0x36")]
[Token(Token = "0x40031AF")]
private bool defaultLocalRotationSet;
}
}

View File

@@ -0,0 +1,87 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000461 RID: 1121
[Token(Token = "0x2000461")]
[HelpURL("http://www.root-motion.com/finalikdox/html/page12.html")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/Rotation Limits/Rotation Limit Angle")]
public class RotationLimitAngle : RotationLimit
{
// Token: 0x0600285A RID: 10330 RVA: 0x000592B0 File Offset: 0x000574B0
[Token(Token = "0x600285A")]
[Address(RVA = "0xBE83F0", Offset = "0xBE71F0", VA = "0x180BE83F0")]
[ContextMenu("User Manual")]
private void OpenUserManual()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/page12.html");
}
// Token: 0x0600285B RID: 10331 RVA: 0x000592C8 File Offset: 0x000574C8
[Token(Token = "0x600285B")]
[Address(RVA = "0xBE83B0", Offset = "0xBE71B0", VA = "0x180BE83B0")]
[ContextMenu("Scrpt Reference")]
private void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_rotation_limit_angle.html");
}
// Token: 0x0600285C RID: 10332 RVA: 0x000592E0 File Offset: 0x000574E0
[Token(Token = "0x600285C")]
[Address(RVA = "0xBE8430", Offset = "0xBE7230", VA = "0x180BE8430")]
[ContextMenu("Support Group")]
private void SupportGroup()
{
Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
}
// Token: 0x0600285D RID: 10333 RVA: 0x000592F8 File Offset: 0x000574F8
[Token(Token = "0x600285D")]
[Address(RVA = "0xBE7F00", Offset = "0xBE6D00", VA = "0x180BE7F00")]
[ContextMenu("Asset Store Thread")]
private void ASThread()
{
Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
}
// Token: 0x0600285E RID: 10334 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600285E")]
[Address(RVA = "0xBE7F40", Offset = "0xBE6D40", VA = "0x180BE7F40", Slot = "4")]
protected override Quaternion LimitRotation(Quaternion rotation)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600285F RID: 10335 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600285F")]
[Address(RVA = "0xBE81B0", Offset = "0xBE6FB0", VA = "0x180BE81B0")]
private Quaternion LimitSwing(Quaternion rotation)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002860 RID: 10336 RVA: 0x00059310 File Offset: 0x00057510
[Token(Token = "0x6002860")]
[Address(RVA = "0xBE8470", Offset = "0xBE7270", VA = "0x180BE8470")]
public RotationLimitAngle()
{
float z = Vector3.forward.z;
this.axis.z = z;
base..ctor();
}
// Token: 0x040031B0 RID: 12720
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40031B0")]
[Range(0f, 180f)]
public float limit = 45f;
// Token: 0x040031B1 RID: 12721
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x40031B1")]
[Range(0f, 180f)]
public float twistLimit = 180f;
}
}

View File

@@ -0,0 +1,104 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000462 RID: 1122
[Token(Token = "0x2000462")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/Rotation Limits/Rotation Limit Hinge")]
[HelpURL("http://www.root-motion.com/finalikdox/html/page12.html")]
public class RotationLimitHinge : RotationLimit
{
// Token: 0x06002861 RID: 10337 RVA: 0x00059350 File Offset: 0x00057550
[Token(Token = "0x6002861")]
[Address(RVA = "0xBE88C0", Offset = "0xBE76C0", VA = "0x180BE88C0")]
[ContextMenu("User Manual")]
private void OpenUserManual()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/page12.html");
}
// Token: 0x06002862 RID: 10338 RVA: 0x00059368 File Offset: 0x00057568
[Token(Token = "0x6002862")]
[Address(RVA = "0xBE8880", Offset = "0xBE7680", VA = "0x180BE8880")]
[ContextMenu("Scrpt Reference")]
private void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_rotation_limit_hinge.html");
}
// Token: 0x06002863 RID: 10339 RVA: 0x00059380 File Offset: 0x00057580
[Token(Token = "0x6002863")]
[Address(RVA = "0xBE8900", Offset = "0xBE7700", VA = "0x180BE8900")]
[ContextMenu("Support Group")]
private void SupportGroup()
{
Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
}
// Token: 0x06002864 RID: 10340 RVA: 0x00059398 File Offset: 0x00057598
[Token(Token = "0x6002864")]
[Address(RVA = "0xBE84C0", Offset = "0xBE72C0", VA = "0x180BE84C0")]
[ContextMenu("Asset Store Thread")]
private void ASThread()
{
Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
}
// Token: 0x06002865 RID: 10341 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002865")]
[Address(RVA = "0xBE8830", Offset = "0xBE7630", VA = "0x180BE8830", Slot = "4")]
protected override Quaternion LimitRotation(Quaternion rotation)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002866 RID: 10342 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002866")]
[Address(RVA = "0xBE8500", Offset = "0xBE7300", VA = "0x180BE8500")]
private Quaternion LimitHinge(Quaternion rotation)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002867 RID: 10343 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002867")]
[Address(RVA = "0xBE8940", Offset = "0xBE7740", VA = "0x180BE8940")]
public RotationLimitHinge()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x040031B2 RID: 12722
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40031B2")]
public bool useLimits;
// Token: 0x040031B3 RID: 12723
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x40031B3")]
public float min;
// Token: 0x040031B4 RID: 12724
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40031B4")]
public float max;
// Token: 0x040031B5 RID: 12725
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x40031B5")]
[HideInInspector]
public float zeroAxisDisplayOffset;
// Token: 0x040031B6 RID: 12726
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40031B6")]
private Quaternion lastRotation;
// Token: 0x040031B7 RID: 12727
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x40031B7")]
private float lastAngle;
}
}

View File

@@ -0,0 +1,316 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000463 RID: 1123
[Token(Token = "0x2000463")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/Rotation Limits/Rotation Limit Polygonal")]
[HelpURL("http://www.root-motion.com/finalikdox/html/page12.html")]
public class RotationLimitPolygonal : RotationLimit
{
// Token: 0x06002868 RID: 10344 RVA: 0x000593B0 File Offset: 0x000575B0
[Token(Token = "0x6002868")]
[Address(RVA = "0xBE9600", Offset = "0xBE8400", VA = "0x180BE9600")]
[ContextMenu("User Manual")]
private void OpenUserManual()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/page12.html");
}
// Token: 0x06002869 RID: 10345 RVA: 0x000593C8 File Offset: 0x000575C8
[Token(Token = "0x6002869")]
[Address(RVA = "0xBE95C0", Offset = "0xBE83C0", VA = "0x180BE95C0")]
[ContextMenu("Scrpt Reference")]
private void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_rotation_limit_polygonal.html");
}
// Token: 0x0600286A RID: 10346 RVA: 0x000593E0 File Offset: 0x000575E0
[Token(Token = "0x600286A")]
[Address(RVA = "0xBEA890", Offset = "0xBE9690", VA = "0x180BEA890")]
[ContextMenu("Support Group")]
private void SupportGroup()
{
Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
}
// Token: 0x0600286B RID: 10347 RVA: 0x000593F8 File Offset: 0x000575F8
[Token(Token = "0x600286B")]
[Address(RVA = "0xBE89A0", Offset = "0xBE77A0", VA = "0x180BE89A0")]
[ContextMenu("Asset Store Thread")]
private void ASThread()
{
Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
}
// Token: 0x0600286C RID: 10348 RVA: 0x00059410 File Offset: 0x00057610
[Token(Token = "0x600286C")]
[Address(RVA = "0xBE9BF0", Offset = "0xBE89F0", VA = "0x180BE9BF0")]
public void SetLimitPoints(RotationLimitPolygonal.LimitPoint[] points)
{
this.points = points;
this.BuildReachCones();
}
// Token: 0x0600286D RID: 10349 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600286D")]
[Address(RVA = "0xBE9180", Offset = "0xBE7F80", VA = "0x180BE9180", Slot = "4")]
protected override Quaternion LimitRotation(Quaternion rotation)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600286E RID: 10350 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600286E")]
[Address(RVA = "0xBEA4D0", Offset = "0xBE92D0", VA = "0x180BEA4D0")]
private void Start()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600286F RID: 10351 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600286F")]
[Address(RVA = "0xBE9770", Offset = "0xBE8570", VA = "0x180BE9770")]
public void ResetToDefault()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002870 RID: 10352 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002870")]
[Address(RVA = "0xBE89E0", Offset = "0xBE77E0", VA = "0x180BE89E0")]
public void BuildReachCones()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002871 RID: 10353 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002871")]
[Address(RVA = "0xBE9C80", Offset = "0xBE8A80", VA = "0x180BE9C80")]
private Vector3[] SmoothPoints()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002872 RID: 10354 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002872")]
[Address(RVA = "0xBE9130", Offset = "0xBE7F30", VA = "0x180BE9130")]
private float GetScalar(int k)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002873 RID: 10355 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002873")]
[Address(RVA = "0xBE9640", Offset = "0xBE8440", VA = "0x180BE9640")]
private Vector3 PointToTangentPlane(Vector3 p, float r)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002874 RID: 10356 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002874")]
[Address(RVA = "0xBEA8D0", Offset = "0xBE96D0", VA = "0x180BEA8D0")]
private Vector3 TangentPointToSphere(Vector3 q, float r)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002875 RID: 10357 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002875")]
[Address(RVA = "0xBE9280", Offset = "0xBE8080", VA = "0x180BE9280")]
private Quaternion LimitSwing(Quaternion rotation)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002876 RID: 10358 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002876")]
[Address(RVA = "0xBE8F90", Offset = "0xBE7D90", VA = "0x180BE8F90")]
private int GetReachCone(Vector3 L)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002877 RID: 10359 RVA: 0x00059448 File Offset: 0x00057648
[Token(Token = "0x6002877")]
[Address(RVA = "0xBEAA80", Offset = "0xBE9880", VA = "0x180BEAA80")]
public RotationLimitPolygonal()
{
RotationLimitPolygonal.ReachCone[] array = new RotationLimitPolygonal.ReachCone[0];
this.reachCones = array;
float z = Vector3.forward.z;
this.axis.z = z;
base..ctor();
}
// Token: 0x040031B8 RID: 12728
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40031B8")]
[Range(0f, 180f)]
public float twistLimit = 180f;
// Token: 0x040031B9 RID: 12729
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x40031B9")]
[Range(0f, 3f)]
public int smoothIterations;
// Token: 0x040031BA RID: 12730
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40031BA")]
[SerializeField]
[HideInInspector]
public RotationLimitPolygonal.LimitPoint[] points;
// Token: 0x040031BB RID: 12731
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40031BB")]
[SerializeField]
[HideInInspector]
public Vector3[] P;
// Token: 0x040031BC RID: 12732
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40031BC")]
[SerializeField]
[HideInInspector]
public RotationLimitPolygonal.ReachCone[] reachCones;
// Token: 0x02000464 RID: 1124
[Token(Token = "0x2000464")]
[Serializable]
public class ReachCone
{
// Token: 0x1700028B RID: 651
// (get) Token: 0x06002878 RID: 10360 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x1700028B")]
public Vector3 o
{
[Token(Token = "0x6002878")]
[Address(RVA = "0x69FF60", Offset = "0x69ED60", VA = "0x18069FF60")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x1700028C RID: 652
// (get) Token: 0x06002879 RID: 10361 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x1700028C")]
public Vector3 a
{
[Token(Token = "0x6002879")]
[Address(RVA = "0x69FE90", Offset = "0x69EC90", VA = "0x18069FE90")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x1700028D RID: 653
// (get) Token: 0x0600287A RID: 10362 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x1700028D")]
public Vector3 b
{
[Token(Token = "0x600287A")]
[Address(RVA = "0x69FED0", Offset = "0x69ECD0", VA = "0x18069FED0")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x1700028E RID: 654
// (get) Token: 0x0600287B RID: 10363 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x1700028E")]
public Vector3 c
{
[Token(Token = "0x600287B")]
[Address(RVA = "0x69FF10", Offset = "0x69ED10", VA = "0x18069FF10")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x0600287C RID: 10364 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600287C")]
[Address(RVA = "0x69FCE0", Offset = "0x69EAE0", VA = "0x18069FCE0")]
public ReachCone(Vector3 _o, Vector3 _a, Vector3 _b, Vector3 _c)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x1700028F RID: 655
// (get) Token: 0x0600287D RID: 10365 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x1700028F")]
public bool isValid
{
[Token(Token = "0x600287D")]
[Address(RVA = "0x69FF50", Offset = "0x69ED50", VA = "0x18069FF50")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x0600287E RID: 10366 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600287E")]
[Address(RVA = "0x69FA90", Offset = "0x69E890", VA = "0x18069FA90")]
public void Calculate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x040031BD RID: 12733
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40031BD")]
public Vector3[] tetrahedron;
// Token: 0x040031BE RID: 12734
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40031BE")]
public float volume;
// Token: 0x040031BF RID: 12735
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x40031BF")]
public Vector3 S;
// Token: 0x040031C0 RID: 12736
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40031C0")]
public Vector3 B;
}
// Token: 0x02000465 RID: 1125
[Token(Token = "0x2000465")]
[Serializable]
public class LimitPoint
{
// Token: 0x0600287F RID: 10367 RVA: 0x0005948C File Offset: 0x0005768C
[Token(Token = "0x600287F")]
[Address(RVA = "0x69F1D0", Offset = "0x69DFD0", VA = "0x18069F1D0")]
public LimitPoint()
{
float z = Vector3.forward.z;
this.point.z = z;
this.tangentWeight = 1f;
}
// Token: 0x040031C1 RID: 12737
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40031C1")]
public Vector3 point;
// Token: 0x040031C2 RID: 12738
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x40031C2")]
public float tangentWeight;
}
}
}

View File

@@ -0,0 +1,93 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000466 RID: 1126
[Token(Token = "0x2000466")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/Rotation Limits/Rotation Limit Spline")]
[HelpURL("http://www.root-motion.com/finalikdox/html/page12.html")]
public class RotationLimitSpline : RotationLimit
{
// Token: 0x06002880 RID: 10368 RVA: 0x000594C4 File Offset: 0x000576C4
[Token(Token = "0x6002880")]
[Address(RVA = "0x42F330", Offset = "0x42E130", VA = "0x18042F330")]
[ContextMenu("User Manual")]
private void OpenUserManual()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/page12.html");
}
// Token: 0x06002881 RID: 10369 RVA: 0x000594DC File Offset: 0x000576DC
[Token(Token = "0x6002881")]
[Address(RVA = "0x42F2F0", Offset = "0x42E0F0", VA = "0x18042F2F0")]
[ContextMenu("Scrpt Reference")]
private void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_rotation_limit_spline.html");
}
// Token: 0x06002882 RID: 10370 RVA: 0x000594F4 File Offset: 0x000576F4
[Token(Token = "0x6002882")]
[Address(RVA = "0x42F390", Offset = "0x42E190", VA = "0x18042F390")]
[ContextMenu("Support Group")]
private void SupportGroup()
{
Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
}
// Token: 0x06002883 RID: 10371 RVA: 0x0005950C File Offset: 0x0005770C
[Token(Token = "0x6002883")]
[Address(RVA = "0x42EEF0", Offset = "0x42DCF0", VA = "0x18042EEF0")]
[ContextMenu("Asset Store Thread")]
private void ASThread()
{
Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
}
// Token: 0x06002884 RID: 10372 RVA: 0x00059524 File Offset: 0x00057724
[Token(Token = "0x6002884")]
[Address(RVA = "0x42F370", Offset = "0x42E170", VA = "0x18042F370")]
public void SetSpline(Keyframe[] keyframes)
{
this.spline.keys = keyframes;
}
// Token: 0x06002885 RID: 10373 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002885")]
[Address(RVA = "0x42EF30", Offset = "0x42DD30", VA = "0x18042EF30", Slot = "4")]
protected override Quaternion LimitRotation(Quaternion rotation)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002886 RID: 10374 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002886")]
[Address(RVA = "0x42F010", Offset = "0x42DE10", VA = "0x18042F010")]
public Quaternion LimitSwing(Quaternion rotation)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002887 RID: 10375 RVA: 0x00059544 File Offset: 0x00057744
[Token(Token = "0x6002887")]
[Address(RVA = "0x42F3D0", Offset = "0x42E1D0", VA = "0x18042F3D0")]
public RotationLimitSpline()
{
}
// Token: 0x040031C3 RID: 12739
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40031C3")]
[Range(0f, 180f)]
public float twistLimit = 180f;
// Token: 0x040031C4 RID: 12740
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40031C4")]
[HideInInspector]
[SerializeField]
public AnimationCurve spline;
}
}

View File

@@ -0,0 +1,108 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000487 RID: 1159
[Token(Token = "0x2000487")]
public class ShoulderRotator : MonoBehaviour
{
// Token: 0x06002912 RID: 10514 RVA: 0x0005A3BC File Offset: 0x000585BC
[Token(Token = "0x6002912")]
[Address(RVA = "0x11F23B0", Offset = "0x11F11B0", VA = "0x1811F23B0")]
private void Start()
{
FullBodyBipedIK component = base.GetComponent<FullBodyBipedIK>();
this.ik = component;
IKSolverFullBodyBiped solver = this.ik.solver;
IKSolver.UpdateDelegate onPostUpdate = solver.OnPostUpdate;
IKSolver.UpdateDelegate updateDelegate = new IKSolver.UpdateDelegate(this.RotateShoulders);
Delegate @delegate = Delegate.Combine(onPostUpdate, updateDelegate);
int num = 0;
if (@delegate == 0 || @delegate != 0)
{
solver.OnPostUpdate = num;
throw new NullReferenceException();
}
throw new InvalidCastException();
}
// Token: 0x06002913 RID: 10515 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002913")]
[Address(RVA = "0x11F22B0", Offset = "0x11F10B0", VA = "0x1811F22B0")]
private void RotateShoulders()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002914 RID: 10516 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002914")]
[Address(RVA = "0x11F1DB0", Offset = "0x11F0BB0", VA = "0x1811F1DB0")]
private void RotateShoulder(FullBodyBipedChain chain, float weight, float offset)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002915 RID: 10517 RVA: 0x0005A420 File Offset: 0x00058620
[Token(Token = "0x6002915")]
[Address(RVA = "0x11F1C50", Offset = "0x11F0A50", VA = "0x1811F1C50")]
private IKMapping.BoneMap GetParentBoneMap(FullBodyBipedChain chain)
{
IKMappingLimb limbMapping = this.ik.solver.GetLimbMapping(chain);
int num = 0;
return limbMapping.GetBoneMap((IKMappingLimb.BoneMapType)num);
}
// Token: 0x06002916 RID: 10518 RVA: 0x0005A450 File Offset: 0x00058650
[Token(Token = "0x6002916")]
[Address(RVA = "0x11F1C90", Offset = "0x11F0A90", VA = "0x1811F1C90")]
private void OnDestroy()
{
FullBodyBipedIK fullBodyBipedIK = this.ik;
int num = 0;
if (fullBodyBipedIK != num)
{
IKSolverFullBodyBiped solver = this.ik.solver;
IKSolver.UpdateDelegate onPostUpdate = solver.OnPostUpdate;
IKSolver.UpdateDelegate updateDelegate = new IKSolver.UpdateDelegate(this.RotateShoulders);
Delegate @delegate = Delegate.Remove(onPostUpdate, updateDelegate);
int num2 = 0;
if (@delegate != 0 && @delegate == 0)
{
throw new InvalidCastException();
}
solver.OnPostUpdate = num2;
}
}
// Token: 0x06002917 RID: 10519 RVA: 0x0005A4BC File Offset: 0x000586BC
[Token(Token = "0x6002917")]
[Address(RVA = "0x11F24B0", Offset = "0x11F12B0", VA = "0x1811F24B0")]
public ShoulderRotator()
{
}
// Token: 0x04003261 RID: 12897
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4003261")]
[Tooltip("Weight of shoulder rotation")]
public float weight = 1.5f;
// Token: 0x04003262 RID: 12898
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4003262")]
[Tooltip("The greater the offset, the sooner the shoulder will start rotating")]
public float offset = 0.2f;
// Token: 0x04003263 RID: 12899
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4003263")]
private FullBodyBipedIK ik;
// Token: 0x04003264 RID: 12900
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4003264")]
private bool skip;
}
}

View File

@@ -0,0 +1,72 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000410 RID: 1040
[Token(Token = "0x2000410")]
[HelpURL("http://www.root-motion.com/finalikdox/html/page9.html")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/IK/Trigonometric IK")]
public class TrigonometricIK : IK
{
// Token: 0x06002533 RID: 9523 RVA: 0x00054194 File Offset: 0x00052394
[Token(Token = "0x6002533")]
[Address(RVA = "0x75A530", Offset = "0x759330", VA = "0x18075A530", Slot = "8")]
[ContextMenu("User Manual")]
protected override void OpenUserManual()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/page9.html");
}
// Token: 0x06002534 RID: 9524 RVA: 0x000541AC File Offset: 0x000523AC
[Token(Token = "0x6002534")]
[Address(RVA = "0x75A4F0", Offset = "0x7592F0", VA = "0x18075A4F0", Slot = "9")]
[ContextMenu("Scrpt Reference")]
protected override void OpenScriptReference()
{
Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_trigonometric_i_k.html");
}
// Token: 0x06002535 RID: 9525 RVA: 0x000541C4 File Offset: 0x000523C4
[Token(Token = "0x6002535")]
[Address(RVA = "0x75A570", Offset = "0x759370", VA = "0x18075A570")]
[ContextMenu("Support Group")]
private void SupportGroup()
{
Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
}
// Token: 0x06002536 RID: 9526 RVA: 0x000541DC File Offset: 0x000523DC
[Token(Token = "0x6002536")]
[Address(RVA = "0x75A4B0", Offset = "0x7592B0", VA = "0x18075A4B0")]
[ContextMenu("Asset Store Thread")]
private void ASThread()
{
Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
}
// Token: 0x06002537 RID: 9527 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002537")]
[Address(RVA = "0x31E3C0", Offset = "0x31D1C0", VA = "0x18031E3C0", Slot = "7")]
public override IKSolver GetIKSolver()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002538 RID: 9528 RVA: 0x000541F4 File Offset: 0x000523F4
[Token(Token = "0x6002538")]
[Address(RVA = "0x75A5B0", Offset = "0x7593B0", VA = "0x18075A5B0")]
public TrigonometricIK()
{
IKSolverTrigonometric iksolverTrigonometric = new IKSolverTrigonometric();
this.solver = iksolverTrigonometric;
base..ctor();
}
// Token: 0x04002EA5 RID: 11941
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002EA5")]
public IKSolverTrigonometric solver;
}
}

View File

@@ -0,0 +1,91 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000444 RID: 1092
[Token(Token = "0x2000444")]
public class TwistRelaxer : MonoBehaviour
{
// Token: 0x06002772 RID: 10098 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002772")]
[Address(RVA = "0x75A790", Offset = "0x759590", VA = "0x18075A790")]
public void Relax()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002773 RID: 10099 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002773")]
[Address(RVA = "0x75AB10", Offset = "0x759910", VA = "0x18075AB10")]
private void Start()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002774 RID: 10100 RVA: 0x000572D8 File Offset: 0x000554D8
[Token(Token = "0x6002774")]
[Address(RVA = "0x75A780", Offset = "0x759580", VA = "0x18075A780")]
private void LateUpdate()
{
this.Relax();
}
// Token: 0x06002775 RID: 10101 RVA: 0x000572EC File Offset: 0x000554EC
[Token(Token = "0x6002775")]
[Address(RVA = "0x75AE70", Offset = "0x759C70", VA = "0x18075AE70")]
public TwistRelaxer()
{
float z = Vector3.right.z;
this.twistAxis.z = z;
float z2 = Vector3.forward.z;
this.axis.z = z2;
base..ctor();
}
// Token: 0x040030E8 RID: 12520
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40030E8")]
[Range(0f, 1f)]
[Tooltip("The weight of relaxing the twist of this Transform")]
public float weight = 1f;
// Token: 0x040030E9 RID: 12521
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x40030E9")]
[Range(0f, 1f)]
[Tooltip("If 0.5, this Transform will be twisted half way from parent to child. If 1, the twist angle will be locked to the child and will rotate with along with it.")]
public float parentChildCrossfade = 0.5f;
// Token: 0x040030EA RID: 12522
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40030EA")]
private Vector3 twistAxis;
// Token: 0x040030EB RID: 12523
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40030EB")]
private Vector3 axis;
// Token: 0x040030EC RID: 12524
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40030EC")]
private Vector3 axisRelativeToParentDefault;
// Token: 0x040030ED RID: 12525
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x40030ED")]
private Vector3 axisRelativeToChildDefault;
// Token: 0x040030EE RID: 12526
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40030EE")]
private Transform parent;
// Token: 0x040030EF RID: 12527
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x40030EF")]
private Transform child;
}
}

View File

@@ -0,0 +1,383 @@
using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x02000411 RID: 1041
[Token(Token = "0x2000411")]
[AddComponentMenu("Scripts/RootMotion.FinalIK/IK/VR IK")]
public class VRIK : IK
{
// Token: 0x06002539 RID: 9529 RVA: 0x00054214 File Offset: 0x00052414
[Token(Token = "0x6002539")]
[Address(RVA = "0x8C5890", Offset = "0x8C4690", VA = "0x1808C5890", Slot = "8")]
[ContextMenu("User Manual")]
protected override void OpenUserManual()
{
Debug.Log("Sorry, VRIK User Manual is not finished yet.");
}
// Token: 0x0600253A RID: 9530 RVA: 0x0005422C File Offset: 0x0005242C
[Token(Token = "0x600253A")]
[Address(RVA = "0x8C57F0", Offset = "0x8C45F0", VA = "0x1808C57F0", Slot = "9")]
[ContextMenu("Scrpt Reference")]
protected override void OpenScriptReference()
{
Debug.Log("Sorry, VRIK Script reference is not finished yet.");
}
// Token: 0x0600253B RID: 9531 RVA: 0x00054244 File Offset: 0x00052444
[Token(Token = "0x600253B")]
[Address(RVA = "0x8C5850", Offset = "0x8C4650", VA = "0x1808C5850")]
[ContextMenu("TUTORIAL VIDEO (STEAMVR SETUP)")]
private void OpenSetupTutorial()
{
Application.OpenURL("https://www.youtube.com/watch?v=6Pfx7lYQiIA&feature=youtu.be");
}
// Token: 0x0600253C RID: 9532 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600253C")]
[Address(RVA = "0x8C5710", Offset = "0x8C4510", VA = "0x1808C5710")]
[ContextMenu("Auto-detect References")]
public void AutoDetectReferences()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600253D RID: 9533 RVA: 0x0005425C File Offset: 0x0005245C
[Token(Token = "0x600253D")]
[Address(RVA = "0x8C5740", Offset = "0x8C4540", VA = "0x1808C5740")]
[ContextMenu("Guess Hand Orientations")]
public void GuessHandOrientations()
{
IKSolverVR iksolverVR = this.solver;
VRIK.References references = this.references;
int num = 0;
iksolverVR.GuessHandOrientations(references, num != 0);
}
// Token: 0x0600253E RID: 9534 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600253E")]
[Address(RVA = "0x31E390", Offset = "0x31D190", VA = "0x18031E390", Slot = "7")]
public override IKSolver GetIKSolver()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600253F RID: 9535 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600253F")]
[Address(RVA = "0x8C5770", Offset = "0x8C4570", VA = "0x1808C5770", Slot = "4")]
protected override void InitiateSolver()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002540 RID: 9536 RVA: 0x00054288 File Offset: 0x00052488
[Token(Token = "0x6002540")]
[Address(RVA = "0x8C58F0", Offset = "0x8C46F0", VA = "0x1808C58F0")]
public VRIK()
{
VRIK.References references = new VRIK.References();
this.references = references;
IKSolverVR iksolverVR = new IKSolverVR();
this.solver = iksolverVR;
base..ctor();
}
// Token: 0x04002EA6 RID: 11942
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002EA6")]
[ContextMenuItem("Auto-detect References", "AutoDetectReferences")]
[Tooltip("Bone mapping. Right-click on the component header and select 'Auto-detect References' of fill in manually if not a Humanoid character.")]
public VRIK.References references;
// Token: 0x04002EA7 RID: 11943
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4002EA7")]
[Tooltip("The VRIK solver.")]
public IKSolverVR solver;
// Token: 0x02000412 RID: 1042
[Token(Token = "0x2000412")]
[Serializable]
public class References
{
// Token: 0x06002541 RID: 9537 RVA: 0x000542B8 File Offset: 0x000524B8
[Token(Token = "0x6002541")]
[Address(RVA = "0x132D8F0", Offset = "0x132C6F0", VA = "0x18132D8F0")]
public Transform[] GetTransforms()
{
Transform[] array;
Transform transform22;
for (;;)
{
array = new Transform[22];
Transform transform = this.root;
if (transform == 0 || array != 0)
{
array[0] = transform;
Transform transform2 = this.pelvis;
if (transform2 == 0 || array != 0)
{
array[1] = transform2;
Transform transform3 = this.spine;
if (transform3 == 0 || array != 0)
{
array[2] = transform3;
Transform transform4 = this.chest;
if (transform4 == 0 || array != 0)
{
array[3] = transform4;
Transform transform5 = this.neck;
if (transform5 == 0 || array != 0)
{
array[4] = transform5;
Transform transform6 = this.head;
if (transform6 == 0 || array != 0)
{
array[5] = transform6;
Transform transform7 = this.leftShoulder;
if (transform7 == 0 || array != 0)
{
array[6] = transform7;
Transform transform8 = this.leftUpperArm;
if (transform8 == 0 || array != 0)
{
array[7] = transform8;
Transform transform9 = this.leftForearm;
if (transform9 == 0 || array != 0)
{
array[8] = transform9;
Transform transform10 = this.leftHand;
if (transform10 == 0 || array != 0)
{
array[9] = transform10;
Transform transform11 = this.rightShoulder;
if (transform11 == 0 || array != 0)
{
array[10] = transform11;
Transform transform12 = this.rightUpperArm;
if (transform12 == 0 || array != 0)
{
array[11] = transform12;
Transform transform13 = this.rightForearm;
if (transform13 == 0 || array != 0)
{
array[12] = transform13;
Transform transform14 = this.rightHand;
if (transform14 == 0 || array != 0)
{
array[13] = transform14;
Transform transform15 = this.leftThigh;
if (transform15 == 0 || array != 0)
{
array[14] = transform15;
Transform transform16 = this.leftCalf;
if (transform16 == 0 || array != 0)
{
array[15] = transform16;
Transform transform17 = this.leftFoot;
if (transform17 == 0 || array != 0)
{
array[16] = transform17;
Transform transform18 = this.leftToes;
if (transform18 == 0 || array != 0)
{
array[17] = transform18;
Transform transform19 = this.rightThigh;
if (transform19 == 0 || array != 0)
{
array[18] = transform19;
Transform transform20 = this.rightCalf;
if (transform20 == 0 || array != 0)
{
array[19] = transform20;
Transform transform21 = this.rightFoot;
if (transform21 == 0 || array != 0)
{
array[20] = transform21;
transform22 = this.rightToes;
if (transform22 == 0 || array != 0)
{
break;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
array[21] = transform22;
return array;
}
// Token: 0x17000228 RID: 552
// (get) Token: 0x06002542 RID: 9538 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000228")]
public bool isFilled
{
[Token(Token = "0x6002542")]
[Address(RVA = "0x132E660", Offset = "0x132D460", VA = "0x18132E660")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x17000229 RID: 553
// (get) Token: 0x06002543 RID: 9539 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x17000229")]
public bool isEmpty
{
[Token(Token = "0x6002543")]
[Address(RVA = "0x132E150", Offset = "0x132CF50", VA = "0x18132E150")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x06002544 RID: 9540 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002544")]
[Address(RVA = "0x132D400", Offset = "0x132C200", VA = "0x18132D400")]
public static bool AutoDetectReferences(Transform root, out VRIK.References references)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002545 RID: 9541 RVA: 0x00054548 File Offset: 0x00052748
[Token(Token = "0x6002545")]
[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
public References()
{
}
// Token: 0x04002EA8 RID: 11944
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002EA8")]
public Transform root;
// Token: 0x04002EA9 RID: 11945
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002EA9")]
public Transform pelvis;
// Token: 0x04002EAA RID: 11946
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002EAA")]
public Transform spine;
// Token: 0x04002EAB RID: 11947
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4002EAB")]
public Transform chest;
// Token: 0x04002EAC RID: 11948
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4002EAC")]
public Transform neck;
// Token: 0x04002EAD RID: 11949
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002EAD")]
public Transform head;
// Token: 0x04002EAE RID: 11950
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4002EAE")]
public Transform leftShoulder;
// Token: 0x04002EAF RID: 11951
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4002EAF")]
public Transform leftUpperArm;
// Token: 0x04002EB0 RID: 11952
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4002EB0")]
public Transform leftForearm;
// Token: 0x04002EB1 RID: 11953
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4002EB1")]
public Transform leftHand;
// Token: 0x04002EB2 RID: 11954
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002EB2")]
public Transform rightShoulder;
// Token: 0x04002EB3 RID: 11955
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4002EB3")]
public Transform rightUpperArm;
// Token: 0x04002EB4 RID: 11956
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4002EB4")]
public Transform rightForearm;
// Token: 0x04002EB5 RID: 11957
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4002EB5")]
public Transform rightHand;
// Token: 0x04002EB6 RID: 11958
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x4002EB6")]
public Transform leftThigh;
// Token: 0x04002EB7 RID: 11959
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x4002EB7")]
public Transform leftCalf;
// Token: 0x04002EB8 RID: 11960
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x4002EB8")]
public Transform leftFoot;
// Token: 0x04002EB9 RID: 11961
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x4002EB9")]
public Transform leftToes;
// Token: 0x04002EBA RID: 11962
[FieldOffset(Offset = "0xA0")]
[Token(Token = "0x4002EBA")]
public Transform rightThigh;
// Token: 0x04002EBB RID: 11963
[FieldOffset(Offset = "0xA8")]
[Token(Token = "0x4002EBB")]
public Transform rightCalf;
// Token: 0x04002EBC RID: 11964
[FieldOffset(Offset = "0xB0")]
[Token(Token = "0x4002EBC")]
public Transform rightFoot;
// Token: 0x04002EBD RID: 11965
[FieldOffset(Offset = "0xB8")]
[Token(Token = "0x4002EBD")]
public Transform rightToes;
}
}
}