Unity3D Mathf数学演算(C#)



Unity3d Mathf Math Operations



Mathf.Abs絶対値 指定されたパラメータfの絶対値を計算して返します。

Mathf.Acos逆余弦 静的関数Acos(f:float):floatパラメーターfで指定された数値のアークコサインをラジアンで計算して返します。



Mathf。近似近似 静的関数近似(a:float、b:float):bool 2つの浮動小数点値を比較して、それらが非常に近いかどうかを確認します。浮動小数点値は不正確であるため、equalsを使用してそれらを比較することはお勧めしません。
たとえば、1.0 == 10.0 /10.0はtrueを返さない場合があります。

public class example : MonoBehaviour { publicvoid Awake() { if(Mathf.Approximately(1.0F, 10.0F / 10.0F)) print('same') } }

Mathf.Asin逆正弦
静的関数Asin(f:float):
floatパラメーターfで指定された数値のアークサインをラジアンで計算して返します。



とにかくMathf.Atan2 静的関数Atan2(y:float、x:float):float y / xのアークタンジェントをラジアンで計算して返します。戻り値は、反対側の直角三角形の対角線の角度を表します。ここで、xはエッジの長さ、yはエッジの長さです。戻り値は、x軸と、0で始まり(x、y)で終わる2次元ベクトルとの間の角度です。

public class example : MonoBehaviour { publicTransform target voidUpdate() { Vector3relative = transform.InverseTransformPoint(target.position) floatangle = Mathf.Atan2(relative.x, relative.z) *Mathf.Rad2Deg transform.Rotate(0,angle, 0) } }

とにかくMathf.Atan
静的関数Atan(f:float):floatパラメーターfで指定された数値の逆正接を計算して返します。戻り値は、負のpiと正のpiの間にあります。

Mathf.CeilToInt最小整数 静的関数CeilToInt(f:float):intf以上の最小の整数を返します。



Mathf.Ceilの上限 静的関数Ceil(f:float):float指定された数または式の上限を返します。数値の上限は、数値以上の最も近い整数です。

Mathf.Clamp01は0〜1を制限します 静的関数Clamp01(値:float):float値を0,1の間に制限し、値を返します。値が0未満の場合は0を返します。値が1より大きい場合は1を返し、それ以外の場合は値を返します。

Mathf。クランプ制限 静的関数クランプ(値:float、min:float、max:float):float値の値を最小と最大の間に制限します。値がmin未満の場合、minを返します。値がmaxより大きい場合はmaxを返し、それ以外の場合は値を返します。staticfunction Clamp(value:int、min:int、max:int):int値の値をminとmaxの間に制限し、valueを返します。

Mathf.ClosestPowerOfTwo最近の2次 静的関数ClosestPowerOfTwo(value:int):int値に最も近い2の累乗を返します。

Mathf.Cosコサイン 静的関数Cos(f:float):float引数fで指定された角度の余弦を返します(-1.0から1.0の間の値)。

Mathf.Deg2Rad度ラジアン Static var Deg2Rad:フロートからラジアンへの変換定数。 (読み取り専用)これは(PI * 2)/ 360に等しくなります。

Mathf.Mathf.Rad2Degラジアン Static var Rad2Deg:floatラジアンから度への変換定数。 (読み取り専用)これは360 /(PI * 2)に相当します。

Mathf.DeltaAngle増分角度 静的関数DeltaAngle(現在:float、ターゲット:float):float指定された2つのコーナー間の最短の差を計算します。 // 90を出力しますDebug.Log(Mathf.DeltaAngle(1080,90))

Mathf.Epsilonの小さな正の数 Static var Epsilon:float小さな浮動小数点値。 (読み取り専用)0とは異なる最小の浮動小数点値。次のルール:-anyValue + Epsilon = anyValue --anyValue --Epsilon = anyValue-0 + Epsilon = Epsilon-0 --Epsilon = -Epsilon任意の数との間の値イプシロンは、任意の数で切り捨てエラーを引き起こします。

public class example : MonoBehaviour { boolisEqual(float a, float b) { if(a >= b - Mathf.Epsilon && a <= b .Mathf.Epsilon) returntrue else returnfalse } }

Mathf.Expインデックス
静的関数Exp(power:float):floateの累乗の値を返します。

Mathf.FloorToInt最大の整数
静的関数FloorToInt(f:float):intf以下の最大の整数を返します。
Mathf.Floorの下限
静的関数Floor(f:float):float引数fで指定された数または式の下限を返します。下限は、指定された数値または式以下の最も近い整数です。
Mathf.Infinityは無限大です
static var Infinity:floatは正の無限大、つまり無限大、∞(読み取り専用)を意味します

Mathf.InverseLerp逆補間
2つの値の間のLerpパラメーターを計算します。つまり、fromとtoの間の値の値です。 //パラメータは3/5になりましたfloatparameter = Mathf.InverseLerp(walkSpeed、runSpeed、speed)

Mathf.IsPowerOfTwoは2の累乗です
静的関数IsPowerOfTwo(値:int):bool値が2の累乗の場合はtrueを返します。 // falseを出力しますDebug.Log(Mathf.IsPowerOfTwo(7))// trueを出力しますDebug.Log(Mathf.IsPowerOfTwo(32))

Mathf.LerpAngle補間角度 静的関数LerpAngle(a:float、b:float、t:float):float補間が正しいことを確認するために360度ラップする場合、Lerpと同じです。 aとbは代表的な学位です。

public class example : MonoBehaviour { publicfloat minAngle = 0.0F publicfloat maxAngle = 90.0F voidUpdate() { floatangle = Mathf.LerpAngle(minAngle, maxAngle, Time.time) transform.eulerAngles= new Vector3(0, angle, 0) } }

Mathf.Lerp補間
静的関数Lerp(from:float、to:float、t:float):float浮動小数点数tに基づいてaとbの間の補間を返します。ここで、tは0から1に制限されます。 t = 1はに戻ります。 t = 0.5の場合、fromとtoの平均を返します。

Mathf.Log10基数10の対数
静的関数Log10(f:float):float10を底とするfの対数を返します。

Mathf.Log対数

静的関数Log(f:float、p:float):float引数fの対数を返します。 //基数2の6の対数// 2基数2の対数//2.584963を出力print(Mathf.Log(6、2))

Mathf.Max最大
static function Max(a:float、b:float):float static function Max(params values:float []):float2つ以上の値の最大値を返します。

Mathf.Min最小
静的関数Min(a:float、b:float):float静的関数Min(params values:float []):float2つ以上の値の最小値を返します。

Mathf.MoveTowardsAngle移動角度
静的関数MoveTowardsAngle(現在:float、ターゲット:float、maxDelta:float):float MoveTowardsと同様ですが、360度折り返すときは、補間が正しいことを確認してください。 current変数とtarget変数は度として使用されます。最適化の理由から、maxDeltaの負の値はサポートされておらず、発振を引き起こす可能性があります。ターゲット角度から電流をプッシュし、代わりに180度の角度を追加します。

Mathf.MoveTowardsはに移動します
静的関数MoveTowards(current:float、target:float、maxDelta:float):float現在の値をターゲット値に変更します。これは実際にはMathf.Lerpと同じですが、この関数は速度がmaxDeltaを超えないようにします。 maxDeltaは、ターゲットを遠ざけるための負の値です。

Mathf.NegativeInfinity負の無限大
static var NegativeInfinity:floatは負の無限大、つまり無限小、-∞(読み取り専用)を意味します

Mathf.NextPowerOfTwo next power of 2

Mathf.PingPongピンポン
静的関数PingPong(t:float、length:float):float0と長さの間の往復。 tの値が長さの値より大きくなることはなく、ゼロより小さくなることもありません。戻り値は、0と長さの間を行ったり来たりします。戻り値は0と長さの間を行ったり来たりします。

Mathf.PI pi
static var PI:float PI(read pai)value、これはpi(π)の値です3.14159265358979323846 ...(読み取り専用)

Mathf.Powパワー
静的関数Pow(f:float、p:float):floatfのp乗を計算して返します。

Mathf.Repeatリピート
static function Repeat(t:float、length:float):floatループ値はtで、0から長さの間です。 tの値が長さの値より大きくなることはなく、ゼロより小さくなることもありません。これはモジュロ演算子に似ていますが、浮動小数点数を使用できます。

public class example : MonoBehaviour { voidUpdate() { transform.position= new Vector3(Mathf.Repeat(Time.time, 3), transform.position.y,transform.position.z) } }

整数に丸められたMathf.RoundToInt
静的関数RoundToInt(f:float):int最も近い整数に丸められたfで指定された値を返します。数値の終わりが.5の場合、偶数か奇数かに関係なく、2つの整数の間にあり、偶数を返します。

Mathf.Roundは四捨五入
静的関数Round(f:float):float浮動小数点数fを返し、最も近い整数に丸めます。数値の終わりが.5の場合、偶数か奇数かに関係なく、2つの整数の間にあり、偶数を返します。

Mathf.Signシンボル
静的関数Sign(f:float):floatfの符号を返します。 fが正または0の場合は1を返し、負の場合は-1を返します。

Mathf.Sinサイン
静的関数Sin(f:float):floatラジアンで指定された角度fの正弦を計算して返します。

Mathf.SmoothDampAngleスムーズな減衰角度
静的関数SmoothDampAngle(current:float、target:float、ref currentVelocity:float、smoothTime:float、maxSpeed:float = Mathf.Infinity、deltaTime:float = Time.deltaTime):floatCurrent現在の場所。ターゲット到達しようとしている場所。 currentVelocity現在の速度、この値は、この関数にアクセスするといつでも変更されます。 SmoothTimeはターゲットをより速くします。ターゲット位置に到達するおおよその時間、ターゲットの実際の到着はより速くなります。 maxSpeed最大速度を制限できるオプションのパラメーター。 deltaTime関数が最後に呼び出された時刻。デフォルトはTime.deltaTimeです。時間の経過とともに、特定の角度を目的の角度に徐々に変更します。この値は、いくつかのスプリングダンパーの同様の機能によって平滑化されます。この関数は、あらゆる種類の値、位置、色、スカラーを平滑化するために使用できます。最も一般的なのは、フォロワーカメラをスムーズにすることです。 //シンプルなスムーズフォローカメラ//ターゲットの向きをフォロー

public class example : MonoBehaviour { publicTransform target publicfloat smooth = 0.3F publicfloat distance = 5.0F privatefloat yVelocity = 0.0F voidUpdate() { //Transform from the current y angle to the target y angle floatyAngle = Mathf.SmoothDampAngle(transform.eulerAngles.y,target.eulerAngles.y,ref yVelocity, smooth) //target location Vector3position = target.position // Then, the distance offset after the new angle position+= Quaternion.Euler(0, yAngle, 0) * new Vector3(0, 0, -distance) / / Application location Transform.position= position //See the target transform.LookAt(target) } }

Mathf.SmoothDampスムーズダンピング
静的関数SmoothDamp(current:float、target:float、ref currentVelocity:float、smoothTime:float、maxSpeed:float = Mathf.Infinity、deltaTime:float = Time.deltaTime):floatCurrent現在の場所。ターゲット到達しようとしている場所。 currentVelocity現在の速度、この値は、この関数にアクセスするといつでも変更されます。 SmoothTimeターゲット位置に到達するおおよその時間であり、ターゲットの実際の到着が速くなります。 maxSpeed最大速度を制限できるオプションのパラメーター。 deltaTime関数が最後に呼び出された時刻。デフォルトはTime.deltaTimeです。説明時間の経過とともに、値を期待値に徐々に変更します。この値は、崩壊しないスプリングダンパーのように滑らかになります。この関数は、あらゆるタイプの値、位置、色、スカラーを平滑化するために使用できます。

public class example : MonoBehaviour { publicTransform target publicfloat smoothTime = 0.3F privatefloat yVelocity = 0.0F voidUpdate() { floatnewPosition = Mathf.SmoothDamp(transform.position.y, target.position.y, refyVelocity, smoothTime) transform.position= new Vector3(transform.position.x, newPosition,transform.position.z) } }

Mathf.SmoothStepスムーズ補間 静的関数SmoothStep(from:float、to:float、t:float):float lerpと同様に、最小値と最大値の間の補間であり、限界でフェードインおよびフェードアウトします。

public class example : MonoBehaviour { publicfloat minimum = 10.0F publicfloat maximum = 20.0F voidUpdate() { transform.position= new Vector3(Mathf.SmoothStep(minimum, maximum, Time.time), 0, 0) } }

Mathf.Sqrtの平方根
静的関数Sqrt(f:float):floatfの平方根を計算して返します。

Mathf.Tanタンジェント
静的関数Tan(f:float):float指定された角度の接線をラジアンfで計算して返します。