Extensions pour les vecteurs
Publié : 26 Juil 2018 12:47
Alors salut salut, on utilise beaucoup les vecteurs forcément dans unity, donc j'me suis créer des extensions vraiment très utiles, je vous les colle ici pour que vous puissiez aussi en bénéficier
Quelques exemples d'utilisations :
Voilà le code :
Quelques exemples d'utilisations :
Code : Tout sélectionner
transform.position = new Vector3 (transform.position.x, 5, transform.position.z);
// Devient
transform.position = transform.position.WithY (5);
Vector2 to2D = new Vector2 (transform.position.x, transform.position.z);
// Devient
Vector2 to2D = transform.position.ToXZ ();
Code : Tout sélectionner
using UnityEngine;
public static class VectorExtensions {
#region Vector3
// Replace
public static Vector3 WithX(this Vector3 from, float x) {
return new Vector3(x, from.y, from.z);
}
public static Vector3 WithY(this Vector3 from, float y) {
return new Vector3(from.x, y, from.z);
}
public static Vector3 WithZ(this Vector3 from, float z) {
return new Vector3(from.x, from.y, z);
}
public static Vector2 ToXY(this Vector3 from) {
return new Vector2(from.x, from.y);
}
public static Vector2 ToXZ (this Vector3 from) {
return new Vector2(from.x, from.z);
}
#endregion
#region Vector2
// Replace
public static Vector2 WithX(this Vector2 from, float x) {
return new Vector2(x, from.y);
}
public static Vector2 WithY(this Vector2 from, float y) {
return new Vector2(from.x, y);
}
public static Vector3 ToXZ(this Vector2 from, float y = 0) {
return new Vector3(from.x, y, from.y);
}
public static float LerpXY(this Vector2 from, float time) {
return Mathf.Lerp(from.x, from.y, time);
}
#endregion
}