国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

第十一章 Unity Transform組件(上)

這篇具有很好參考價(jià)值的文章主要介紹了第十一章 Unity Transform組件(上)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本章節(jié)我們介紹Transform類,它是一個(gè)組件,每一個(gè)游戲?qū)ο笥袚碛性摻M件。因此,它值得我們重點(diǎn)介紹一下。Transform代表了游戲?qū)ο蟮氖澜缱儞Q,也就是移動,選擇和縮放。

首先,我們先介紹它的屬性(類變量),如下所示

1. gameObject 附加到的當(dāng)前游戲?qū)ο?,來自父類Component
2. name 當(dāng)前游戲?qū)ο蟮拿Q,來自父類Component
3. tag 當(dāng)前游戲?qū)ο蟮臉?biāo)簽,來自父類Component
4. transform 當(dāng)前游戲?qū)ο蟮腡ransform,來自父類Component

因?yàn)樗械慕M件都繼承自Component,所以所有的組件都會有以上四個(gè)類實(shí)例變量。

接下來,我們介紹Transform組件獨(dú)有的類實(shí)例變量。

position???????????????????世界空間中的變換位置,它是一個(gè)Vector3三維向量。
localPosition???????????相對于父級的變換位置。若無父級,等同于position。
rotation????????????????????世界坐標(biāo)系中的旋轉(zhuǎn),它是一個(gè)Quaternion四元數(shù)。
localRotation???????????相對于父級的旋轉(zhuǎn),也是一個(gè)四元數(shù)。
eulerAngles?????????????世界坐標(biāo)系中的旋轉(zhuǎn),它是一個(gè)歐拉角(Vector3三維向量表示)。
localEulerAngles?????相對于父級的旋轉(zhuǎn),也是一個(gè)歐拉角。
lossyScale???????????????世界坐標(biāo)系中的縮放,但它是只讀屬性,它是一個(gè)Vector3三維向量。
localScale????????????????相對于父級的縮放,我們經(jīng)常使用這個(gè)屬性進(jìn)行縮放操作。

因?yàn)樵赨nity中,游戲?qū)ο蠼?jīng)常會組織成父子關(guān)系,因此就有了世界坐標(biāo)系和相對于父級的坐標(biāo)系兩個(gè)概念。因?yàn)?,有時(shí)候相對于父級做參考,來改變移動,選擇和縮放的話,會比較簡單方便。需要注意的是,在Inspector檢視視圖中的Transform中的position,rotation和scale是相對父級坐標(biāo)系的。也就對應(yīng)了上面提到的localPosition,localRotation,localEulerAngles和localScale。四元數(shù)和歐拉角是兩種不同的旋轉(zhuǎn)數(shù)值方式,彼此之間可以相互轉(zhuǎn)化。

parent? ? ? ? ? ? ? ?返回父級游戲?qū)ο蟮淖儞QTransform對象。
childCount?? ??? ?返回父級游戲?qū)ο笙掠卸嗌賯€(gè)子游戲?qū)ο蟆?br> root? ? ? ? ? ? ? ? ? ?返回最頂層的父級變換Transform對象。

以上三個(gè)屬性變量可以幫助我們處理游戲?qū)ο笾g的父子關(guān)系,當(dāng)然也可通過方法來實(shí)現(xiàn)。接下來,我們繼續(xù)Transform組件的其他屬性變量(本質(zhì)是一個(gè)Vector3向量)。

right???????????????????世界空間中變換的紅軸/X軸方向
up??????????????????????世界空間中變換的綠軸/Y軸方向
forward??????????????世界空間中變換的藍(lán)軸/Z軸方向

第十一章 Unity Transform組件(上)

unity世界坐標(biāo)系是一個(gè)左手坐標(biāo)系,上面的三個(gè)變量就對應(yīng)了三根手指方向。

我們繼續(xù)說明Transform的方法。

CompareTag????????????????????????????當(dāng)前游戲?qū)ο笫欠袷褂昧酥付?biāo)簽
GetComponent????????????????????????按照類型獲取一個(gè)組件
GetComponentInChildren???????從子游戲?qū)ο笾蝎@取一個(gè)組件
GetComponentInParent??????????從父游戲?qū)ο笾蝎@取一個(gè)組件
GetComponents??????????????????????按照類型獲取所有組件
GetComponentsInChildren??????從子游戲?qū)ο笾蝎@取所有組件
GetComponentsInParent????????從父游戲?qū)ο笾蝎@取所有組件

