private void OnDrawGizmos() { if (!showGizmos) { return; } Gizmos.color = gizmosColor; DrawEvents(eventEnter, onTriggerEnter); DrawEvents(eventExit, onTriggerExit); DrawEvents(eventStay, onTriggerStay); void DrawEvents(UnityEvent ev, bool active) { for (int i = 0; i < ev.GetPersistentEventCount(); i++) { var component = ev.GetPersistentTarget(i) as Component; if (component != null) { Transform t = component.transform; if (t.GetComponent <MeshRenderer>()) { var mr = t.GetComponent <MeshRenderer>(); Color orgCol = Gizmos.color; if (!active) { Gizmos.color = Gizmos.color * .5f; } Gizmos.DrawWireCube(mr.bounds.center, mr.bounds.size + Vector3.one * .1f); AdditionalGizmos.DrawArc(transform.position, mr.bounds.center, options.connectorGravity.y); Gizmos.color = orgCol; } else { Color orgCol = Gizmos.color; if (!active) { Gizmos.color = Gizmos.color * .5f; } Gizmos.DrawWireCube(t.position, Vector3.one); //Gizmos.DrawLine(transform.position, t.position); AdditionalGizmos.DrawArc(transform.position, t.position); Gizmos.color = orgCol; } } } } var orgMatrix = Gizmos.matrix; Gizmos.matrix = transform.localToWorldMatrix; foreach (var col in GetComponents <Collider2D>()) { if (!col.isTrigger || !col.enabled) { continue; } if (col.GetType() == typeof(BoxCollider2D)) { BoxCollider2D bc = col as BoxCollider2D; Gizmos.DrawCube((Vector3)bc.offset, Vector3.Scale(Vector3.one, bc.size)); } else if (col.GetType() == typeof(CircleCollider2D)) { CircleCollider2D sc = col as CircleCollider2D; Vector3 s = transform.localScale; float maxScale = Mathf.Max(s.x, s.y, s.z); Gizmos.DrawSphere((Vector3)sc.offset, sc.radius * maxScale); } } Gizmos.matrix = orgMatrix; }
private void OnDrawGizmos() { if (!showGizmos) { return; } Gizmos.color = gizmosColor; DrawEvents(eventEnter, onTriggerEnter); DrawEvents(eventExit, onTriggerExit); DrawEvents(eventStay, onTriggerStay); void DrawEvents(UnityEvent ev, bool active) { for (int i = 0; i < ev.GetPersistentEventCount(); i++) { var component = ev.GetPersistentTarget(i) as Component; if (component != null) { Transform t = component.transform; if (t.GetComponent <MeshRenderer>()) { var mr = t.GetComponent <MeshRenderer>(); Color orgCol = Gizmos.color; /*if (!active) * Gizmos.color = Gizmos.color * .5f;*/ Gizmos.DrawWireCube(mr.bounds.center, mr.bounds.size + Vector3.one * .1f); AdditionalGizmos.DrawArc(transform.position, mr.bounds.center); Gizmos.color = orgCol; } else { Color orgCol = Gizmos.color; /*if (!active) * Gizmos.color = Gizmos.color * .5f;*/ Gizmos.DrawWireCube(t.position, Vector3.one); //Gizmos.DrawLine(transform.position, t.position); AdditionalGizmos.DrawArc(transform.position, t.position); Gizmos.color = orgCol; } } } } foreach (var col in GetComponents <Collider>()) { if (!col.isTrigger || !col.enabled) { continue; } if (col.GetType() == typeof(BoxCollider)) { var m = Gizmos.matrix; Gizmos.matrix = transform.localToWorldMatrix; BoxCollider bc = col as BoxCollider; Gizmos.DrawCube(bc.center, bc.size); Gizmos.matrix = m; } else if (col.GetType() == typeof(SphereCollider)) { SphereCollider sc = col as SphereCollider; Vector3 s = transform.localScale; float maxScale = Mathf.Max(s.x, s.y, s.z); Gizmos.DrawSphere(transform.TransformPoint(sc.center), sc.radius * maxScale); } else if (col.GetType() == typeof(MeshCollider)) { var m = Gizmos.matrix; Gizmos.matrix = transform.localToWorldMatrix; MeshCollider mc = col as MeshCollider; Gizmos.DrawMesh(mc.sharedMesh); Gizmos.matrix = m; } } }
private void OnDrawGizmos() { AdditionalGizmos.DrawArrow(transform.position, transform.forward); }