769 lines
32 KiB
C#
769 lines
32 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|