以上方法均來自于父類Component,也就是說所有組件都有以上7個(gè)方法。我們發(fā)現(xiàn),這些方法與MonoBehaviour中的方法使用是一樣的(腳本也是組件嘛)。同時(shí)在GameObject類中也有類似的方法。由此可見,在Unity中有很多地方(腳本中,組件中,GameObject中)都提供了獲取組件的方法。這一點(diǎn)希望大家不要混淆,雖然重復(fù)出現(xiàn)很多,但是使用場景是不一樣的(后面介紹)。接下來,我們介紹Transform自己的方法:

Translate????????根據(jù)Vector3向量(方向和距離)移動變換。
Rotate????????????根據(jù)Vector3向量選擇變換。

以上兩個(gè)方法用來做移動和旋轉(zhuǎn),通常這兩個(gè)方法提供兩個(gè)參數(shù),一個(gè)是Vector3向量參數(shù),另一個(gè)是坐標(biāo)系參數(shù),也就是Space.Self本地坐標(biāo)系和Space.World世界坐標(biāo)系。游戲?qū)ο蟮囊苿雍托D(zhuǎn)是以參考坐標(biāo)系為前提的,這個(gè)就類似于Unity工具欄上面的變換按鈕以及坐標(biāo)系選擇按鈕,如果忘記的同學(xué),可以看一看前面的章節(jié)復(fù)習(xí)一下。
關(guān)于旋轉(zhuǎn),還有另外兩個(gè)方法,如下:

RotateAround????????圍繞穿過世界坐標(biāo)中的 point 點(diǎn)的 axis軸旋轉(zhuǎn) angle 度。
LookAt???????????????????向target 位置進(jìn)行旋轉(zhuǎn),類似于轉(zhuǎn)頭看向target 位置的操作。

在世界變換中,最難處理的就是旋轉(zhuǎn),Unity提供多個(gè)旋轉(zhuǎn)方法也是為了我們方便操作。

關(guān)于縮放的操作,Unity并沒有提供太多方法來實(shí)現(xiàn),可能是因?yàn)椴唤?jīng)常用吧。

SetParent? ? ? ? ? ? ? ? 設(shè)置變換的父級。
IsChildOf?????????????????該變換是否為 parent 的子級。
GetChild??????????????????按索引返回變換子級。
GetSiblingIndex??????獲取同級索引。
SetSiblingIndex??????設(shè)置同級索引。

以上方法主要用于變換Transform(等效于游戲?qū)ο驡ameObject)的父子層級操作。

關(guān)于Transform的其他方法我們暫且不介紹了。

接下來,我們來介紹Vector3向量。Vector3三維向量類,它既可以用來移動,也可以用來旋轉(zhuǎn),也可以用來縮放。其實(shí),我們還應(yīng)該知道Vector3既可以代表三維坐標(biāo)系中的點(diǎn)坐標(biāo),還可以代表方向和長度(向量的本意)。大家應(yīng)該明白,游戲世界的本質(zhì)是數(shù)學(xué),而向量的運(yùn)算占據(jù)了游戲世界的一大部分,至少我們可以看到,游戲?qū)ο蟮氖澜缱儞Q都可以使用向量來完成。關(guān)于向量的相關(guān)運(yùn)算,我們就不做詳細(xì)介紹了,它的內(nèi)部本質(zhì)就是x,y,z三個(gè)浮點(diǎn)數(shù)值,與三維世界的X/Y/Z軸向一一對應(yīng)。我們先直接看看Vector3類的屬性變量吧。

x??????????????????????????????? 向量的 X 分量。
y????????????????????????????????向量的 Y 分量。
z????????????????????????????????向量的 Z 分量。
magnitude? ? ? ? ? ? ? ? ?返回該向量的長度。(只讀)
sqrMagnitude? ? ? ? ? ? 返回該向量的平方長度。(只讀)
normalized? ? ? ? ? ? ? ? 返回長度為1的方向向量。(只讀)

Vector3類的普通方法并不是很多,我們就不介紹了。

接下來我們看看Vector3類的靜態(tài)變量(本質(zhì)是一個(gè)Vector3向量)。

zero??????????????????????????相當(dāng)于Vector3(0, 0, 0)坐標(biāo)系原點(diǎn)
right??????????????????????????相當(dāng)于Vector3(1, 0, 0)X軸正方向
up?????????????????????????????相當(dāng)于Vector3(0, 1, 0)Y軸正方向
forward?????????????????????相當(dāng)于Vector3(0, 0, 1)Z軸正方向
left????????????????????????????相當(dāng)于Vector3(-1, 0, 0)X軸負(fù)方向
down????????????????????????相當(dāng)于Vector3(0, -1, 0)Y軸負(fù)方向
back?????????????????????????相當(dāng)于Vector3(0, 0, -1)Z軸負(fù)方向

其實(shí)就是我們對于原點(diǎn)和六個(gè)方向的簡便寫法而已。

最后我們在給出Vector3類中一些常用的靜態(tài)方法吧。

1. Angle返回from與to之間的角度(以度為單位)。
2. ClampMagnitude返回vector的副本,其大小被限制為maxLength。
3. Cross兩個(gè)向量的叉積。
4. Distance返回 a 與 b 之間的距離。
5. Dot兩個(gè)向量的點(diǎn)積。
6. Lerp?在兩個(gè)點(diǎn)之間進(jìn)行線性插值。
7. LerpUnclamped在兩個(gè)向量之間進(jìn)行線性插值。
8. Max?返回由兩個(gè)向量的最大分量組成的向量。
9. Min?返回由兩個(gè)向量的最小分量組成的向量。
10. MoveTowards?計(jì)算 current 指定的點(diǎn)與 target 指定的點(diǎn)之間的位置,移動距離不超過 maxDistanceDelta 指定的距離。
11. Normalize使該向量的 magnitude 為 1。
12. OrthoNormalize將向量標(biāo)準(zhǔn)化并使它們彼此正交。
13. Project將向量投影到另一個(gè)向量上。
14. ProjectOnPlane將向量投影到由法線定義的平面上(法線與該平面正交)。
15. Reflect從法線定義的平面反射一個(gè)向量。
16. RotateTowards將向量 current 朝 target 旋轉(zhuǎn)。
17. Scale將兩個(gè)向量的分量相乘。
18. SignedAngle返回 from 與 to 之間的有符號角度(以度為單位)。
19. Slerp在兩個(gè)向量之間進(jìn)行球形插值。
20. SlerpUnclamped在兩個(gè)向量之間進(jìn)行球形插值。
21. SmoothDamp????隨時(shí)間推移將一個(gè)向量逐漸改變?yōu)樗枘繕?biāo)。

以上方法我們會在后面的案例中詳細(xì)介紹。文章來源地址http://www.zghlxwxcb.cn/news/detail-448977.html

到了這里,關(guān)于第十一章 Unity Transform組件(上)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Linux 第十一章

    Linux 第十一章

    ??博主主頁: @??. 一懷明月?? ????? 專欄系列: 線性代數(shù),C初學(xué)者入門訓(xùn)練,題解C,C的使用文章,「初學(xué)」C++,linux ?? 座右銘:“不要等到什么都沒有了,才下定決心去做” ??????大家覺不錯(cuò)的話,就懇求大家點(diǎn)點(diǎn)關(guān)注,點(diǎn)點(diǎn)小愛心,指點(diǎn)指點(diǎn)?????? 目錄

    2024年04月28日
    瀏覽(171)
  • 第十一章 請求響應(yīng)

    第十一章 請求響應(yīng)

    將前端發(fā)送的請求封裝為HttpServletRequest對象 在通過HttpServletResponse 在前后端分離開發(fā)中,后端每開發(fā)完一個(gè)功能,就想要對這個(gè)接口功能進(jìn)行測試 由于是前后端分離開發(fā),所以沒有前端頁面 我們一般是在瀏覽器中直接輸入地址,來訪問我們所開發(fā)的web應(yīng)用 但是瀏覽器發(fā)起的

    2024年01月21日
    瀏覽(24)
  • 第十一章:deque類

    第十一章:deque類

    deque是一種雙開口的“連續(xù)空間”的容器。 deque(雙端隊(duì)列):是一種雙開口的\\\"連續(xù)\\\"空間的數(shù)據(jù)結(jié)構(gòu),雙開口的含義是:可以在頭尾兩端進(jìn)行插入和刪除操作,且時(shí)間復(fù)雜度為O(1),與vector比較,頭插效率高,不需要搬移元素;與list比較,空間利用率比較高 。 deque并不是真正連

    2024年02月15日
    瀏覽(26)
  • shell 第十一章

    shell 第十一章

    1.寫一個(gè)庫函數(shù),用定時(shí)任務(wù)調(diào)用這個(gè)庫函數(shù),每月1號執(zhí)行 1.sh: ?1.1.sh: ? 2.以免交互的方式實(shí)現(xiàn) ssh 遠(yuǎn)程登錄,密碼錯(cuò)誤也直接退出,不用人干預(yù) 3.以免交互的方式,實(shí)現(xiàn)磁盤分區(qū)、格式化、掛載

    2024年02月08日
    瀏覽(18)
  • C國演義 [第十一章]

    C國演義 [第十一章]

    力扣鏈接 給定兩個(gè)字符串 s 和 t ,編寫一個(gè)函數(shù)來判斷 t 是否是 s 的字母異位詞 注意:若 s 和 t 中每個(gè)字符出現(xiàn)的次數(shù)都相同,則稱 s 和 t 互為字母異位詞 示例 1: 輸入: s = “anagram”, t = “nagaram” 輸出: true 示例 2: 輸入: s = “rat”, t = “car” 輸出: false 提示: 1 = s.length, t.

    2024年02月16日
    瀏覽(22)
  • 第十一章 后端編譯與優(yōu)化

    第十一章 后端編譯與優(yōu)化

    如果我們把字節(jié)碼看作是程序語言的一種中間表示形式(Intermediate Representation, IR)的話,那編譯器無論在何時(shí)、在何種狀態(tài)下把 Class 文件轉(zhuǎn)換成與 本地基礎(chǔ)設(shè)施(硬件指令集、操作系統(tǒng))相關(guān)的二進(jìn)制機(jī)器碼 ,它都可以視為整個(gè)編譯過程的后端。 ? 無論是提前編譯器抑

    2024年01月23日
    瀏覽(19)
  • ChatGPT 之言情作家:第一章到第十一章

    ChatGPT 之言情作家:第一章到第十一章

    原文:THE CHATGPT ROMANCE AUTHOR 譯者:飛龍 協(xié)議:CC BY-NC-SA 4.0 和你一樣,我喜歡寫言情小說,在過去的二十年里,我對流派商業(yè)小說中故事構(gòu)思和作者創(chuàng)業(yè)的力量產(chǎn)生了濃厚的興趣。 我的目標(biāo)很簡單。我想了解如何將故事構(gòu)思應(yīng)用到塑造一個(gè)引人入勝的商業(yè)小說故事中,以吸引

    2024年01月19日
    瀏覽(32)
  • 第十二章 Transform組件(下)

    第十二章 Transform組件(下)

    上一章節(jié)中我們介紹了Transform組件的屬性和方法。我們發(fā)現(xiàn) Transform 中有right,up和forward,而 Vector3 類中也有right,up和forward,他們是一回事嘛?我們使用Forward來說明兩者之間的區(qū)別。我們知道,改變游戲?qū)ο蟮膒osition位置,就可以形成移動效果。如果我們讓游戲?qū)ο笱刂鴉or

    2024年02月01日
    瀏覽(23)
  • 【OpenCV】第十一章: 圖像金字塔

    【OpenCV】第十一章: 圖像金字塔

    第十一章: 圖像金字塔 一、什么是圖像金字塔? 同一張圖片不同分辨率的子圖的集合。 圖像金字塔底部是待處理的高分辨率圖像,也就是原始圖像,頂部是低分辨率的近似圖像。一般情況下,都是每向上移動一級,圖像的寬和高都降低為原來的1/2 。 二、為什么要生成圖像金

    2024年02月03日
    瀏覽(29)
  • 西瓜書讀書筆記整理(十一) —— 第十一章 特征選擇與稀疏學(xué)習(xí)

    西瓜書讀書筆記整理(十一) —— 第十一章 特征選擇與稀疏學(xué)習(xí)

    11.1.1 基本概念 特征(feature) :在機(jī)器學(xué)習(xí)中, 特征 是指從數(shù)據(jù)中提取的用于描述樣本的屬性或信息。 相關(guān)特征(relevant feature) :對當(dāng)前學(xué)習(xí)任務(wù) 有用 的屬性稱為 “ 相關(guān)特征 ”。 無關(guān)特征(inrelevant feature) :對當(dāng)前學(xué)習(xí)任務(wù) 無用 的屬性稱為 “ 無關(guān)特征 ”。 冗余特

    2024年01月19日
    瀏覽(57)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包