久久天天躁狠狠躁夜夜躁,国产精品入口福利,97久久精品人人爽人人爽蜜臀 ,中文字幕国产精品一区二区

當(dāng)前位置首頁 > 教育資訊

unity制作第一個(gè)小游戲——滾動(dòng)小球一、創(chuàng)建項(xiàng)目

更新時(shí)間:2023-12-29 文章作者:佚名 信息來源:網(wǎng)絡(luò)整理 閱讀次數(shù):

接出來我們使用unity制做第一個(gè)小游戲,我恐怕這也是所有unity開發(fā)者都十分熟悉的一個(gè)類似“HelloWorld”標(biāo)致的游戲了——滾動(dòng)小球IeG物理好資源網(wǎng)(原物理ok網(wǎng))

一、創(chuàng)建項(xiàng)目(名子自取),創(chuàng)建場景,起名為IeG物理好資源網(wǎng)(原物理ok網(wǎng))

二、創(chuàng)建一個(gè)地面對象(滑鼠右鍵->3D->Plane),并將其設(shè)置為0,0,0,之后把其長寬擴(kuò)大1倍(即Scale設(shè)置為2,1,2)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

之后我們想要改變地面對象的顏色須要這樣做:首先在目錄下新建一個(gè)文件夾,之后右鍵如圖創(chuàng)建一個(gè)并命名IeG物理好資源網(wǎng)(原物理ok網(wǎng))

之后鍵盤拖動(dòng)此材質(zhì)到對應(yīng)的游戲?qū)ο笊?span style="display:none">IeG物理好資源網(wǎng)(原物理ok網(wǎng))

下邊介紹下Plane游戲?qū)ο蟮?a href='http://www.njxqhms.com/redianxinxi/22469.html' title='硅的勝利!硅量子硬件出現(xiàn)轉(zhuǎn)折點(diǎn),兩個(gè)載流子組件首次實(shí)現(xiàn)長距離通訊' target='_blank'>組件構(gòu)成,組件用于指定對象的位置、旋轉(zhuǎn)、縮放;Mesh組件用于指定該對象是一個(gè)哪些類型對象;Mesh用于設(shè)置對象形態(tài)屬性;Mesh用于設(shè)置碰撞檢查(通常會(huì)做兩套建模,一套拿來顯示對象具體形象,另一套會(huì)簡化用于碰撞測量的模型,比如RPG游戲,人物會(huì)用軟膏體作為碰撞測量模型,但FPS類游戲就不行)。我們在點(diǎn)擊Gound步入到設(shè)置界面,之后單擊這個(gè)位置都會(huì)彈出選色卡,最后選擇自己喜歡的顏色就可以了IeG物理好資源網(wǎng)(原物理ok網(wǎng))

實(shí)現(xiàn)邏輯:IeG物理好資源網(wǎng)(原物理ok網(wǎng))

悉心的人會(huì)發(fā)覺在Plane對象中也會(huì)把材質(zhì)展示下來,這顯然是為了便捷我們快速對應(yīng)材質(zhì)并更改(當(dāng)材質(zhì)和對象好多時(shí)這樣是很便捷的)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

三、創(chuàng)建小球,并命名為,指定為0,3,0,同時(shí)我們給之前的Plane也起個(gè)名子命名為,同時(shí)根據(jù)相同的方式創(chuàng)建另一個(gè)命名為給小球著色IeG物理好資源網(wǎng)(原物理ok網(wǎng))

設(shè)置小球光滑程度(不讓它反光太厲害)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

同樣的方式地面也可以設(shè)置IeG物理好資源網(wǎng)(原物理ok網(wǎng))

最終療效如圖:IeG物理好資源網(wǎng)(原物理ok網(wǎng))

unity引擎外置了碰撞估算和測量,我們只須要指定碰撞后須要做哪些(如主角扣血或死亡)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

四、為小球添加鋼體組件(即重力、摩擦力、彈力)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

點(diǎn)擊小球?qū)ο?>Add->->IeG物理好資源網(wǎng)(原物理ok網(wǎng))

之后運(yùn)行游戲即可見到小球落在了地板上IeG物理好資源網(wǎng)(原物理ok網(wǎng))

五、給小球添加滾動(dòng)風(fēng)波IeG物理好資源網(wǎng)(原物理ok網(wǎng))

兩種方式創(chuàng)建:IeG物理好資源網(wǎng)(原物理ok網(wǎng))

