| 123456789101112131415161718192021222324 |
- using o0.Geometry2D.Float;
- using System;
- using UnityEngine;
- namespace ZIM.Unity
- {
- public static partial class ZIMMath
- {
- // Projects a vector onto another vector.
- public static Vector2 Project(this Vector2 vector, Vector2 onNormal)
- {
- float dotProduct = Vector2.Dot(vector, onNormal);
- float magnitudeSquared = onNormal.sqrMagnitude;
- if (magnitudeSquared < Mathf.Epsilon)
- return Vector2.zero;
- return (dotProduct / magnitudeSquared) * onNormal;
- }
- public static float LengthManhattan(this Vector2 v) => Math.Abs(v.x) + Math.Abs(v.y);
- public static double LengthManhattan(Vector2 v1, Vector2 v2) => (v1 - v2).LengthManhattan();
- }
- }
|