Extensions pour les vecteurs Le sujet est résolu

Cette section est destinée aux scripts partagés par la communauté. Chaque post est destiné à un script. Suivez bien les recommandations.
Avatar de l’utilisateur
Deceleris
Messages : 57
Inscription : 25 Juil 2018 22:06
Contact :

Extensions pour les vecteurs

Message par Deceleris » 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 :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
}
Travail actuellement sur : https://deceleris.itch.io/shadows

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: Extensions pour les vecteurs

Message par Alesk » 26 Juil 2018 15:26

Merci ! ;)

Avatar de l’utilisateur
Sebela
Messages : 141
Inscription : 25 Juin 2014 21:39

Re: Extensions pour les vecteurs

Message par Sebela » 04 Oct 2018 16:36

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 ;)

Répondre

Revenir vers « Scripts »