法一:點(diǎn)擊小球->Add->New->填入文件名->點(diǎn)擊創(chuàng)建,即可在下創(chuàng)建對應(yīng),且早已與小球?qū)ο箨P(guān)聯(lián)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

法二:在下新建文件夾,右鍵->->C#->命名,之后將此拖到小球?qū)ο笊霞纯砂疃?span style="display:none">IeG物理好資源網(wǎng)(原物理ok網(wǎng))

注意:組件前有一個(gè)打鉤選項(xiàng),代表組件是否要使用,請保證使用時(shí)是選中狀態(tài)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

雙擊創(chuàng)建的文件即可用vs打開(確保此文件名與類名一致),代碼中start方式用于游戲開始前的初始化工作,方式用于游戲運(yùn)行中的更新操作(每幀調(diào)用一次,每秒60幀)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

添加測試代碼:IeG物理好資源網(wǎng)(原物理ok網(wǎng))

將鋼體組件與腳本關(guān)聯(lián),便于后續(xù)進(jìn)行業(yè)務(wù)邏輯的操作IeG物理好資源網(wǎng)(原物理ok網(wǎng))

方式一:使用代碼IeG物理好資源網(wǎng)(原物理ok網(wǎng))

rd = GetComponent();
IeG物理好資源網(wǎng)(原物理ok網(wǎng))

方式二、拖動(dòng)鋼體組件到簡本,即拖動(dòng)到如圖位置(但這些方式使用較少)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

之后我們再給鋼體添加一個(gè)往右的力(不指定大小默認(rèn)是1N),注意要再中添加此代碼,這樣小球就會(huì)仍然運(yùn)動(dòng)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

假如定義鋼體時(shí)設(shè)為則不會(huì)顯示對應(yīng)設(shè)置,同時(shí)也未能通過拖放綁定鋼體IeG物理好資源網(wǎng)(原物理ok網(wǎng))

為小球設(shè)置一個(gè)自定義大小的力IeG物理好資源網(wǎng)(原物理ok網(wǎng))

rd.AddForce(new Vector3(10, 0, 0));
IeG物理好資源網(wǎng)(原物理ok網(wǎng))

六、通過鼠標(biāo)控制小球的滾動(dòng)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

獲取鼠標(biāo)左右方向輸入(按下A或方向左鍵,返回0~-1之后仍然為-1;按下D或方向右鍵,返回0~1之后仍然為1;為何要有一個(gè)從0到1的過程?由于數(shù)學(xué)中物體運(yùn)動(dòng)時(shí)有一個(gè)加速度的療效)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

float h = Input.GetAxis("Horizontal");
Debug.Log(h);
IeG物理好資源網(wǎng)(原物理ok網(wǎng))

之后我們將鼠標(biāo)輸入值形參到力中IeG物理好資源網(wǎng)(原物理ok網(wǎng))

float h = Input.GetAxis("Horizontal");
rd.AddForce(new Vector3(h, 0, 0));
IeG物理好資源網(wǎng)(原物理ok網(wǎng))

同理獲取按鍵前后方向輸入(按下W或方向上鍵,返回返回0~-1,按下S或方向下鍵,返回0~1)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
rd.AddForce(new Vector3(h, 0, v));
IeG物理好資源網(wǎng)(原物理ok網(wǎng))

假如認(rèn)為小球滾動(dòng)的太慢,可以改變力的大小,如IeG物理好資源網(wǎng)(原物理ok網(wǎng))

rd.AddForce(new Vector3(h, 0, v)*10);
IeG物理好資源網(wǎng)(原物理ok網(wǎng))

若果不想用WASD去控制上下左右,可以在這兒設(shè)置:->Input->Axes->/(其中與我們代碼中floath=Input.("")的相對應(yīng))IeG物理好資源網(wǎng)(原物理ok網(wǎng))

七、調(diào)整單反位置(使視野愈發(fā)寬闊)且追隨小球IeG物理好資源網(wǎng)(原物理ok網(wǎng))

如圖,在Scene面板下調(diào)整單反的高度和旋轉(zhuǎn)度(即帶動(dòng)紅色箭頭往上一些,旋轉(zhuǎn)黃色環(huán)使單反朝下一些),之后將小球置于地板上(不要一開始增長了,注意小球本身半徑為1m,所以設(shè)座標(biāo)為0,0.5,0)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

