You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			85 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C#
		
	
		
		
			
		
	
	
			85 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C#
		
	
| 
											2 years ago
										 | using System.Collections; | ||
|  | using UnityEngine; | ||
|  | 
 | ||
|  | namespace Game | ||
|  | { | ||
|  |     public abstract partial class Util | ||
|  |     { | ||
|  |         public static void Draw(Vector3 start, Vector3 end, Color color, float duration = 0) | ||
|  |         { | ||
|  |             if (!GameSetting.IsDebugDraw) | ||
|  |             { | ||
|  |                 return; | ||
|  |             } | ||
|  |             Debug.DrawLine(start, end, color, duration); | ||
|  |         } | ||
|  |         public static void DrawBox(Vector3 center, Vector3 halfExtents, Vector3 castDir, Color color, float duration = 0) | ||
|  |         { | ||
|  |             if (!GameSetting.IsDebugDraw) | ||
|  |             { | ||
|  |                 return; | ||
|  |             } | ||
|  | 
 | ||
|  |             var rot = Quaternion.FromToRotation(Vector3.right, castDir); | ||
|  | 
 | ||
|  |             var boxPoints = new Vector3[8]; | ||
|  |             boxPoints[0] = center + rot * new Vector3(halfExtents.x, halfExtents.y, halfExtents.z); | ||
|  |             boxPoints[1] = center + rot * new Vector3(halfExtents.x, halfExtents.y, -halfExtents.z); | ||
|  |             boxPoints[2] = center + rot * new Vector3(halfExtents.x, -halfExtents.y, halfExtents.z); | ||
|  |             boxPoints[3] = center + rot * new Vector3(halfExtents.x, -halfExtents.y, -halfExtents.z); | ||
|  |             boxPoints[4] = center + rot * new Vector3(-halfExtents.x, halfExtents.y, halfExtents.z); | ||
|  |             boxPoints[5] = center + rot * new Vector3(-halfExtents.x, halfExtents.y, -halfExtents.z); | ||
|  |             boxPoints[6] = center + rot * new Vector3(-halfExtents.x, -halfExtents.y, halfExtents.z); | ||
|  |             boxPoints[7] = center + rot * new Vector3(-halfExtents.x, -halfExtents.y, -halfExtents.z); | ||
|  | 
 | ||
|  |             for (int i = 0; i < 8; i++) | ||
|  |             { | ||
|  |                 for (int j = i; j < 8; j++) | ||
|  |                 { | ||
|  |                     var p1 = boxPoints[i]; | ||
|  |                     var p2 = boxPoints[j]; | ||
|  |                     int defCount = 0; | ||
|  |                     defCount += (p1.x == p2.x ? 1 : 0); | ||
|  |                     defCount += (p1.y == p2.y ? 1 : 0); | ||
|  |                     defCount += (p1.z == p2.z ? 1 : 0); | ||
|  |                     Debug.DrawLine(boxPoints[i], boxPoints[j], color, duration); | ||
|  |                 } | ||
|  |             } | ||
|  |         } | ||
|  |         public static void Print(params object[] values) | ||
|  |         { | ||
|  |             string text = ""; | ||
|  |             foreach (object obj in values) | ||
|  |             { | ||
|  |                 text += Str(obj) + " "; | ||
|  |             } | ||
|  |             Debug.Log(text); | ||
|  |         } | ||
|  |         private static string Str(object obj) | ||
|  |         { | ||
|  |             string ret = ""; | ||
|  |             if (obj is null) | ||
|  |             { | ||
|  |                 ret = $"null"; | ||
|  |             } | ||
|  |             else if (obj is string) | ||
|  |             { | ||
|  |                 ret = $"\"{obj}\""; | ||
|  |             } | ||
|  |             else if (obj is IEnumerable) | ||
|  |             { | ||
|  |                 ret += "List["; | ||
|  |                 foreach (object subobj in (IEnumerable)obj) | ||
|  |                 { | ||
|  |                     ret += Str(subobj) + " "; | ||
|  |                 } | ||
|  |                 ret += "]"; | ||
|  |             } | ||
|  |             else | ||
|  |             { | ||
|  |                 ret = obj.ToString(); | ||
|  |             } | ||
|  |             return ret; | ||
|  |         } | ||
|  |     } | ||
|  | } |