日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity Translate方法使用指南

發(fā)布時間:2023/12/16 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity Translate方法使用指南 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • API 簡介
  • Translate 的不同用法組合
    • 1)相對于自己坐標(biāo)系下的z軸正方向移動(往面朝向移動)
    • 2)相對于世界坐標(biāo)系下,自己的面朝向移動
    • 3)相對于世界坐標(biāo)系下的z軸正方向移動
    • 4)相對于自己坐標(biāo)系下,自己的面朝向移動

API 簡介

Translate 方法是 Transform 類下的一個公共方法。一般可以用于物體的位移。

方法的第一個參數(shù)表示位移多少,一般用移動方向×速度 ×?xí)r間來表示。

方法的第二個參數(shù)表示相對于哪個坐標(biāo)系進行移動。如果沒有傳第二個參數(shù),默認是相對于自己的坐標(biāo)系。

Translate 的不同用法組合

在介紹 Translate 方法的具體使用方式之前,我先畫出世界坐標(biāo)系和本地坐標(biāo)系便于大家后續(xù)理解。

現(xiàn)在新建一個物體,假設(shè)它的世界坐標(biāo)系是這樣的:(剛剛創(chuàng)建的物體本地坐標(biāo)系也和世界坐標(biāo)系重合)

現(xiàn)在將物體繞 y 軸順時針旋轉(zhuǎn)一定角度。

現(xiàn)在黑色坐標(biāo)系是世界坐標(biāo)系,紅色坐標(biāo)系是物體旋轉(zhuǎn)后的本地坐標(biāo)系(因為是繞 y 軸轉(zhuǎn)所以 y 軸不動,就不標(biāo)紅了)。


1)相對于自己坐標(biāo)系下的z軸正方向移動(往面朝向移動)

transform.Translate(Vector3.forward*1*Time.deltaTime);

把物體當(dāng)作人,那么就是朝人的前方移動。
這個比較好理解,就是在自己的坐標(biāo)系下,往(0,0,1)的方向移動。在上圖中就是沿著紅色的 z 軸方向移動。

2)相對于世界坐標(biāo)系下,自己的面朝向移動

transform.Translate(transform.forward*1*Time.deltaTime,Space.World);

效果和上面那種方法是相同的,都是沿著紅色的 z 軸方向移動。

這里簡單提一下 transform.forward,它代表了物體當(dāng)前的面朝向(自身的z 軸指向),并且是相對于世界坐標(biāo)系下的

也就是用自己坐標(biāo)系下的(0,0,1)投影到世界坐標(biāo)系下的各分量來表示 forward 得出的向量,以上面畫的坐標(biāo)系圖為例,就是這樣理解:

transform.forward 得出的向量就是(Zx,0,Zz),從黑色的世界坐標(biāo)系來看就是沿著紅色的 z 軸方向。

3)相對于世界坐標(biāo)系下的z軸正方向移動

transform.Translate(Vector3.forward*1*Time.deltaTime,Space.World);

此時物體只會朝黑色的 z 軸移動。

4)相對于自己坐標(biāo)系下,自己的面朝向移動

(一般不會這樣用)

transform.Translate(transform.forward*1*Time.deltaTime,Space.Self);

transform.forward 得到的向量是相對于世界坐標(biāo)系的,可這時候我們要求相對于自己的坐標(biāo)系,那么必須將原來 forward 得到的向量轉(zhuǎn)化成自己坐標(biāo)系的一個向量。這時候物體的移動方向也就不會是自己的面朝向了。

最后的移動方向是藍色的 z’ 軸
以上面這張圖為例,就是原先由黑色 z 軸轉(zhuǎn)到紅色 z 軸旋轉(zhuǎn)了一定角度。然后再從紅色 z 軸旋轉(zhuǎn)相同的角度到藍色 z’ 軸的方向(有點像將原來的世界坐標(biāo)系旋轉(zhuǎn)到紅色的坐標(biāo)系,那么原本相對于黑色坐標(biāo)系的紅色 z 軸就相應(yīng)變成了相對于原本紅色坐標(biāo)系的藍色 z’ 軸)。

總結(jié)
如果想實現(xiàn)物體沿自身方向移動,比如游戲中常見的人物移動,參考前兩種方法就好了。尤其注意不要掉入最后一種方式的陷阱,因為有可能會寫成 :

transform.Translate(transform.forward*1*Time.deltaTime);

那么它是無法實現(xiàn)我們正常想要看到的人物移動效果的。

總結(jié)

以上是生活随笔為你收集整理的Unity Translate方法使用指南的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。