給單反添加腳本(Add)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FollowTarget : MonoBehaviour
{
    public Transform playTransform;
    public Vector3 offset;
    // Start is called before the first frame update
    void Start()
    {
        playTransform = GameObject.Find("Player").GetComponent();//獲取小球的初始位置
        offset = transform.position - playTransform.position;//獲取初始時(shí)小球和相機(jī)間的距離
    }
    // Update is called once per frame
    void Update()
    {
        transform.position = playTransform.position + offset;//相機(jī)的位置隨小球的位置改變
    }
}
IeG物理好資源網(wǎng)(原物理ok網(wǎng))

可以看見滾動(dòng)小球時(shí)單反會(huì)隨著一起動(dòng)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

八、添加院墻避免小球落到地面以外的地方IeG物理好資源網(wǎng)(原物理ok網(wǎng))

新建Cude,起名為Wall(注意位置為0,0.5,0),并拉伸使其布滿一邊(如這兒縮放比是1,1,20),之后放在地面的各邊(位置變?yōu)椋?0,0.5,0),并設(shè)置(不光滑、顏色)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

之后我們ctrl+d進(jìn)行復(fù)制,制造另外的墻,對邊直接聯(lián)通過去即可,領(lǐng)邊設(shè)置旋轉(zhuǎn)讀書為90°即可IeG物理好資源網(wǎng)(原物理ok網(wǎng))

假如認(rèn)為邊上的棱角不好看可設(shè)值任意兩個(gè)對邊寬度為21IeG物理好資源網(wǎng)(原物理ok網(wǎng))

這樣小球在滾動(dòng)時(shí)就不會(huì)掉到外邊去了IeG物理好資源網(wǎng)(原物理ok網(wǎng))

為了便捷,我們將所有和場景有關(guān)的對象放在一個(gè)空對象下滾動(dòng)摩擦力方向判斷,便捷后期對象的管理,我們新建一個(gè)鍵盤右鍵->Empty,命名為Env,之后reset一下(這一步很重要,不做會(huì)造成場地錯(cuò)亂),之后將Wall和放在此對象之下IeG物理好資源網(wǎng)(原物理ok網(wǎng))

八、制作一個(gè)最簡單的類似貪吃蛇的游戲,小球類比貪吃蛇,六面體類比食物IeG物理好資源網(wǎng)(原物理ok網(wǎng))

新建Cude,命名為Food,縮放比為0.5,0.5,0.5,旋轉(zhuǎn)度數(shù)隨便,設(shè)置(不光滑、顏色)。創(chuàng)建預(yù)制體文件夾,將剛剛創(chuàng)建好的Food拖到該文件夾中,這樣此Food就可以作為模板多次使用且更改配置只需更改此模板即可IeG物理好資源網(wǎng)(原物理ok網(wǎng))

使用預(yù)制體創(chuàng)建相同類型游戲?qū)ο?strong>滾動(dòng)摩擦力方向判斷,技巧一:在面板,直接拖到游戲場景中;方式二:直接復(fù)制面板的Food(推薦,由于可以保留位置等屬性)(預(yù)制體和其子對象,可以理解為類和對象的關(guān)系)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

更改面板下預(yù)制體屬性會(huì)影響所有Food屬性,但更改下某Food屬性只會(huì)更改該對象的屬性IeG物理好資源網(wǎng)(原物理ok網(wǎng))

假如想讓一個(gè)子對象的屬性賦給預(yù)制體,可旋轉(zhuǎn)如圖ApplyAllIeG物理好資源網(wǎng)(原物理ok網(wǎng))

為預(yù)制體設(shè)置腳本,便于實(shí)現(xiàn)Food旋轉(zhuǎn)的功能,設(shè)置Food旋轉(zhuǎn)(1s旋轉(zhuǎn)60此,每次向下旋轉(zhuǎn)1°)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

查看文檔:Help->Unity/APIIeG物理好資源網(wǎng)(原物理ok網(wǎng))

英文文檔:Unity用戶指南2020.3(LTS)-Unity指南IeG物理好資源網(wǎng)(原物理ok網(wǎng))

為小球()設(shè)置碰撞檢查邏輯,在腳本下新建三個(gè)方式,如圖:IeG物理好資源網(wǎng)(原物理ok網(wǎng))

:碰撞發(fā)生了(即兩個(gè)物體剛才接觸)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

:碰撞進(jìn)行中(即兩個(gè)物體接觸中)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

:碰撞結(jié)束了(即兩個(gè)物體脫離接觸)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

