Introducción de abrazadera

Introducción de abrazadera

En Unity, clamp es una función que se usa para limitar el rango de valores. Puede ayudar a los desarrolladores a limitar el valor dentro del rango especificado para evitar el desbordamiento o error del valor. Unity proporciona una variedad de funciones de abrazadera, incluidas clamp01, clamp, clampMagnitude, clampMin, clampMax y clampValue.

Método y ejemplos de Clamp01

método

La función clamp01 fija un valor en el rango de 0 a 1. Devuelve 0 si el valor es menor que 0, 1 si el valor es mayor que 1 o el valor original en caso contrario.

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

Por ejemplo

Limitar la velocidad de movimiento del jugador

En el juego, la velocidad de movimiento del jugador puede verse afectada por varios factores, como el estado del personaje, el equipamiento, etc. Para evitar que el jugador se mueva demasiado rápido o demasiado lento, la función clamp01 se puede usar para fijar la velocidad entre 0 y 1.

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

Método de abrazadera y ejemplos

método

La función de sujeción puede sujetar un valor entre un valor mínimo y máximo especificado. Devuelve el valor mínimo si el valor es menor que el valor mínimo, el valor máximo si el valor es mayor que el valor máximo o el valor original en caso contrario.

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

Por ejemplo

Limitar la salud del jugador

En el juego, el volumen de sangre del jugador puede verse afectado por ataques o tratamientos. Para evitar que el volumen de sangre del jugador sea inferior a 0 o superior al volumen de sangre máximo, se puede utilizar la función de abrazadera para limitar el volumen de sangre entre 0 y el valor máximo.

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

Métodos y ejemplos de ClampMagnitude

método

La función clampMagnitude sujeta un vector entre las longitudes mínima y máxima especificadas. Si la longitud del vector es menor que el valor mínimo, devuelve un vector de longitud mínima; si la longitud del vector es mayor que el valor máximo, devuelve un vector de longitud máxima; de lo contrario, devuelve el vector original.

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)

Por ejemplo

limitar la velocidad de la bala

En el juego, la velocidad de la bala puede verse afectada por varios factores, como el tipo de arma, el tipo de munición, etc. Para evitar que la velocidad de la bala sea demasiado rápida o demasiado lenta, se puede utilizar la función clampMagnitude para fijar la velocidad entre 0 y la velocidad máxima.

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

Métodos y ejemplos de ClampMin

método

La función clampMin puede fijar un valor por encima del valor mínimo especificado. Si el valor es menor que el valor mínimo, se devuelve el valor mínimo; de lo contrario, se devuelve el valor original.

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

Por ejemplo

Limitar los puntos de experiencia del jugador

En el juego, el valor de la experiencia del jugador puede verse afectado por varios factores, como batallas, tareas, etc. Para evitar que el valor de experiencia del jugador sea inferior a 0, puede utilizar la función clampMin para limitar el valor de experiencia por encima de 0.

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

Método y ejemplos de ClampMax

método

La función clampMax puede fijar un valor por debajo del valor máximo especificado. Si el valor es mayor que el valor máximo, se devuelve el valor máximo; de lo contrario, se devuelve el valor original.

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

Por ejemplo

Limitar el poder de ataque del enemigo

En el juego, el poder de ataque del enemigo puede verse afectado por varios factores, como el nivel, el equipo, etc. Para evitar que el poder de ataque del enemigo sea demasiado alto, puede usar la función clampMax para limitar el poder de ataque por debajo del valor máximo especificado.

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

Métodos y ejemplos de ClampValue

método

La función clampValue puede fijar un valor entre los valores mínimo y máximo especificados. Devuelve el valor mínimo si el valor es menor que el valor mínimo, el valor máximo si el valor es mayor que el valor máximo o el valor original en caso contrario.

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

Por ejemplo

Limitar el número de monedas

En el juego, la cantidad de monedas de oro del jugador puede verse afectada por varios factores, como intercambiar, soltar, etc. Para evitar que la cantidad de monedas de oro del jugador sea inferior a 0 o superior al valor máximo especificado, se puede utilizar la función clampValue para limitar la cantidad de monedas de oro dentro del rango especificado.

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

Supongo que te gusta

Origin blog.csdn.net/qq_20179331/article/details/132031197
Recomendado
Clasificación