summaryrefslogtreecommitdiff
path: root/ActiveRagdoll/Assets/TABG/Scripts/RotateByMouseInput.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2024-04-16 17:44:27 +0800
committerchai <215380520@qq.com>2024-04-16 17:44:27 +0800
commit42906830d441ffcca24fba35264644005048e2ca (patch)
tree3fd0f147791533567da022f5f98a5bdb9df5e6c4 /ActiveRagdoll/Assets/TABG/Scripts/RotateByMouseInput.cs
parent8862ba2376b05cbcc698f23253c987f88f1d4356 (diff)
*misc
Diffstat (limited to 'ActiveRagdoll/Assets/TABG/Scripts/RotateByMouseInput.cs')
-rw-r--r--ActiveRagdoll/Assets/TABG/Scripts/RotateByMouseInput.cs126
1 files changed, 126 insertions, 0 deletions
diff --git a/ActiveRagdoll/Assets/TABG/Scripts/RotateByMouseInput.cs b/ActiveRagdoll/Assets/TABG/Scripts/RotateByMouseInput.cs
new file mode 100644
index 0000000..3e1ee14
--- /dev/null
+++ b/ActiveRagdoll/Assets/TABG/Scripts/RotateByMouseInput.cs
@@ -0,0 +1,126 @@
+using UnityEngine;
+
+namespace Rigging
+{
+
+ public class RotateByMouseInput : MonoBehaviour
+ {
+ public enum XSpace
+ {
+ self,
+ world
+ }
+
+ public enum YSpace
+ {
+ self,
+ world
+ }
+
+ public bool useX;
+
+ public XSpace xSpace;
+
+ public Vector3 xVector;
+
+ public bool useY;
+
+ public YSpace ySpace;
+
+ public Vector3 yVector;
+
+ [Header("Control")]
+ public bool needControl;
+
+ public bool needAlive;
+
+ public bool freezeUnusedAngles;
+
+ //private HasControl hasControl;
+
+ //private PlayerDeath death;
+
+ private float m = 1f;
+
+ private void Start()
+ {
+ //if (needControl)
+ //{
+ // hasControl = base.transform.root.GetComponent<HasControl>();
+ //}
+ //if (needAlive)
+ //{
+ // death = base.transform.root.GetComponent<PlayerDeath>();
+ //}
+ }
+
+ private void LateUpdate()
+ {
+ //if (needControl && !hasControl.hasControl)
+ //{
+ // return;
+ //}
+ //if (needAlive)
+ //{
+ // m = Mathf.Clamp(death.muscleFunction * 2f, 0f, 1f);
+ // if (death.dead)
+ // {
+ // return;
+ // }
+ //}
+ if (useX)
+ {
+ Vector3 vector = xVector;
+ if (xSpace == XSpace.self)
+ {
+ vector = base.transform.TransformDirection(vector);
+ }
+ base.transform.Rotate(vector * Input.GetAxis("Mouse X") * m * 0.8f, Space.World);
+ }
+ if (useY)
+ {
+ Vector3 vector2 = yVector;
+ if (ySpace == YSpace.self)
+ {
+ vector2 = base.transform.TransformDirection(vector2);
+ }
+ base.transform.Rotate(vector2 * Input.GetAxis("Mouse Y") * m * 0.8f, Space.World);
+ }
+ if (!freezeUnusedAngles)
+ {
+ return;
+ }
+ if (useY)
+ {
+ if (yVector.x == 0f)
+ {
+ base.transform.localRotation = Quaternion.Euler(0f, base.transform.localEulerAngles.y, base.transform.localEulerAngles.z);
+ }
+ if (yVector.y == 0f)
+ {
+ base.transform.localRotation = Quaternion.Euler(base.transform.localEulerAngles.x, 0f, base.transform.localEulerAngles.z);
+ }
+ if (yVector.z == 0f)
+ {
+ base.transform.localRotation = Quaternion.Euler(base.transform.localEulerAngles.x, base.transform.localEulerAngles.y, 0f);
+ }
+ }
+ if (useX)
+ {
+ if (xVector.x == 0f)
+ {
+ base.transform.localRotation = Quaternion.Euler(0f, base.transform.localEulerAngles.y, base.transform.localEulerAngles.z);
+ }
+ if (xVector.y == 0f)
+ {
+ base.transform.localRotation = Quaternion.Euler(base.transform.localEulerAngles.x, 0f, base.transform.localEulerAngles.z);
+ }
+ if (xVector.z == 0f)
+ {
+ base.transform.localRotation = Quaternion.Euler(base.transform.localEulerAngles.x, base.transform.localEulerAngles.y, 0f);
+ }
+ }
+ }
+ }
+
+}