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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于Unity3D的初步学习研究周记

發布時間:2023/12/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于Unity3D的初步学习研究周记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于Unity3D的初步學習研究周記(1)

學習總結:

本次學習Unity3D其實算是對基本的復習,因為在以前自己玩過一段時間,我也有一點C#的基礎,所以我是直接開始做的一些小測試,因為事件原因,兩個星期只是做了兩個demo,一個就是間的跳躍(自動/點擊),另一個就是的游戲雛形,其中自己畫了個不怎么美觀的小鳥,也只是實現了最基本的幾個功能,算是對Unity3D的復習加學習,忘的有點多。這兩個demo都是在網上找的資源看的教程,用的時間也比較短(畢竟代碼量比較少),但也是對整個Unity3D的運行流程再加復習。此次報告我將自己在這兩次制作中的心得寫下來,以供以后復習,或者有學習Unity3D的朋友指出我的不足。

學習日志:
2021.11.10
今日再一次安裝了熟悉的軟件Unity3D及Visual Studio,懷著沉重的心情打開了以前的demo,熟悉的圖形陌生的腳本使我不等不重新開始。我打算從基本的只是開始,我創建了一個工程及第一個Scenes(Unity3D中每一個場景算是一個Scenes),根據記憶創建了屬于我自己當時學習的框架如圖1。因為Unity創建腳本的時候是直接在Assets文件下創建的,我個人喜歡把其放在一起(創建script文件中);material是存放素材的地方,一般是存放已經設置好的物體(在unity中如果你已經創建好了素材并第一次拖進文件時就會保留你現在所有的設置,在你下一次用的時候直接拖進工程之中就可使用)Scenes是存放場景的文件;
圖1

在unity中其實可以創建一個空白體的但是我還是找了一個素材(一張同學的照片來滿足自己的惡趣味)來實現我今天要完成的跳躍動作。在工作區創建一個2Dsprite并且命名為renwu,拖進素材。創建一個2Dsprite來當作地面并將其顏色設置為綠色。

圖2

備注:圖2為工作區的素材區,其中的Main Camera時unity創建的時候自帶的相機對象,并經沒有相機就沒有顯示。

圖3

圖4

根據上面三張圖可以看到在設置的時候我在renwu素材中設置了Rigidbody2D腳本,該腳本時Unity自帶的物理腳本,有了該腳本物體就會像現實中的物體一樣擁有重力,慣性等屬性。還有就是dimian和renwu共同的腳本Box Collider2D,該腳本時給予物體一個方形碰撞體,讓他們能夠接受碰撞。做完這些可以做到如圖5

圖5

接下來就是編寫腳本代碼,只需要在renwu素材之中創建一個檢測碰撞的腳本,在renwu碰撞到dimian的時候給他一個向上的力。具體代碼如圖6。效果圖7。

圖6

圖7

其中OnCollisionEnter2D方法時unity自帶的檢測碰撞的方法。

圖8

點擊跳躍的方法跟自動跳躍其實是一樣的,只是換了方法,OnMouseDown方法是檢測到鼠標點擊運行的方法。效果如圖8。

圖9

2021.11.14
因為上次復習了跳躍我就在像有沒有關于跳躍的2d游戲,正好Flappy Bird就是一個只要跳的小游戲,整體流程也不算大,想發合理開始工作。
首先我確定是要有素材(其實也可以用自帶的白板先用著),所以我就畫了張鳥圖,并在unity中創建了場景及鳥(也就是Player)并設置了物理相關的物理屬性,

因為鳥是要實現跳躍功能和碰撞檢測功能的,故創建了Rigidbody的物理屬性和Collider的碰撞器,場景中應該有障礙所以我是創建了障礙墻,

這次其實是有兩個想法的,因為游戲本身是要運動的,但是如果是搭建一個完整的場景的話,整個游戲的障礙就沒有隨機感,

第二種就是創建一個標記為讓它隨機產生墻體,并且讓墻體向玩家的方向運動,這樣就會有源源不斷的障礙物。

想法合理開始工作
首先是創建標記位,創建一個空的物體放在相機外面不讓相機獲取創建過程,并編寫借一個隨機生成的腳本。

注釋:在Unity中有最基本的兩個方法,Start和Update。顧名思義一個是在開始的時候運行的(只一次),update是每一分秒都進行。這些方法都是Unity自帶的方法。
創建了障礙之后,我就要考慮碰撞后死亡的方式,首先我是創建了一個公開的類來放玩家的狀態和分數的獲取。

在Unity之中只要創建公開的變量并放在操作區的物體中就可以調用。所以在設置后我就可以用isActive來儲存player的運行狀態,用score來存儲分數。
然后在地面和障礙中設置腳本,當碰撞者的標簽為“Player”的時候,就讓狀態改變false。然后再在玩家操作的腳本中加上條件就能使玩家在碰撞到物體后停止并無法操作。


分數添加的功能我是放在了障礙中間的地方,我給其加了一個碰撞體但是Is Trigger屬性為True(當其屬性為True的時候只是檢測碰撞,不會碰撞反射)。


最后就是把分數顯示出來,還有就是在游戲結束的時候顯示出GAMEGVER,這方面使用的使Unity中的UI類在工作區創建UItext他會自動創建UI其他的基本原件。

創建兩個文本文件并將其屬性設置好。如圖

后面的就比較簡單了,創建文字腳本,讓其接受分數變量。值得一提的是GameOver文字的顯示。首先是把其顯示的文字隱藏,當玩家的狀態為false的時候在顯示出來。

至此所有的功能都已經完成了,已附送游戲文件。但是游戲本身還有很多問題,比如沒有開始,沒有結束重開,每一次打開的時候都是直接運行,而且結束后只能關閉手動啟動。

本次的游戲參考bilibili up李三影 的視頻:視頻鏈接
工程會後續上傳
報告人姓名:夕草
時間:2021.11.15

總結

以上是生活随笔為你收集整理的关于Unity3D的初步学习研究周记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。