Created
September 30, 2021 09:27
-
-
Save GeorgiyRyaposov/d3af6f64c07e842077a1e789002a5152 to your computer and use it in GitHub Desktop.
Debug capsule or sphere even from not monobehaviours
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private List<GameObject> _debug = new List<GameObject>(); | |
private void ClearDebug() | |
{ | |
for (int i = _debug.Count - 1; i >= 0; i--) | |
{ | |
GameObject.Destroy(_debug[i]); | |
} | |
_debug.Clear(); | |
} | |
private void Debug(Vector3 pos, Color color) | |
{ | |
Debug(pos, Vector3.one, color); | |
} | |
private void Debug(Vector3 pos, Vector3 scale, Color color) | |
{ | |
var sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere); | |
sphere.transform.position = pos; | |
sphere.transform.localScale = scale; | |
sphere.GetComponent<MeshRenderer>().material.SetColor("_Color", color); | |
var Collider = sphere.GetComponent<Collider>(); | |
GameObject.Destroy(Collider); | |
_debug.Add(sphere); | |
} | |
void DebugCapsule(Vector3 p1, Vector3 p2, float radius, Vector3 dir, float distance, Color color) | |
{ | |
var shape = GameObject.CreatePrimitive(PrimitiveType.Cube).transform; | |
GameObject.Destroy(shape.GetComponent<Collider>()); | |
Vector3 scale; // calculate desired scale | |
var diam = 2f * radius; // calculate capsule diameter | |
scale.x = diam; // width = capsule diameter | |
scale.y = Vector3.Distance(p2, p1) + diam; // capsule height | |
scale.z = distance + diam; // volume length | |
shape.localScale = scale; // set the rectangular volume size | |
// set volume position and rotation | |
shape.position = (p1 + p2 + dir.normalized * distance) / 2; | |
shape.rotation = Quaternion.LookRotation(dir, p2 - p1); | |
shape.GetComponent<MeshRenderer>().material.SetColor("_Color", color); | |
_debug.Add(shape.gameObject); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment