Tanoda
TransformNormalizer.cs
Go to the documentation of this file.
1using System.Collections;
2using System.Collections.Generic;
3using NaughtyAttributes;
4using UnityEngine;
5
6public class TransformNormalizer : MonoBehaviour
7{
8 public Vector3 normalEulerAngles => Macro.ClampAngle(transform.eulerAngles);
9 public Vector3 normalLocalEulerAngles => Macro.ClampAngle(transform.localEulerAngles);
10
11 public Vector3 localEulerAngles
12 {
14 set => transform.localEulerAngles = value;
15 }
16
17 public float gizmoSize = 0.1f;
18 [MinMaxSlider(-20, 20)]
19 public Vector2 limitX;
20 [MinMaxSlider(-20, 20)]
21 public Vector2 limitY;
22 [MinMaxSlider(-20, 20)]
23 public Vector2 limitZ;
24
25 private void OnDrawGizmos()
26 {
27 var backup = transform.rotation;
28 Gizmos.color = Color.green;
29 transform.Rotate(transform.up, limitX.x);
30 Gizmos.DrawLine(transform.position, transform.position + transform.forward*gizmoSize);
31 transform.Rotate(transform.up, -limitX.x);
32 transform.Rotate(transform.up, limitX.y);
33 Gizmos.DrawLine(transform.position, transform.position + transform.forward*gizmoSize);
34 transform.Rotate(transform.up, -limitX.y);
35 Gizmos.color = Color.blue;
36 transform.Rotate(transform.forward, limitY.x);
37 Gizmos.DrawLine(transform.position, transform.position + transform.right*gizmoSize);
38 transform.Rotate(transform.forward, -limitY.x);
39 transform.Rotate(transform.forward, limitY.y);
40 Gizmos.DrawLine(transform.position, transform.position + transform.right*gizmoSize);
41 transform.Rotate(transform.forward, -limitY.y);
42 Gizmos.color = Color.red;
43 transform.Rotate(transform.right, limitZ.x);
44 Gizmos.DrawLine(transform.position, transform.position + transform.up*gizmoSize);
45 transform.Rotate(transform.right, -limitZ.x);
46 transform.Rotate(transform.right, limitZ.y);
47 Gizmos.DrawLine(transform.position, transform.position + transform.up*gizmoSize);
48 transform.Rotate(transform.right, -limitZ.y);
49 transform.rotation = backup;
50 }
51}
UnityEngine.Color Color
Definition: TestScript.cs:32
Definition: Macro.cs:12
static Vector3 ClampAngle(Vector3 value)
Definition: Macro.cs:303