DrawArrow

From Unify Community Wiki
(Difference between revisions)
Jump to: navigation, search
(New page: Image:HeadRotation.png Image:SpawnPoints.png ==DrawArrow.cs== <csharp> using UnityEngine; using System.Collections; public static class DrawArrow { public static void ForGizmo(V...)
 
Line 1: Line 1:
 
[[Image:HeadRotation.png]]
 
[[Image:HeadRotation.png]]
[[Image:SpawnPoints.png]]
+
[[Image:SpawnPoints.jpg]]
  
 
==DrawArrow.cs==
 
==DrawArrow.cs==

Revision as of 09:58, 16 April 2011

HeadRotation.png SpawnPoints.jpg

DrawArrow.cs

<csharp> using UnityEngine; using System.Collections;

public static class DrawArrow { public static void ForGizmo(Vector3 pos, Vector3 direction, float arrowHeadLength = 0.25f, float arrowHeadAngle = 20.0f) { Gizmos.DrawRay(pos, direction);

Vector3 right = Quaternion.LookRotation(direction) * Quaternion.Euler(0,180+arrowHeadAngle,0) * new Vector3(0,0,1); Vector3 left = Quaternion.LookRotation(direction) * Quaternion.Euler(0,180-arrowHeadAngle,0) * new Vector3(0,0,1); Gizmos.DrawRay(pos + direction, right * arrowHeadLength); Gizmos.DrawRay(pos + direction, left * arrowHeadLength); }

public static void ForGizmo(Vector3 pos, Vector3 direction, Color color, float arrowHeadLength = 0.25f, float arrowHeadAngle = 20.0f) { Gizmos.color = color; Gizmos.DrawRay(pos, direction);

Vector3 right = Quaternion.LookRotation(direction) * Quaternion.Euler(0,180+arrowHeadAngle,0) * new Vector3(0,0,1); Vector3 left = Quaternion.LookRotation(direction) * Quaternion.Euler(0,180-arrowHeadAngle,0) * new Vector3(0,0,1); Gizmos.DrawRay(pos + direction, right * arrowHeadLength); Gizmos.DrawRay(pos + direction, left * arrowHeadLength); }

public static void ForDebug(Vector3 pos, Vector3 direction, float arrowHeadLength = 0.25f, float arrowHeadAngle = 20.0f) { Debug.DrawRay(pos, direction);

Vector3 right = Quaternion.LookRotation(direction) * Quaternion.Euler(0,180+arrowHeadAngle,0) * new Vector3(0,0,1); Vector3 left = Quaternion.LookRotation(direction) * Quaternion.Euler(0,180-arrowHeadAngle,0) * new Vector3(0,0,1); Debug.DrawRay(pos + direction, right * arrowHeadLength); Debug.DrawRay(pos + direction, left * arrowHeadLength); } public static void ForDebug(Vector3 pos, Vector3 direction, Color color, float arrowHeadLength = 0.25f, float arrowHeadAngle = 20.0f) { Debug.DrawRay(pos, direction, color);

Vector3 right = Quaternion.LookRotation(direction) * Quaternion.Euler(0,180+arrowHeadAngle,0) * new Vector3(0,0,1); Vector3 left = Quaternion.LookRotation(direction) * Quaternion.Euler(0,180-arrowHeadAngle,0) * new Vector3(0,0,1); Debug.DrawRay(pos + direction, right * arrowHeadLength, color); Debug.DrawRay(pos + direction, left * arrowHeadLength, color); } } </csharp>

This works very similar to Debug.DrawRay(). For example: <csharp> using UnityEngine; using System.Collections;

public class DebugForward : MonoBehaviour { void Update() { DrawArrow.ForDebug(transform.position, transform.forward, Color.green); } } </csharp>

Personal tools
Namespaces

Variants
Actions
Navigation
Extras
Toolbox