Clamp是Unity引擎中的一个静态方法,用于将一个值限制在指定的范围内,它可以用于限制数值,位置和旋转等属性的取值范围
//
// 摘要:
// Clamps value between min and max and returns value.
//
// 参数:
// value: //需要限制的值
//
// min: //最小
//
// max //最大
// public static int Clamp(int value, int min, int max);
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ClampTest : MonoBehaviour {
private float PosX;
private float Min;
private float Max;
private GameObject obj;
void Start ()
{
Min = 0;
Max = 20;
obj = GameObject.Find("Cube");
}
void Update ()
{
PosX = obj.transform.position.x;
PosX= Mathf.Clamp(PosX, Min, Max);
//游戏对象obj的x轴位置只能在Min与Max之间
obj.transform.position = new Vector3(PosX, obj.transform.position.y, obj.transform.position.z);
}
}
Lerp:在两个点之间进行线性插值。
Lerp(a,b,t)
使用插值
t
在点a
和b
之间进行插值。参数t
限制在范围 [0, 1] 内。这最常用于查找占两个终端之间距离特定百分比的点返回 a + (b - a) * t
Material.Lerp //俩材质球之间
Mathf.Lerp //俩数值之间
Vector.Lerp //俩向量之间
Color.Lerp //俩颜色之间
public class LerpTest : MonoBehaviour
{
//Material.Lerp
public Material material1;
public Material material2;
private float fTime = 1.0f;
private Renderer renderer;
//Mathf.Lerp
private float f;
private float f_left;
private float f_right;
//Vector.Lerp
private Vector3 v;
private Vector3 v_left;
private Vector3 v_right;
//Color.Lerp
private Color c;
private Color c_left;
private Color c_right;
void Start ()
{
//Material.Lerp
renderer=GetComponent<Renderer>();
renderer.material = material1;
//Mathf.Lerp
f_left=2;
f_right = 3;
//Vector.Lerp
v_left = Vector3.zero;
v_right = new Vector3(2, 2, 2);
//Color.Lerp
c_left = Color.black;
c_right = Color.blue;
}
void Update ()
{
//Material.Lerp
float lerp = Mathf.PingPong(Time.time,fTime)/fTime;
//在持续时间内乒乓材质
renderer.material.Lerp(material1,material2,lerp); //第三个参数对应的是权重取值范围为0-1表示material1-material2变换0%-100%
//Mathf.Lerp
f = Mathf.Lerp(f_left, f_right, lerp);
Debug.Log(f);
//Vector3.Lerp
v = Vector3.Lerp(v_left, v_right, lerp);
Debug.Log(v);
//Color.Lerp
c = Color.Lerp(c_left,c_right,lerp);
Debug.Log(c);
}
}