769 lines
31 KiB
C#
769 lines
31 KiB
C#
using System;
|
|
using System.Runtime.CompilerServices;
|
|
using Cpp2IlInjected;
|
|
using UnityEngine;
|
|
|
|
namespace RootMotion.FinalIK
|
|
{
|
|
// Token: 0x0200049F RID: 1183
|
|
[Token(Token = "0x200049F")]
|
|
[AddComponentMenu("Scripts/RootMotion.FinalIK/Interaction System/Interaction Object")]
|
|
[HelpURL("https://www.youtube.com/watch?v=r5jiZnsDH3M")]
|
|
public class InteractionObject : MonoBehaviour
|
|
{
|
|
// Token: 0x06002A58 RID: 10840 RVA: 0x0005EC3C File Offset: 0x0005CE3C
|
|
[Token(Token = "0x6002A58")]
|
|
[Address(RVA = "0x1046D60", Offset = "0x1045D60", VA = "0x181046D60")]
|
|
[ContextMenu("TUTORIAL VIDEO (PART 1: BASICS)")]
|
|
private void OpenTutorial1()
|
|
{
|
|
Application.OpenURL("https://www.youtube.com/watch?v=r5jiZnsDH3M");
|
|
}
|
|
|
|
// Token: 0x06002A59 RID: 10841 RVA: 0x0005EC54 File Offset: 0x0005CE54
|
|
[Token(Token = "0x6002A59")]
|
|
[Address(RVA = "0x1046DA0", Offset = "0x1045DA0", VA = "0x181046DA0")]
|
|
[ContextMenu("TUTORIAL VIDEO (PART 2: PICKING UP...)")]
|
|
private void OpenTutorial2()
|
|
{
|
|
Application.OpenURL("https://www.youtube.com/watch?v=eP9-zycoHLk");
|
|
}
|
|
|
|
// Token: 0x06002A5A RID: 10842 RVA: 0x0005EC6C File Offset: 0x0005CE6C
|
|
[Token(Token = "0x6002A5A")]
|
|
[Address(RVA = "0x1046DE0", Offset = "0x1045DE0", VA = "0x181046DE0")]
|
|
[ContextMenu("TUTORIAL VIDEO (PART 3: ANIMATION)")]
|
|
private void OpenTutorial3()
|
|
{
|
|
Application.OpenURL("https://www.youtube.com/watch?v=sQfB2RcT1T4&index=14&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6");
|
|
}
|
|
|
|
// Token: 0x06002A5B RID: 10843 RVA: 0x0005EC84 File Offset: 0x0005CE84
|
|
[Token(Token = "0x6002A5B")]
|
|
[Address(RVA = "0x1046E20", Offset = "0x1045E20", VA = "0x181046E20")]
|
|
[ContextMenu("TUTORIAL VIDEO (PART 4: TRIGGERS)")]
|
|
private void OpenTutorial4()
|
|
{
|
|
Application.OpenURL("https://www.youtube.com/watch?v=-TDZpNjt2mk&index=15&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6");
|
|
}
|
|
|
|
// Token: 0x06002A5C RID: 10844 RVA: 0x0005EC9C File Offset: 0x0005CE9C
|
|
[Token(Token = "0x6002A5C")]
|
|
[Address(RVA = "0x1046EA0", Offset = "0x1045EA0", VA = "0x181046EA0")]
|
|
[ContextMenu("Support Group")]
|
|
private void SupportGroup()
|
|
{
|
|
Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
|
|
}
|
|
|
|
// Token: 0x06002A5D RID: 10845 RVA: 0x000020D3 File Offset: 0x000002D3
|
|
[Token(Token = "0x6002A5D")]
|
|
[Address(RVA = "0x1045670", Offset = "0x1044670", VA = "0x181045670")]
|
|
[ContextMenu("Asset Store Thread")]
|
|
private void ASThread()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x170002A1 RID: 673
|
|
// (get) Token: 0x06002A5E RID: 10846 RVA: 0x0005ECB4 File Offset: 0x0005CEB4
|
|
// (set) Token: 0x06002A5F RID: 10847 RVA: 0x0005ECC8 File Offset: 0x0005CEC8
|
|
[Token(Token = "0x170002A1")]
|
|
public float length
|
|
{
|
|
[Token(Token = "0x6002A5E")]
|
|
[Address(RVA = "0x3F6700", Offset = "0x3F5700", VA = "0x1803F6700")]
|
|
get;
|
|
[Token(Token = "0x6002A5F")]
|
|
[Address(RVA = "0x3F6770", Offset = "0x3F5770", VA = "0x1803F6770")]
|
|
private set;
|
|
}
|
|
|
|
// Token: 0x170002A2 RID: 674
|
|
// (get) Token: 0x06002A60 RID: 10848 RVA: 0x0005ECDC File Offset: 0x0005CEDC
|
|
// (set) Token: 0x06002A61 RID: 10849 RVA: 0x0005ECF0 File Offset: 0x0005CEF0
|
|
[Token(Token = "0x170002A2")]
|
|
public InteractionSystem lastUsedInteractionSystem
|
|
{
|
|
[Token(Token = "0x6002A60")]
|
|
[Address(RVA = "0x3701D0", Offset = "0x36F1D0", VA = "0x1803701D0")]
|
|
[CompilerGenerated]
|
|
get
|
|
{
|
|
return this.<lastUsedInteractionSystem>k__BackingField;
|
|
}
|
|
[Token(Token = "0x6002A61")]
|
|
[Address(RVA = "0x3662A0", Offset = "0x3652A0", VA = "0x1803662A0")]
|
|
[CompilerGenerated]
|
|
private set
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06002A61)
|
|
|
|
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: 0x06002A62 RID: 10850 RVA: 0x000020D3 File Offset: 0x000002D3
|
|
[Token(Token = "0x6002A62")]
|
|
[Address(RVA = "0x1046A60", Offset = "0x1045A60", VA = "0x181046A60")]
|
|
public void Initiate()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x170002A3 RID: 675
|
|
// (get) Token: 0x06002A63 RID: 10851 RVA: 0x0005ED04 File Offset: 0x0005CF04
|
|
[Token(Token = "0x170002A3")]
|
|
public Transform lookAtTarget
|
|
{
|
|
[Token(Token = "0x6002A63")]
|
|
[Address(RVA = "0x1046F40", Offset = "0x1045F40", VA = "0x181046F40")]
|
|
get
|
|
{
|
|
Transform transform = this.otherLookAtTarget;
|
|
int num = 0;
|
|
if (!(transform != num))
|
|
{
|
|
return base.transform;
|
|
}
|
|
return this.otherLookAtTarget;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06002A64 RID: 10852 RVA: 0x000020D3 File Offset: 0x000002D3
|
|
[Token(Token = "0x6002A64")]
|
|
[Address(RVA = "0x10463E0", Offset = "0x10453E0", VA = "0x1810463E0")]
|
|
public InteractionTarget GetTarget(FullBodyBipedEffector effectorType, InteractionSystem interactionSystem)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06002A65 RID: 10853 RVA: 0x000020D3 File Offset: 0x000002D3
|
|
[Token(Token = "0x6002A65")]
|
|
[Address(RVA = "0x1046230", Offset = "0x1045230", VA = "0x181046230")]
|
|
public bool CurveUsed(InteractionObject.WeightCurve.Type type)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06002A66 RID: 10854 RVA: 0x0005ED34 File Offset: 0x0005CF34
|
|
[Token(Token = "0x6002A66")]
|
|
[Address(RVA = "0x33F1C0", Offset = "0x33E1C0", VA = "0x18033F1C0")]
|
|
public InteractionTarget[] GetTargets()
|
|
{
|
|
return this.targets;
|
|
}
|
|
|
|
// Token: 0x06002A67 RID: 10855 RVA: 0x000020D3 File Offset: 0x000002D3
|
|
[Token(Token = "0x6002A67")]
|
|
[Address(RVA = "0x1046570", Offset = "0x1045570", VA = "0x181046570")]
|
|
public Transform GetTarget(FullBodyBipedEffector effectorType, string tag)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06002A68 RID: 10856 RVA: 0x0005ED48 File Offset: 0x0005CF48
|
|
[Token(Token = "0x6002A68")]
|
|
[Address(RVA = "0x3662A0", Offset = "0x3652A0", VA = "0x1803662A0")]
|
|
public void OnStartInteraction(InteractionSystem interactionSystem)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06002A68)
|
|
|
|
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: 0x06002A69 RID: 10857 RVA: 0x000020D3 File Offset: 0x000002D3
|
|
[Token(Token = "0x6002A69")]
|
|
[Address(RVA = "0x1045C90", Offset = "0x1044C90", VA = "0x181045C90")]
|
|
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: 0x06002A6A RID: 10858 RVA: 0x000020D3 File Offset: 0x000002D3
|
|
[Token(Token = "0x6002A6A")]
|
|
[Address(RVA = "0x1046720", Offset = "0x1045720", VA = "0x181046720")]
|
|
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: 0x170002A4 RID: 676
|
|
// (get) Token: 0x06002A6B RID: 10859 RVA: 0x0005ED5C File Offset: 0x0005CF5C
|
|
[Token(Token = "0x170002A4")]
|
|
public Transform targetsRoot
|
|
{
|
|
[Token(Token = "0x6002A6B")]
|
|
[Address(RVA = "0x1046FC0", Offset = "0x1045FC0", VA = "0x181046FC0")]
|
|
get
|
|
{
|
|
Transform transform = this.otherTargetsRoot;
|
|
int num = 0;
|
|
if (!(transform != num))
|
|
{
|
|
return base.transform;
|
|
}
|
|
return this.otherTargetsRoot;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06002A6C RID: 10860 RVA: 0x0005ED8C File Offset: 0x0005CF8C
|
|
[Token(Token = "0x6002A6C")]
|
|
[Address(RVA = "0x1046220", Offset = "0x1045220", VA = "0x181046220")]
|
|
private void Awake()
|
|
{
|
|
this.Initiate();
|
|
}
|
|
|
|
// Token: 0x06002A6D RID: 10861 RVA: 0x000020D3 File Offset: 0x000002D3
|
|
[Token(Token = "0x6002A6D")]
|
|
[Address(RVA = "0x10456B0", Offset = "0x10446B0", VA = "0x1810456B0")]
|
|
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: 0x06002A6E RID: 10862 RVA: 0x0005EDA0 File Offset: 0x0005CFA0
|
|
[Token(Token = "0x6002A6E")]
|
|
[Address(RVA = "0x1046360", Offset = "0x1045360", VA = "0x181046360")]
|
|
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: 0x06002A6F RID: 10863 RVA: 0x0005EDEC File Offset: 0x0005CFEC
|
|
[Token(Token = "0x6002A6F")]
|
|
[Address(RVA = "0x10469F0", Offset = "0x10459F0", VA = "0x1810469F0")]
|
|
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: 0x06002A70 RID: 10864 RVA: 0x0005EE2C File Offset: 0x0005D02C
|
|
[Token(Token = "0x6002A70")]
|
|
[Address(RVA = "0x10462F0", Offset = "0x10452F0", VA = "0x1810462F0")]
|
|
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: 0x06002A71 RID: 10865 RVA: 0x0005EE6C File Offset: 0x0005D06C
|
|
[Token(Token = "0x6002A71")]
|
|
[Address(RVA = "0x1046E60", Offset = "0x1045E60", VA = "0x181046E60")]
|
|
[ContextMenu("User Manual")]
|
|
private void OpenUserManual()
|
|
{
|
|
Application.OpenURL("http://www.root-motion.com/finalikdox/html/page10.html");
|
|
}
|
|
|
|
// Token: 0x06002A72 RID: 10866 RVA: 0x0005EE84 File Offset: 0x0005D084
|
|
[Token(Token = "0x6002A72")]
|
|
[Address(RVA = "0x1046D20", Offset = "0x1045D20", VA = "0x181046D20")]
|
|
[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: 0x06002A73 RID: 10867 RVA: 0x0005EE9C File Offset: 0x0005D09C
|
|
[Token(Token = "0x6002A73")]
|
|
[Address(RVA = "0x1046EE0", Offset = "0x1045EE0", VA = "0x181046EE0")]
|
|
public InteractionObject()
|
|
{
|
|
InteractionTarget[] array = new InteractionTarget[0];
|
|
this.targets = array;
|
|
base..ctor();
|
|
}
|
|
|
|
// Token: 0x04003404 RID: 13316
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4003404")]
|
|
[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: 0x04003405 RID: 13317
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4003405")]
|
|
[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: 0x04003406 RID: 13318
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4003406")]
|
|
[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: 0x04003407 RID: 13319
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x4003407")]
|
|
public InteractionObject.WeightCurve[] weightCurves;
|
|
|
|
// Token: 0x04003408 RID: 13320
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x4003408")]
|
|
public InteractionObject.Multiplier[] multipliers;
|
|
|
|
// Token: 0x04003409 RID: 13321
|
|
[FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x4003409")]
|
|
public InteractionObject.InteractionEvent[] events;
|
|
|
|
// Token: 0x0400340C RID: 13324
|
|
[FieldOffset(Offset = "0x58")]
|
|
[Token(Token = "0x400340C")]
|
|
private InteractionTarget[] targets;
|
|
|
|
// Token: 0x020004A0 RID: 1184
|
|
[Token(Token = "0x20004A0")]
|
|
[Serializable]
|
|
public class InteractionEvent
|
|
{
|
|
// Token: 0x06002A74 RID: 10868 RVA: 0x0005EEC0 File Offset: 0x0005D0C0
|
|
[Token(Token = "0x6002A74")]
|
|
[Address(RVA = "0x16A4140", Offset = "0x16A3140", VA = "0x1816A4140")]
|
|
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: 0x06002A75 RID: 10869 RVA: 0x0005EF94 File Offset: 0x0005D194
|
|
[Token(Token = "0x6002A75")]
|
|
[Address(RVA = "0x36ABD0", Offset = "0x369BD0", VA = "0x18036ABD0")]
|
|
public InteractionEvent()
|
|
{
|
|
}
|
|
|
|
// Token: 0x0400340D RID: 13325
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x400340D")]
|
|
[Tooltip("The time of the event since interaction start.")]
|
|
public float time;
|
|
|
|
// Token: 0x0400340E RID: 13326
|
|
[FieldOffset(Offset = "0x14")]
|
|
[Token(Token = "0x400340E")]
|
|
[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: 0x0400340F RID: 13327
|
|
[FieldOffset(Offset = "0x15")]
|
|
[Token(Token = "0x400340F")]
|
|
[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: 0x04003410 RID: 13328
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4003410")]
|
|
[Tooltip("The animations called on this event.")]
|
|
public InteractionObject.AnimatorEvent[] animations;
|
|
|
|
// Token: 0x04003411 RID: 13329
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4003411")]
|
|
[Tooltip("The messages sent on this event using GameObject.SendMessage().")]
|
|
public InteractionObject.Message[] messages;
|
|
}
|
|
|
|
// Token: 0x020004A1 RID: 1185
|
|
[Token(Token = "0x20004A1")]
|
|
[Serializable]
|
|
public class Message
|
|
{
|
|
// Token: 0x06002A76 RID: 10870 RVA: 0x0005EFA8 File Offset: 0x0005D1A8
|
|
[Token(Token = "0x6002A76")]
|
|
[Address(RVA = "0x16AC750", Offset = "0x16AB750", VA = "0x1816AC750")]
|
|
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: 0x06002A77 RID: 10871 RVA: 0x0005F018 File Offset: 0x0005D218
|
|
[Token(Token = "0x6002A77")]
|
|
[Address(RVA = "0x36ABD0", Offset = "0x369BD0", VA = "0x18036ABD0")]
|
|
public Message()
|
|
{
|
|
}
|
|
|
|
// Token: 0x04003412 RID: 13330
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4003412")]
|
|
[Tooltip("The name of the function called.")]
|
|
public string function;
|
|
|
|
// Token: 0x04003413 RID: 13331
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4003413")]
|
|
[Tooltip("The recipient game object.")]
|
|
public GameObject recipient;
|
|
|
|
// Token: 0x04003414 RID: 13332
|
|
[Token(Token = "0x4003414")]
|
|
private const string empty = "";
|
|
}
|
|
|
|
// Token: 0x020004A2 RID: 1186
|
|
[Token(Token = "0x20004A2")]
|
|
[Serializable]
|
|
public class AnimatorEvent
|
|
{
|
|
// Token: 0x06002A78 RID: 10872 RVA: 0x0005F02C File Offset: 0x0005D22C
|
|
[Token(Token = "0x6002A78")]
|
|
[Address(RVA = "0x169B600", Offset = "0x169A600", VA = "0x18169B600")]
|
|
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: 0x06002A79 RID: 10873 RVA: 0x000020D3 File Offset: 0x000002D3
|
|
[Token(Token = "0x6002A79")]
|
|
[Address(RVA = "0x169B7F0", Offset = "0x169A7F0", VA = "0x18169B7F0")]
|
|
private void Activate(Animator animator)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06002A7A RID: 10874 RVA: 0x0005F16C File Offset: 0x0005D36C
|
|
[Token(Token = "0x6002A7A")]
|
|
[Address(RVA = "0x169B540", Offset = "0x169A540", VA = "0x18169B540")]
|
|
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: 0x06002A7B RID: 10875 RVA: 0x0005F1F4 File Offset: 0x0005D3F4
|
|
[Token(Token = "0x6002A7B")]
|
|
[Address(RVA = "0x169B890", Offset = "0x169A890", VA = "0x18169B890")]
|
|
public AnimatorEvent()
|
|
{
|
|
}
|
|
|
|
// Token: 0x04003415 RID: 13333
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4003415")]
|
|
[Tooltip("The Animator component that will receive the AnimatorEvents.")]
|
|
public Animator animator;
|
|
|
|
// Token: 0x04003416 RID: 13334
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4003416")]
|
|
[Tooltip("The Animation component that will receive the AnimatorEvents (Legacy).")]
|
|
public Animation animation;
|
|
|
|
// Token: 0x04003417 RID: 13335
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4003417")]
|
|
[Tooltip("The name of the animation state.")]
|
|
public string animationState;
|
|
|
|
// Token: 0x04003418 RID: 13336
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4003418")]
|
|
[Tooltip("The crossfading time.")]
|
|
public float crossfadeTime = 0.3f;
|
|
|
|
// Token: 0x04003419 RID: 13337
|
|
[FieldOffset(Offset = "0x2C")]
|
|
[Token(Token = "0x4003419")]
|
|
[Tooltip("The layer of the animation state (if using Legacy, the animation state will be forced to this layer).")]
|
|
public int layer;
|
|
|
|
// Token: 0x0400341A RID: 13338
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x400341A")]
|
|
[Tooltip("Should the animation always start from 0 normalized time?")]
|
|
public bool resetNormalizedTime;
|
|
|
|
// Token: 0x0400341B RID: 13339
|
|
[Token(Token = "0x400341B")]
|
|
private const string empty = "";
|
|
}
|
|
|
|
// Token: 0x020004A3 RID: 1187
|
|
[Token(Token = "0x20004A3")]
|
|
[Serializable]
|
|
public class WeightCurve
|
|
{
|
|
// Token: 0x06002A7C RID: 10876 RVA: 0x0005F214 File Offset: 0x0005D414
|
|
[Token(Token = "0x6002A7C")]
|
|
[Address(RVA = "0x16B52B0", Offset = "0x16B42B0", VA = "0x1816B52B0")]
|
|
public float GetValue(float timer)
|
|
{
|
|
return this.curve.Evaluate(timer);
|
|
}
|
|
|
|
// Token: 0x06002A7D RID: 10877 RVA: 0x0005F234 File Offset: 0x0005D434
|
|
[Token(Token = "0x6002A7D")]
|
|
[Address(RVA = "0x36ABD0", Offset = "0x369BD0", VA = "0x18036ABD0")]
|
|
public WeightCurve()
|
|
{
|
|
}
|
|
|
|
// Token: 0x0400341C RID: 13340
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x400341C")]
|
|
[Tooltip("The type of the curve (InteractionObject.WeightCurve.Type).")]
|
|
public InteractionObject.WeightCurve.Type type;
|
|
|
|
// Token: 0x0400341D RID: 13341
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x400341D")]
|
|
[Tooltip("The weight curve.")]
|
|
public AnimationCurve curve;
|
|
|
|
// Token: 0x020004A4 RID: 1188
|
|
[Token(Token = "0x20004A4")]
|
|
[Serializable]
|
|
public enum Type
|
|
{
|
|
// Token: 0x0400341F RID: 13343
|
|
[Token(Token = "0x400341F")]
|
|
PositionWeight,
|
|
// Token: 0x04003420 RID: 13344
|
|
[Token(Token = "0x4003420")]
|
|
RotationWeight,
|
|
// Token: 0x04003421 RID: 13345
|
|
[Token(Token = "0x4003421")]
|
|
PositionOffsetX,
|
|
// Token: 0x04003422 RID: 13346
|
|
[Token(Token = "0x4003422")]
|
|
PositionOffsetY,
|
|
// Token: 0x04003423 RID: 13347
|
|
[Token(Token = "0x4003423")]
|
|
PositionOffsetZ,
|
|
// Token: 0x04003424 RID: 13348
|
|
[Token(Token = "0x4003424")]
|
|
Pull,
|
|
// Token: 0x04003425 RID: 13349
|
|
[Token(Token = "0x4003425")]
|
|
Reach,
|
|
// Token: 0x04003426 RID: 13350
|
|
[Token(Token = "0x4003426")]
|
|
RotateBoneWeight,
|
|
// Token: 0x04003427 RID: 13351
|
|
[Token(Token = "0x4003427")]
|
|
Push,
|
|
// Token: 0x04003428 RID: 13352
|
|
[Token(Token = "0x4003428")]
|
|
PushParent,
|
|
// Token: 0x04003429 RID: 13353
|
|
[Token(Token = "0x4003429")]
|
|
PoserWeight
|
|
}
|
|
}
|
|
|
|
// Token: 0x020004A5 RID: 1189
|
|
[Token(Token = "0x20004A5")]
|
|
[Serializable]
|
|
public class Multiplier
|
|
{
|
|
// Token: 0x06002A7E RID: 10878 RVA: 0x0005F248 File Offset: 0x0005D448
|
|
[Token(Token = "0x6002A7E")]
|
|
[Address(RVA = "0x16AC840", Offset = "0x16AB840", VA = "0x1816AC840")]
|
|
public float GetValue(InteractionObject.WeightCurve weightCurve, float timer)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06002A7E)
|
|
|
|
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: 0x06002A7F RID: 10879 RVA: 0x0005F270 File Offset: 0x0005D470
|
|
[Token(Token = "0x6002A7F")]
|
|
[Address(RVA = "0x696BE0", Offset = "0x695BE0", VA = "0x180696BE0")]
|
|
public Multiplier()
|
|
{
|
|
}
|
|
|
|
// Token: 0x0400342A RID: 13354
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x400342A")]
|
|
[Tooltip("The curve type to multiply.")]
|
|
public InteractionObject.WeightCurve.Type curve;
|
|
|
|
// Token: 0x0400342B RID: 13355
|
|
[FieldOffset(Offset = "0x14")]
|
|
[Token(Token = "0x400342B")]
|
|
[Tooltip("The multiplier of the curve's value.")]
|
|
public float multiplier = 1f;
|
|
|
|
// Token: 0x0400342C RID: 13356
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x400342C")]
|
|
[Tooltip("The resulting value will be applied to this channel.")]
|
|
public InteractionObject.WeightCurve.Type result;
|
|
}
|
|
}
|
|
}
|