添加一個(gè)Food標(biāo)簽,之后將預(yù)制體的Tag設(shè)置因此標(biāo)簽(設(shè)置標(biāo)簽是為了批量處理某一些相同標(biāo)簽的對象,如這兒是為了判定小球碰撞到了什么物體)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

當(dāng)小球碰撞到標(biāo)簽為Food的物體時(shí),銷毀被碰撞物體IeG物理好資源網(wǎng)(原物理ok網(wǎng))

但我們在實(shí)際操作過程中會(huì)發(fā)覺,當(dāng)碰撞后小球會(huì)被Food抵擋一下,特別影響游戲體驗(yàn),所以我們改用觸發(fā)檢查(即不會(huì)發(fā)生碰撞,小球會(huì)穿過物體)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

將預(yù)制體的碰撞器更改為觸發(fā)器,這樣就不會(huì)執(zhí)行方式了IeG物理好資源網(wǎng)(原物理ok網(wǎng))

并將邏輯代碼改為在中調(diào)用IeG物理好資源網(wǎng)(原物理ok網(wǎng))

九、計(jì)分(每吃一個(gè)Food計(jì)1分)和勝利提示IeG物理好資源網(wǎng)(原物理ok網(wǎng))

在腳本中添加計(jì)數(shù)變量IeG物理好資源網(wǎng)(原物理ok網(wǎng))

創(chuàng)建UI組件以顯示分?jǐn)?shù),右鍵->UI->->Text即可,之后切換到2D模式下,雙擊隨后,如圖,所有的UI組件就會(huì)置于下,用于UI的風(fēng)波處理(如點(diǎn)擊等)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

調(diào)整文字居中顯示IeG物理好資源網(wǎng)(原物理ok網(wǎng))

調(diào)整文本框位置為右上角(右側(cè)的設(shè)置是為了保證不管屏幕寬度多長一直都在右上角)調(diào)整字體大小和文本內(nèi)容IeG物理好資源網(wǎng)(原物理ok網(wǎng))

之后在代碼中定義一個(gè)Text對象,并在小球吃食后將分?jǐn)?shù)復(fù)制到TextIeG物理好資源網(wǎng)(原物理ok網(wǎng))

使用代碼將對象與之前創(chuàng)建的文本框綁定IeG物理好資源網(wǎng)(原物理ok網(wǎng))

創(chuàng)建勝利提示:再創(chuàng)建一個(gè)Text(同上),置于屏幕中央,調(diào)整下字體顏色,之后編碼如下IeG物理好資源網(wǎng)(原物理ok網(wǎng))

十、打包發(fā)布IeG物理好資源網(wǎng)(原物理ok網(wǎng))

File->Build->AddOpen,假如右多個(gè)場景則將其拖到大文本框中,默認(rèn)顯示第一各場景,其他場景須要代碼調(diào)整才能跳轉(zhuǎn)IeG物理好資源網(wǎng)(原物理ok網(wǎng))

選擇發(fā)布平臺(tái):IeG物理好資源網(wǎng)(原物理ok網(wǎng))

之后點(diǎn)擊Build即可,之后會(huì)生成如下文件IeG物理好資源網(wǎng)(原物理ok網(wǎng))

游戲運(yùn)行后默認(rèn)是全屏顯示IeG物理好資源網(wǎng)(原物理ok網(wǎng))

假如想窗口顯示,可在中設(shè)置IeG物理好資源網(wǎng)(原物理ok網(wǎng))

假如想在聯(lián)通端發(fā)布,須要下載相關(guān)模塊,打開,勾選相關(guān)模塊下載IeG物理好資源網(wǎng)(原物理ok網(wǎng))

后續(xù)操作同理IeG物理好資源網(wǎng)(原物理ok網(wǎng))

發(fā)表評論

統(tǒng)計(jì)代碼放這里
主站蜘蛛池模板: 云阳县| 上林县| 铜川市| 会昌县| 玉门市| 枣阳市| 浑源县| 思南县| 清水县| 林周县| 凤冈县| 洛阳市| 承德县| 平泉县| 鄱阳县| 呈贡县| 济南市| 富宁县| 新蔡县| 平塘县| 昂仁县| 军事| 绥芬河市| 太湖县| 珠海市| 莒南县| 镇坪县| 保山市| 望谟县| 荆州市| 抚州市| 大庆市| 通海县| 新沂市| 闻喜县| 衡阳市| 杨浦区| 樟树市| 临安市| 潢川县| 三江|