Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 99 additions & 0 deletions Runtime/Extensions/TransformExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,104 @@ public static void DestroyChildren(this Transform transform)
Object.Destroy(child.gameObject);
}
}

/// <summary>
/// Return a Vector3, the direction from source to destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static Vector3 DirectionTo(this Transform source, Vector3 destination)
{
return source.position.DirectionTo(destination);
}

/// <summary>
/// Return a normalized Vector3, the direction from source to destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static Vector3 NormalDirectionTo(this Transform source, Vector3 destination)
{
return source.position.NormalDirectionTo(destination);
}

/// <summary>
/// Return a Vector3, the direction from source to destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static Vector3 DirectionTo(this Transform source, Transform destination)
{
return source.DirectionTo(destination.position);
}

/// <summary>
/// Return a normalized Vector3, the direction from source to destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static Vector3 NormalDirectionTo(this Transform source, Transform destination)
{
return source.NormalDirectionTo(destination.position);
}

/// <summary>
/// Return a Vector3, the direction from source to destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static Vector3 DirectionTo(this Transform source, GameObject destination)
{
return source.DirectionTo(destination.transform.position);
}

/// <summary>
/// Return a normalized Vector3, the direction from source to destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static Vector3 NormalDirectionTo(this Transform source, GameObject destination)
{
return source.NormalDirectionTo(destination.transform.position);
}

/// <summary>
/// Return a float. the distance between to points
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static float DistanceTo(this Transform source, Vector3 destination)
{
return source.position.DistanceTo(destination);
}

/// <summary>
/// Return a float. the distance between to points
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static float DistanceTo(this Transform source, Transform destination)
{
return source.position.DistanceTo(destination.position);
}

/// <summary>
/// Return a float. the distance between to points
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static float DistanceTo(this Transform source, GameObject destination)
{
return source.DistanceTo(destination.transform);
}
}
}
120 changes: 120 additions & 0 deletions Runtime/Extensions/Vector2Extensions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
using UnityEngine;

namespace DapperDino.DapperTools.Extensions
{
public static class Vector2Extensions
{
/// <summary>
/// Return a copy of this vector with an altered x and/or y component
/// </summary>
/// <param name="v"></param>
/// <param name="x"></param>
/// <param name="y"></param>
/// <returns></returns>
public static Vector2 With(this Vector2 original, float? x = null, float? y = null)
{
return new Vector2(x ?? original.x, y ?? original.y);
}

/// <summary>
/// Return a Vector2, the direction from source to destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static Vector2 DirectionTo(this Vector2 source, Vector2 destination)
{
Debug.LogWarning("Change function call DirectionTo");
return destination - source;
}

/// <summary>
/// Return a normalized Vector2, the direction from source to destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static Vector2 NormalDirectionTo(this Vector2 source, Vector2 destination)
{
Vector2 dir = destination - source;
return dir.normalized;
}

/// <summary>
/// Return a Vector2, the direction from source to destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static Vector2 DirectionTo(this Vector2 source, Transform destination)
{
return source.DirectionTo(destination.position);
}

/// <summary>
/// Return a normalized Vector2, the direction from source to destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static Vector2 NormalDirectionTo(this Vector2 source, Transform destination)
{
return source.NormalDirectionTo(destination.position);
}

/// <summary>
/// Return a Vector2, the direction from source to destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static Vector2 DirectionTo(this Vector2 source, GameObject destination)
{
return source.DirectionTo(destination.transform);
}

/// <summary>
/// Return a normalized Vector2, the direction from source to destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static Vector2 NormalDirectionTo(this Vector2 source, GameObject destination)
{
return source.NormalDirectionTo(destination.transform);
}

/// <summary>
/// Return a float. the distance between to points
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static float DistanceTo(this Vector2 source, Vector2 destination)
{
return Vector2.Distance(destination, source);
}

/// <summary>
/// Return a float. the distance between to points
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static float DistanceTo(this Vector2 source, Transform destination)
{
return Vector2.Distance(destination.position, source);
}

/// <summary>
/// Return a float. the distance between to points
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static float DistanceTo(this Vector2 source, GameObject destination)
{
return Vector2.Distance(destination.transform.position, source);
}
}
}
11 changes: 11 additions & 0 deletions Runtime/Extensions/Vector2Extensions.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

121 changes: 121 additions & 0 deletions Runtime/Extensions/Vector3Extensions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
using UnityEngine;

namespace DapperDino.DapperTools.Extensions
{
public static class Vector3Extensions
{
/// <summary>
/// Return a copy of this vector with an altered x and/or y and/or z component
/// </summary>
/// <param name="v"></param>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="z"></param>
/// <returns></returns>
public static Vector3 With(this Vector3 original, float? x = null, float? y = null, float? z = null)
{
return new Vector3(x ?? original.x, y ?? original.y, z ?? original.z);
}

/// <summary>
/// Return a Vector3, the direction from source to destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static Vector3 DirectionTo(this Vector3 source, Vector3 destination)
{
Debug.LogWarning("Change function call DirectionTo");
return (destination - source);
}

/// <summary>
/// Return a normalized Vector3, the direction from source to destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static Vector3 NormalDirectionTo(this Vector3 source, Vector3 destination)
{
return Vector3.Normalize(destination - source);
}

/// <summary>
/// Return a Vector3, the direction from source to destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static Vector3 DirectionTo(this Vector3 source, Transform destination)
{
return source.DirectionTo(destination.position);
}


/// <summary>
/// Return a normalized Vector3, the direction from source to destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static Vector3 NormalDirectionTo(this Vector3 source, Transform destination)
{
return source.NormalDirectionTo(destination.position);
}

/// <summary>
/// Return a Vector3, the direction from source to destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static Vector3 DirectionTo(this Vector3 source, GameObject destination)
{
return source.DirectionTo(destination.transform.position);
}

/// <summary>
/// Return a normalized Vector3, the direction from source to destination
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static Vector3 NormalDirectionTo(this Vector3 source, GameObject destination)
{
return source.NormalDirectionTo(destination.transform.position);
}

/// <summary>
/// Return a float. the distance between to points
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static float DistanceTo(this Vector3 source, Vector3 destination)
{
return Vector3.Magnitude(destination - source);
}

/// <summary>
/// Return a float. the distance between to points
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static float DistanceTo(this Vector3 source, Transform destination)
{
return Vector3.Magnitude(destination.position - source);
}

/// <summary>
/// Return a float. the distance between to points
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
/// <returns></returns>
public static float DistanceTo(this Vector3 source, GameObject destination)
{
return Vector3.Magnitude(destination.transform.position - source);
}
}
}
11 changes: 11 additions & 0 deletions Runtime/Extensions/Vector3Extensions.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading