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

第十二章 Transform組件(下)

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

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

接下來,我們創(chuàng)建一個“SampleScene3”的新場景,并創(chuàng)建一個“Cube”游戲?qū)ο蟆?/span>

第十二章 Transform組件(下)

需要注意的是,我們要將這個“Cube”放置到世界坐標(biāo)系的原點(diǎn)(0,0,0)的位置。我們點(diǎn)擊選中“Cube”游戲?qū)ο?,然后在它的Inspector檢視面板中做如下修改。

第十二章 Transform組件(下)

然后創(chuàng)建一個“CubeTransformTest.cs”腳本,并將該腳本附加到“Cube”游戲?qū)ο笊厦?。我們按下“W”鍵的時候,“Cube”游戲?qū)ο笠蚯埃╖軸正方向)移動1個單位:

第十二章 Transform組件(下)

腳本代碼如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CubeTransformTest : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.W))
        {
            transform.position += new Vector3(0, 0, 1);
        }
    }
}

以上代碼非常簡單,就是按下“W”按鍵的時候,我們修改游戲?qū)ο蟮膖ransform組件的position屬性,讓其沿著Z軸正方向移動1米的長度。

第十二章 Transform組件(下)

為了能夠更好的查看“Cube”的移動效果,我們將攝像機(jī)移動到“Cube”的上方,同時朝向下方,也就是“俯視”當(dāng)前場景,那么攝像機(jī)的參數(shù)設(shè)置如下:

第十二章 Transform組件(下)

因?yàn)椤癈ube”位于世界坐標(biāo)系原點(diǎn)(0,0,0)位置,因此我們將攝像機(jī)放置(0,5,0)位置,也就是“Cube”的上方5個單位高度位置。然后我們將攝像機(jī)在X軸旋轉(zhuǎn)90度,讓攝像機(jī)朝向“Cube”,這樣,我們就能夠“俯視”這個“Cube”游戲?qū)ο罅?。接下來?我們就可以Play當(dāng)前工程,然后按下“W”鍵來移動這個“Cube”。

第十二章 Transform組件(下)

以上就是運(yùn)行后的內(nèi)容,接下來我們按下“W”鍵

第十二章 Transform組件(下)

我們前后對比發(fā)現(xiàn),立方體Cube向前移動了一段距離。其實(shí),我們上面也介紹了Vector3.forward就是Vector3(0, 0, 1),那么我們的代碼也可以這樣寫,

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.W))
        {
            //transform.position += new Vector3(0, 0, 1);
            transform.position += Vector3.forward;
        }
    }

我們重新“Play”當(dāng)前工程,按下“W”鍵之后,發(fā)現(xiàn)“Cube”也向前移動了,說明Vector3.forward就是Vector3(0, 0, 1),這個是沒有問題的。接下來, 我們試試transform.forward代碼

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.W))
        {
            //transform.position += new Vector3(0, 0, 1);
            //transform.position += Vector3.forward;
            transform.position += transform.forward;
        }
    }

我們再重新“Play”當(dāng)前工程,按下“W”鍵之后,發(fā)現(xiàn)“Cube”也向前移動了,跟之前沒有任何區(qū)別,這說明transform.forward 約等于Vector3(0, 0, 1)。他們之間肯定是有區(qū)別的。

接下來,我們添加旋轉(zhuǎn)代碼,測試旋轉(zhuǎn)后的移動,如下所示:

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.W))
        {
            transform.position += new Vector3(0, 0, 1);
            //transform.position += Vector3.forward;
            //transform.position += transform.forward;
        }

        // 向左旋轉(zhuǎn)45度
        if (Input.GetKeyDown(KeyCode.Q))
        {
            transform.eulerAngles += new Vector3(0, -45, 0);
        }

        // 向右旋轉(zhuǎn)45度
        if (Input.GetKeyDown(KeyCode.E))
        {
            transform.eulerAngles += new Vector3(0, 45, 0);
        }
    }

請注意,我們添加旋轉(zhuǎn)代碼的同時,還重新使用了“Vector3(0,0,1)”移動代碼。我們重新Play當(dāng)前工程,先旋轉(zhuǎn)“cube”然后在再移動“cube”,入下所示:

第十二章 Transform組件(下)

?第十二章 Transform組件(下)

?第十二章 Transform組件(下)

我們發(fā)現(xiàn),當(dāng)我們選擇“Cube”之后再移動的話,“Cube”仍然沿Z軸正方向移動。也就是說,“Vector3(0,0,1)”是世界坐標(biāo)系的正前方(Z軸正方向),它不會受游戲物體的旋轉(zhuǎn)影響。同時我們再測試“Vector3.forward”代碼,發(fā)現(xiàn)他們兩個一樣的效果。這說明

Vector3.forward = Vector3(0,0,1)? ?

兩者都代表世界坐標(biāo)系的正前方(Z軸正方向)
接下來,我們再來測試“transform.forward”的效果。

        if (Input.GetKeyDown(KeyCode.W))
        {
            //transform.position += new Vector3(0, 0, 1);
            //transform.position += Vector3.forward;
            transform.position += transform.forward;
        }

第十二章 Transform組件(下)

?第十二章 Transform組件(下)

?第十二章 Transform組件(下)

我們發(fā)現(xiàn),旋轉(zhuǎn)后的移動方向改變了,它不是世界坐標(biāo)系的前方,而是當(dāng)前“Cube”游戲?qū)ο蟮谋镜刈鴺?biāo)系的前方。他們的區(qū)別相當(dāng)于“東西南北”和“前后左右”的概念?!皷|西南北”是相對于世界坐標(biāo)系的,不管人如何旋轉(zhuǎn),方向不會改變;但是“前后左右”是相對于每一個人而言的,人的朝向不同(旋轉(zhuǎn)不同),“前后左右”的方向是不一樣的。兩者只是參考系不同,有時候世界坐標(biāo)系方便一下,有時候本地坐標(biāo)系方便一些。也就是說,transform.forward代表的是游戲?qū)ο蟮恼胺剑ū镜刈鴺?biāo)系Z軸正方向),而Vector3.forward 等效于Vector3(0,0,1),兩者都代表世界坐標(biāo)系的正前方(Z軸正方向)。文章來源地址http://www.zghlxwxcb.cn/news/detail-430029.html

到了這里,關(guān)于第十二章 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)文章

  • 第十二章Session

    第十二章Session

    注意:前面的Cookie是保存在客戶端,而session是在服務(wù)端的 這里Session與cookie的樣式基本一樣的 下面加一個base標(biāo)簽 再次點(diǎn)擊,id不變,isNew變?yōu)閒alse 30分鐘 下面這個設(shè)置可以改變session的默認(rèn)時長 下面我們設(shè)置session的時長(上面是默認(rèn)時長) 本來第二次點(diǎn)擊session的創(chuàng)建和獲取

    2024年01月24日
    瀏覽(26)
  • 第十二章 外觀模式

    第十二章 外觀模式

    `

    2023年04月25日
    瀏覽(18)
  • 第十二章 elk

    第十二章 elk

    1、ELK可以幫助我們解決哪些問題 日志分布在多臺不同的服務(wù)器上,業(yè)務(wù)一旦出現(xiàn)故障,需要一臺臺查看日志 單個日志文件巨大,無法使用常用的文本工具分析,檢索困難; 2、架構(gòu)設(shè)計(jì)分析 Filebeat和Logstash ELK架構(gòu)中使用 Logstash收集、解析日志 ,但是Logstash對 內(nèi)存、cpu、io等資

    2024年02月13日
    瀏覽(19)
  • 第十二章:泛型(Generic)

    目錄 12.1:為什么要有泛型? 12.2:在集合中使用泛型 12.3:自定義泛型結(jié)構(gòu) 12.4:泛型在繼承上的體現(xiàn) 12.5:通配符的使用 12.1:為什么要有泛型? ????????泛型:(標(biāo)簽)允許在定義類、接口時候通過一個標(biāo)識來表示類中某個屬性的類型或者是某個方法的返回值及參數(shù)類

    2024年02月07日
    瀏覽(20)
  • python 第十二章 面向?qū)ο? decoding=
  • 11.第十二章.采購管理

    1、基于組織的經(jīng)營目標(biāo)和經(jīng)營政策展開項(xiàng)目采購相應(yīng)的運(yùn)營活動,包括采購戰(zhàn)略合作管理、釆購過程管理、采購管理技術(shù)和工具等3個方面。 2、企業(yè)僅依靠自身無力應(yīng)對激烈的競爭。因此,必須擯棄“以企業(yè)為中心”的傳統(tǒng)管理模式,代之以現(xiàn)代戰(zhàn)略合作的管理模式。戰(zhàn)略合

    2024年02月04日
    瀏覽(19)
  • C國演義 [第十二章]

    C國演義 [第十二章]

    力扣鏈接 你是一個專業(yè)的小偷,計(jì)劃偷竊沿街的房屋。每間房內(nèi)都藏有一定的現(xiàn)金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統(tǒng),如果兩間相鄰的房屋在同一晚上被小偷闖入,系統(tǒng)會自動報(bào)警 給定一個代表每個房屋存放金額的非負(fù)整數(shù)數(shù)組,計(jì)算你

    2024年02月17日
    瀏覽(21)
  • 【OpenCV】第十二章: 圖像輪廓

    【OpenCV】第十二章: 圖像輪廓

    第十二章: 圖像輪廓 圖像邊緣和圖像輪廓的區(qū)別 前面我們在圖像形態(tài)學(xué)操作里,用cv2.morphologyEx()這個函數(shù)實(shí)現(xiàn)圖像梯度的提取,就是用膨脹圖像-腐蝕圖像,獲取一個圖像中前景圖像的邊緣。還有我們的禮帽黑帽一定程度也能提取圖像的邊緣信息。 我們還在圖像梯度里面詳細(xì)

    2024年02月04日
    瀏覽(24)
  • 第十二章 遠(yuǎn)程登錄與 NFS

    第十二章 遠(yuǎn)程登錄與 NFS 一、 Telnet ? Telnet 是 Internet 提供的一項(xiàng)基本服務(wù),用來將本地計(jì)算機(jī) 作為網(wǎng)絡(luò)中另一主機(jī)的一個遠(yuǎn)程終端使用,作用上與本地終 端無異。Telnet 協(xié)議是 TCP/IP 協(xié)議族中的一個應(yīng)用層協(xié)議。 ? 同 Internet 上的所有服務(wù)一樣,Telnet 也工作在客戶機(jī)/服務(wù)

    2024年02月03日
    瀏覽(17)
  • python筆記:第十二章文件

    位于自動導(dǎo)入的模塊IO中,無需手動導(dǎo)入。 若文件不存在,則報(bào)錯 只指定文件名的話,會得到一個可讀文件對象。若想寫入文件,必須通過添加參數(shù)來指出。 默認(rèn)模式為 rt ,將把文件視為Unicode文本,自動執(zhí)行解碼和編碼,且默認(rèn)使用UTF-8編碼。 可以使用參數(shù) encodin

    2024年02月16日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包