summaryrefslogtreecommitdiff
path: root/ActiveRagdoll/Assets/TABG/Scripts/Data
diff options
context:
space:
mode:
Diffstat (limited to 'ActiveRagdoll/Assets/TABG/Scripts/Data')
-rw-r--r--ActiveRagdoll/Assets/TABG/Scripts/Data/AnimationHandler.cs26
-rw-r--r--ActiveRagdoll/Assets/TABG/Scripts/Data/SetAnimationByInput.cs29
-rw-r--r--ActiveRagdoll/Assets/TABG/Scripts/Data/SetAnimationByInput.cs.meta11
-rw-r--r--ActiveRagdoll/Assets/TABG/Scripts/Data/Step.cs18
-rw-r--r--ActiveRagdoll/Assets/TABG/Scripts/Data/Step.cs.meta11
-rw-r--r--ActiveRagdoll/Assets/TABG/Scripts/Data/StepHandler.cs56
6 files changed, 139 insertions, 12 deletions
diff --git a/ActiveRagdoll/Assets/TABG/Scripts/Data/AnimationHandler.cs b/ActiveRagdoll/Assets/TABG/Scripts/Data/AnimationHandler.cs
index 2d051bf..6591e45 100644
--- a/ActiveRagdoll/Assets/TABG/Scripts/Data/AnimationHandler.cs
+++ b/ActiveRagdoll/Assets/TABG/Scripts/Data/AnimationHandler.cs
@@ -5,17 +5,33 @@ using UnityEngine;
namespace Rigging.Data
{
- public class AnimationHandler : RiggingDataBase
+ using System;
+
+ [Serializable]
+ public class IntString
{
+ public int theInt;
- protected override void OnStart()
- {
- base.OnStart();
+ public string theString;
+ }
+ public class AnimationHandler : RiggingDataBase
+ {
+ /*
+ 0 Stand
+ 1 Sprint
+ 2 Run
+ 3 Jump
+ */
+ public IntString[] animationStates;
- }
+ public int animationState; // 当前角色的动作
+ public void ChangeAnimationState(byte newState)
+ {
+ animationState = newState;
+ }
}
diff --git a/ActiveRagdoll/Assets/TABG/Scripts/Data/SetAnimationByInput.cs b/ActiveRagdoll/Assets/TABG/Scripts/Data/SetAnimationByInput.cs
new file mode 100644
index 0000000..2afef1d
--- /dev/null
+++ b/ActiveRagdoll/Assets/TABG/Scripts/Data/SetAnimationByInput.cs
@@ -0,0 +1,29 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Rigging.Data
+{
+
+ public class SetAnimationByInput : RiggingDataBase
+ {
+ private InputHandler input;
+
+ private AnimationHandler anim;
+
+ private StandingDataHandler standingData;
+
+ protected override void OnStart()
+ {
+ input = player.status.input;
+ anim = player.status.animation;
+ standingData = player.status.standingData;
+ }
+
+ private void Update()
+ {
+
+ }
+ }
+
+}
diff --git a/ActiveRagdoll/Assets/TABG/Scripts/Data/SetAnimationByInput.cs.meta b/ActiveRagdoll/Assets/TABG/Scripts/Data/SetAnimationByInput.cs.meta
new file mode 100644
index 0000000..7675145
--- /dev/null
+++ b/ActiveRagdoll/Assets/TABG/Scripts/Data/SetAnimationByInput.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a7459e71d3133e747833a399f4895b51
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/ActiveRagdoll/Assets/TABG/Scripts/Data/Step.cs b/ActiveRagdoll/Assets/TABG/Scripts/Data/Step.cs
new file mode 100644
index 0000000..b341195
--- /dev/null
+++ b/ActiveRagdoll/Assets/TABG/Scripts/Data/Step.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Rigging.Data
+{
+
+ [Serializable]
+ public class Step
+ {
+ public float minTime;
+
+ public float maxTime;
+
+ public float minAngle;
+ }
+}
diff --git a/ActiveRagdoll/Assets/TABG/Scripts/Data/Step.cs.meta b/ActiveRagdoll/Assets/TABG/Scripts/Data/Step.cs.meta
new file mode 100644
index 0000000..8088546
--- /dev/null
+++ b/ActiveRagdoll/Assets/TABG/Scripts/Data/Step.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 572dda52a89b315499a144876fc87259
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/ActiveRagdoll/Assets/TABG/Scripts/Data/StepHandler.cs b/ActiveRagdoll/Assets/TABG/Scripts/Data/StepHandler.cs
index 032cf3f..7e673b1 100644
--- a/ActiveRagdoll/Assets/TABG/Scripts/Data/StepHandler.cs
+++ b/ActiveRagdoll/Assets/TABG/Scripts/Data/StepHandler.cs
@@ -1,23 +1,65 @@
+using Rigging.BodyPart;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Rigging.Data
{
-
+ //Player <StepHandler> 更新脚步切换状态,返回哪个脚在前,哪个在后,配合AnimationObject使用
public class StepHandler : RiggingDataBase
{
- // Start is called before the first frame update
- void Start()
+
+ public float staticCounter;
+
+ public Step steps;
+
+ public bool isLeft;//左脚还是右脚在前面
+
+ private float counter;
+
+ private Transform leftLeg;
+
+ private Transform rightLeg;
+
+ private AnimationHandler animationHandler;
+
+ private Transform hip;
+
+ protected override void OnStart()
{
-
+ if (staticCounter == 0f)
+ {
+ leftLeg = player.body.legLeft.transform;
+ rightLeg = player.body.legRight.transform;
+// animationHandler = GetComponent<AnimationHandler>();
+ hip = player.body.hip.transform;
+ }
}
- // Update is called once per frame
- void Update()
+ protected override void OnUpdate()
{
-
+ counter += Time.deltaTime;
+ if (staticCounter != 0f)
+ {
+ if (counter > staticCounter)
+ {
+ Switch();
+ }
+ }
+ else if (counter > steps.minTime
+ && (steps.minAngle == 0f || steps.minAngle < Vector3.Angle(leftLeg.forward, rightLeg.forward))
+ && isLeft == hip.InverseTransformPoint(leftLeg.position + leftLeg.forward).z > hip.InverseTransformPoint(rightLeg.position + rightLeg.forward).z)
+ {
+ Switch();
+ }
}
+
+ private void Switch()
+ {
+ isLeft = !isLeft;
+ counter = 0f;
+ }
+
}
} \ No newline at end of file