Page 1 sur 1

Extensions pour les vecteurs

Publié : 26 Juil 2018 12:47
par Deceleris
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 :mrgreen:

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 ();
Voilà le code :

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
}

Re: Extensions pour les vecteurs

Publié : 26 Juil 2018 15:26
par Alesk
Merci ! ;)

Re: Extensions pour les vecteurs

Publié : 04 Oct 2018 16:36
par Sebela
Salut !

Merci pour cette astuce super pratique !
C'est quelques caractères en moins mais je trouve que ça fait plus lisible et on s'en sert tellement souvent :]
Je récupère ;)