Introduction de la pince

Introduction de la pince

Dans Unity, le clamp est une fonction utilisée pour limiter la plage de valeurs. Cela peut aider les développeurs à limiter la valeur dans la plage spécifiée pour éviter un dépassement de valeur ou une erreur. Unity fournit une variété de fonctions de serrage, y compris clamp01, clamp, clampMagnitude, clampMin, clampMax et clampValue.

Méthode et exemples de Clamp01

méthode

La fonction clamp01 bloque une valeur dans la plage de 0 à 1. Renvoie 0 si la valeur est inférieure à 0, 1 si la valeur est supérieure à 1 ou la valeur d'origine dans le cas contraire.

float value = 1.2f;
float clampedValue = Mathf.Clamp01(value);
Debug.Log(clampedValue); // 输出1.0

Par exemple

Limiter la vitesse de déplacement du joueur

Dans le jeu, la vitesse de déplacement du joueur peut être affectée par divers facteurs, tels que le statut du personnage, l'équipement, etc. Pour éviter que le joueur se déplace trop vite ou trop lentement, la fonction clamp01 peut être utilisée pour serrer la vitesse entre 0 et 1.

float speed = GetPlayerSpeed();
float clampedSpeed = Mathf.Clamp01(speed / MAX_PLAYER_SPEED);
MovePlayer(clampedSpeed);

Méthode de Clamp et exemples

méthode

La fonction de blocage peut bloquer une valeur entre une valeur minimale et une valeur maximale spécifiées. Renvoie la valeur minimale si la valeur est inférieure à la valeur minimale, la valeur maximale si la valeur est supérieure à la valeur maximale ou la valeur d'origine dans le cas contraire.

float value = 5.0f;
float min = 0.0f;
float max = 10.0f;
float clampedValue = Mathf.Clamp(value, min, max);
Debug.Log(clampedValue); // 输出5.0

Par exemple

Limiter la santé du joueur

Dans le jeu, le volume sanguin du joueur peut être affecté par des attaques ou des traitements. Afin d'éviter que le volume sanguin du joueur soit inférieur à 0 ou supérieur au volume sanguin maximal, la fonction de pince peut être utilisée pour limiter le volume sanguin entre 0 et la valeur maximale.

float health = GetPlayerHealth();
float maxHealth = GetPlayerMaxHealth();
float clampedHealth = Mathf.Clamp(health, 0.0f, maxHealth);
UpdatePlayerHealthUI(clampedHealth);

Méthodes et exemples de ClampMagnitude

méthode

La fonction clampMagnitude bloque un vecteur entre des longueurs minimale et maximale spécifiées. Si la longueur du vecteur est inférieure à la valeur minimale, renvoie un vecteur de longueur minimale ; si la longueur du vecteur est supérieure à la valeur maximale, renvoie un vecteur de longueur maximale ; sinon, renvoie le vecteur d'origine.

Vector3 vector = new Vector3(1.0f, 2.0f, 3.0f);
float minMagnitude = 0.0f;
float maxMagnitude = 2.0f;
Vector3 clampedVector = Vector3.ClampMagnitude(vector, maxMagnitude);
Debug.Log(clampedVector); // 输出(0.8944272, 1.7888544, 2.683281)

Par exemple

limiter la vitesse de la balle

Dans le jeu, la vitesse de la balle peut être affectée par divers facteurs, tels que le type d'arme, le type de munition, etc. Afin d'éviter que la vitesse de la balle ne soit trop rapide ou trop lente, la fonction clampMagnitude peut être utilisée pour serrer la vitesse entre 0 et la vitesse maximale.

Vector3 velocity = GetBulletVelocity();
float maxSpeed = GetBulletMaxSpeed();
Vector3 clampedVelocity = Vector3.ClampMagnitude(velocity, maxSpeed);
SetBulletVelocity(clampedVelocity);

Méthodes ClampMin et exemples

méthode

La fonction clampMin peut bloquer une valeur au-dessus de la valeur minimale spécifiée. Si la valeur est inférieure à la valeur minimale, la valeur minimale est renvoyée ; sinon, la valeur d'origine est renvoyée.

float value = 1.0f;
float minValue = 2.0f;
float clampedValue = Mathf.ClampMin(value, minValue);
Debug.Log(clampedValue); // 输出2.0

Par exemple

Limiter les points d'expérience des joueurs

Dans le jeu, la valeur d'expérience du joueur peut être affectée par divers facteurs, tels que les batailles, les tâches, etc. Afin d'éviter que la valeur d'expérience du joueur ne soit inférieure à 0, vous pouvez utiliser la fonction clampMin pour limiter la valeur d'expérience au-dessus de 0.

int exp = GetPlayerExp();
int clampedExp = Mathf.ClampMin(exp, 0);
UpdatePlayerExpUI(clampedExp);

Méthode ClampMax et exemples

méthode

La fonction clampMax peut bloquer une valeur inférieure à la valeur maximale spécifiée. Si la valeur est supérieure à la valeur maximale, la valeur maximale est renvoyée ; sinon, la valeur d'origine est renvoyée.

float value = 5.0f;
float maxValue = 3.0f;
float clampedValue = Mathf.ClampMax(value, maxValue);
Debug.Log(clampedValue); // 输出3.0

Par exemple

Limiter la puissance d'attaque de l'ennemi

Dans le jeu, la puissance d'attaque de l'ennemi peut être affectée par divers facteurs, tels que le niveau, l'équipement, etc. Afin d'éviter que la puissance d'attaque de l'ennemi ne soit trop élevée, vous pouvez utiliser la fonction clampMax pour limiter la puissance d'attaque en dessous de la valeur maximale spécifiée.

float attack = GetEnemyAttack();
float maxAttack = GetEnemyMaxAttack();
float clampedAttack = Mathf.ClampMax(attack, maxAttack);
AttackPlayer(clampedAttack);

Méthodes et exemples de ClampValue

méthode

La fonction clampValue peut bloquer une valeur entre les valeurs minimale et maximale spécifiées. Renvoie la valeur minimale si la valeur est inférieure à la valeur minimale, la valeur maximale si la valeur est supérieure à la valeur maximale ou la valeur d'origine dans le cas contraire.

float value = 5.0f;
float minValue = 0.0f;
float maxValue = 10.0f;
float clampedValue = Mathf.Clamp(value, minValue, maxValue);
Debug.Log(clampedValue); // 输出5.0

Par exemple

Limitez le nombre de pièces

Dans le jeu, le nombre de pièces d'or du joueur peut être affecté par divers facteurs, tels que le commerce, le drop, etc. Afin d'éviter que la quantité de pièces d'or du joueur soit inférieure à 0 ou supérieure à la valeur maximale spécifiée, la fonction clampValue peut être utilisée pour limiter la quantité de pièces d'or dans la plage spécifiée.

int coins = GetPlayerCoins();
int minCoins = 0;
int maxCoins = GetPlayerMaxCoins();
int clampedCoins = Mathf.ClampValue(coins, minCoins, maxCoins);
UpdatePlayerCoinsUI(clampedCoins);

おすすめ

転載: blog.csdn.net/qq_20179331/article/details/132031197