五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Unity-從一個對象到另一個對象的方向和距離

2021-01-14 23:17 作者:unity_某某師_高錦錦  | 我要投稿

如果從空間中的一個點減去另一個點,則得到的結(jié)果是從一個對象“指向”另一個對象的矢量:

// 獲取從玩家位置指向目標位置的矢量。 
var heading = target.position - player.position;

除了指向目標對象的方向之外,該矢量的大小等于兩個位置之間的距離。通常需要歸一化矢量來提供目標的方向以及到目標的距離(例如用于指揮飛彈)。對象之間的距離等于方向矢量的大小,該矢量可以通過除以其大小來歸一化:

var distance = heading.magnitude; 
var direction = heading / distance; 
// This is now the normalized direction.

此方法優(yōu)于單獨使用大小和歸一化屬性,因為大小和歸一化屬性都非常耗費 CPU(都涉及計算平方根)。

如果只需要使用距離進行比較(例如,進行接近檢查),則可以完全避免大小計算。sqrMagnitude 屬性給出大小值的平方,計算方式與大小相似,但不需要進行耗時的平方根運算。不要將大小與已知距離進行比較,可將大小的平方與距離的平方進行比較:

if (heading.sqrMagnitude < maxRange * maxRange){
 ?// 目標在范圍內(nèi)。 
}

這種算法比在比較中使用真實大小要高效得多。

有時,需要平行于地面的目標方向。例如,想象一個站在地面上的玩家需要接近漂浮在空中的目標。如果從目標位置減去玩家位置,那么產(chǎn)生的矢量將向上指向目標。這種情況下不適合對玩家變換進行定向,因為變換也會指向上方;真正需要的是從玩家位置到目標正下方地面位置的矢量。通過使用減法結(jié)果并將 Y 坐標設置為零,很容易獲得該矢量:

var heading = target.position - player.position;
heading.y = 0; ?
// 這是平行于地面的方向。


Unity-從一個對象到另一個對象的方向和距離的評論 (共 條)

分享到微博請遵守國家法律
昭苏县| 凯里市| 礼泉县| 温宿县| 赤壁市| 吉安县| 木里| 南澳县| 东乡族自治县| 邳州市| 泰来县| 巨鹿县| 达尔| 台东县| 丰镇市| 葫芦岛市| 平潭县| 临城县| 原平市| 平遥县| 临泽县| 盐亭县| 龙江县| 泰来县| 合山市| 巴里| 江津市| 淮滨县| 东明县| 乌海市| 普宁市| 肥东县| 武强县| 蓝山县| 景东| 东阳市| 黎平县| 丰镇市| 滁州市| 伊春市| 根河市|