亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Unity3D的VR射擊游戲的研究與實(shí)現(xiàn)

        2019-12-02 08:53:24劉雨嘉楊鍵馮夢(mèng)雨四川大學(xué)錦城學(xué)院計(jì)算機(jī)與軟件學(xué)院
        數(shù)碼世界 2019年3期
        關(guān)鍵詞:狼群羊圈牧羊人

        劉雨嘉 楊鍵 馮夢(mèng)雨 四川大學(xué)錦城學(xué)院 計(jì)算機(jī)與軟件學(xué)院

        1 引言

        近年來,隨著計(jì)算機(jī)圖形學(xué)、多媒體信息技術(shù)和計(jì)算機(jī)軟硬件的快速發(fā)展,虛擬現(xiàn)實(shí)技術(shù)逐漸在軍事、教育、游戲、建筑、醫(yī)療、工業(yè)設(shè)計(jì)等多個(gè)領(lǐng)域廣泛應(yīng)用,越來越多的人們?cè)敢鈳蟅R設(shè)備來體驗(yàn)虛擬現(xiàn)實(shí)帶來的全新體驗(yàn)。本文介紹了利用unity3d游戲引擎開發(fā)的一款休閑射擊類游戲。

        2 游戲分析

        此款射擊游戲的玩法規(guī)則是羊群從地圖的一端向著地圖的另一端的羊圈慢慢運(yùn)動(dòng),期間會(huì)有狼從山中跑出來攻擊羊群,牧羊人(第一視角)則會(huì)對(duì)攻擊羊群的狼進(jìn)行設(shè)計(jì),一次射擊未將狼擊倒,狼則會(huì)轉(zhuǎn)向攻擊牧羊人,牧羊人可通過瞬移進(jìn)行躲避。羊群在進(jìn)入羊圈之

        前被狼全部吃掉或牧羊人被狼擊中或者游戲倒計(jì)時(shí)為零則游戲結(jié)束。要達(dá)到以上內(nèi)容,需從這幾方面著手:1.地形;2.羊群;3.狼群;4.第一游戲視角(牧羊人)。下面分別介紹:

        地形:游戲設(shè)計(jì)要控制狼從出生點(diǎn)開始,狼群會(huì)向著羊群的方向運(yùn)動(dòng),這就要求狼群在尋路的過程中需要改變狼群原有的最短路線最好經(jīng)過牧羊人的初始位置,牧羊人看見狼群從而進(jìn)行射擊,從而達(dá)到消滅狼群的目的。

        羊群:在草原的一定范圍內(nèi)隨機(jī)生成,先在草地上逗留一會(huì)或吃草或環(huán)顧四周后向著羊圈運(yùn)動(dòng),這期間就可能會(huì)受到狼群攻擊。

        狼群:在山中的三個(gè)隨機(jī)位置生成,生成后會(huì)向著羊群追趕,并攻擊。

        第一游戲視角(即牧羊人):通過手柄控制槍支進(jìn)行射擊,保護(hù)羊群,驅(qū)趕狼群。

        3 游戲設(shè)計(jì)

        本次設(shè)計(jì)主要體現(xiàn)在牧羊人、狼追趕羊、羊群、牧羊人與狼群的交互以及UI 界面包括倒計(jì)時(shí)以及重新開始的設(shè)計(jì)上。 游戲開始便進(jìn)入游戲場景,牧羊人為第一視角,倒計(jì)時(shí)開始,游戲時(shí)長可以選擇。

        倒計(jì)時(shí)結(jié)束后,所有狼群和羊群停止動(dòng)作,羊圈處出現(xiàn)重新開始字樣,可槍擊中間的小羊圖案進(jìn)行重新開始。游戲過程中,羊群向著羊圈慢慢移動(dòng),狼群從山中三處隨機(jī)產(chǎn)生并向著狼群運(yùn)動(dòng),在距離羊群一定距離時(shí)發(fā)起攻擊。牧羊人可在發(fā)現(xiàn)狼群時(shí)向狼群發(fā)起攻擊。羊群中的所有羊死亡即游戲結(jié)束并游戲任務(wù)失敗或者倒計(jì)時(shí)結(jié)束也即游戲結(jié)束。

        整個(gè)游戲分為牧羊人,羊群,狼群三大模塊。

        4 游戲?qū)崿F(xiàn)

        游戲的場景設(shè)定是在一個(gè)四面環(huán)山的草原上。在場景搭建中包括牧羊人居住的帳篷,帳篷中取暖的火焰,羊圈的柵欄, 望塔等場景中的基本建筑。其中火焰是采用unity中的粒子效果實(shí)現(xiàn)的,柵欄通過3dsmax建模完成。

        4.1 狼群

        狼群在整個(gè)游戲中的主要任務(wù)是向羊群發(fā)起攻擊;

        首先涉及到尋找羊的過程:

        1.選中地形Terrain,在Inspector視圖中名稱右側(cè)的Static處選擇Navigation Static;

        2.烘培地形:(unity for Mac)Window->Navigation,進(jìn)入Navigation界面中的Object選項(xiàng),勾選Navigation Static。在進(jìn)入Bake選項(xiàng),點(diǎn)擊Bake,現(xiàn)在開始烘培地形。

        3.在狼的預(yù)制體拖入Hierarchy視圖中,選中狼的預(yù)制體添加Nav Mesh Agent組件;

        4.需要為狼添加動(dòng)畫控制器:

        5.創(chuàng)建一個(gè)動(dòng)畫控制器命名為WolfMoving;

        6.雙擊進(jìn)入動(dòng)畫控制器,找到動(dòng)畫“run”,拖入動(dòng)畫控制器編輯區(qū)中,自動(dòng)Entry會(huì)指向“idle1”,表示狼的初始動(dòng)作為奔跑的“run”,即狼群一開始生成就回開始跑向羊群。

        7.狼群如果在奔跑過程當(dāng)中遇到羊群,會(huì)發(fā)起攻擊。所以需要將動(dòng)畫“runBite”拖入動(dòng)畫控制器編輯區(qū)。

        8.狼群也不總是在奔跑,也可以速度變慢停下來四處走動(dòng)。所以需要將動(dòng)畫“walk”拖入動(dòng)畫控制器編輯區(qū)。

        9.狼群還會(huì)停下來觀察四周,查看是否適合進(jìn)攻,將動(dòng)畫“idleLookAround”拖入動(dòng)畫控制器編輯區(qū)。

        10.狼群收到牧羊人的槍擊會(huì)死亡,所以需要將動(dòng)畫“death”,拖入動(dòng)畫控制器編輯區(qū)。

        11.設(shè)置不同的狀態(tài)之間的轉(zhuǎn)換條件:

        從“run”到“runBite”:控制bool變量Attack為真,取消勾選Has Exit Time選項(xiàng);從“runBite”回到“run”:bool變量Attack為假,取消勾選Has Exit Time選項(xiàng);

        從“Any State”到“death”:設(shè)置Trriger條件Death,不勾選Has Exit Time選項(xiàng);

        12.編寫腳本:

        其中主要的部分

        一是在Start()函數(shù)中獲取游戲?qū)ο笊婕暗挠螒蚪M件:

        nav = GetComponent<NavMeshAgent>();// 獲取尋路組件

        ani = GetComponent<Animator>();// 獲取動(dòng)畫控制器組件

        以及獲取狼群尋路的目標(biāo)的位置:

        target = GameObject.FindGameObjectWithTag("Sheep").transform;//狼尋路的目標(biāo)為標(biāo)簽為“Sheep”的游戲?qū)ο?/p>

        設(shè)置Update (),開始尋路,尋路目標(biāo)為target的位置即羊群的位置:

        nav.SetDestination(target.position);

        Unity中設(shè)置:

        1.因?yàn)樾枰趲讉€(gè)不同的位置生成狼群,先創(chuàng)建一個(gè)Perfabs文件夾,將Hierarchy視圖中的狼拖入該文件夾再刪除Hierarchy視圖中的狼;

        2.創(chuàng)建三個(gè)空物體分別命名為WolfManager、Wolf1、Wolf2;

        3.編寫腳本

        實(shí)現(xiàn)邏輯為:使用一個(gè)函數(shù)由于生成狼的預(yù)制體,然后每隔一段時(shí)間重復(fù)調(diào)用這個(gè)函數(shù)

        public float spawnTime = 3f;// 延遲時(shí)間

        public GameObject wolf;// 狼的預(yù)制體

        public Transform[] spawnPoints;

        在Start()函數(shù)中實(shí)現(xiàn)重復(fù)調(diào)用生成函數(shù):

        InvokeRepeating("Spawn",2f, spawnTime);//2 秒后開始調(diào)用Spawn()函數(shù),每spawnTime即3秒后再次調(diào)用

        編寫Spawn()函數(shù)即生成函數(shù):

        intspawnPointIndex = Random.Range(0, spawnPoints.Length);

        Instantiate(wolf, spawnPoints[spawnPointIndex].position,spawnPoints[spawnPointIndex].rotation);

        4.有兩個(gè)生成點(diǎn),需要拖入兩個(gè)腳本進(jìn)入WolfManager中,每個(gè)腳本需要拖入,狼的預(yù)制體以及設(shè)置延遲時(shí)間,將Spawn Points數(shù)值設(shè)為1之后拖入生成位置(transform)即之前設(shè)置的Wolf1或Wolf2。

        4.2 牧羊人

        牧羊人在整個(gè)游戲里的作用是保護(hù)羊群擊殺狼群。牧羊人為游戲的第一視角利用的是SteamVR中的CameraRig實(shí)現(xiàn)的。在CameraRig中的Controller(right)下用槍的模型替換Model;

        大多數(shù)時(shí)間牧羊人不會(huì)受到狼群攻擊,因?yàn)槟裂蛉丝梢栽谡麄€(gè)場景中瞬移,速度較快。關(guān)于在場景中的瞬移需要用到SteamVR和VRTK的集成。

        4.3 羊群

        羊群在這個(gè)游戲中屬于被牧羊人保護(hù),受到狼群追趕,最終目的是回到羊圈里。為了游戲的真實(shí)性,實(shí)現(xiàn)在草原上會(huì)放置十幾個(gè)羊的預(yù)制體,讓玩家能看到羊在草原上吃草的情形,

        首先需要為其添加動(dòng)畫控制器,其設(shè)置動(dòng)畫控制器過程與狼類似,這里不再贅述。

        4.4 游戲的結(jié)束以及重新開始

        這一部分即時(shí)游戲的UI部分,是關(guān)于游戲結(jié)束與游戲重新開始的設(shè)置:

        1.在Unity中的Hierarchy視圖中創(chuàng)建一個(gè)空物體重命名為GameManager,用于管理整個(gè)UI;

        2.選中需要顯示倒計(jì)時(shí)的位置( 望塔),右鍵單擊->UI->Canvas,在UI下創(chuàng)建一個(gè)空物體命名為restartPos即重新開始圖樣出現(xiàn)的位置,重置其transform。在Canvas下分別創(chuàng)建time、timetext、score、scoretext并設(shè)置;

        3.在GameManager腳本中:

        設(shè)置Unity初始值:包括分?jǐn)?shù),記錄剩余的時(shí)間,重啟游戲圖標(biāo)產(chǎn)生的位置,判斷游戲是否結(jié)束等參數(shù)。

        在Start()中調(diào)用ini()函數(shù)

        編寫包括增加分?jǐn)?shù)函數(shù),初始化游戲函數(shù),游戲結(jié)束函數(shù),重新計(jì)數(shù)函數(shù),重新開始游戲函數(shù)。

        最后設(shè)置FixedUpdate()中通過判斷IsGameOver是否為真,如果為真直接跳出函數(shù),如果為假,調(diào)用onGameOver()函數(shù)。

        4.將GameManager腳 本 拖 入Hierarchy視 圖 中 的GameManager上,將 time、timetext、score、scoretext拖入對(duì)應(yīng)的文件框中。

        5 結(jié)束語

        VR技術(shù)是仿真技術(shù)的一個(gè)重要方向,是仿真技術(shù)與計(jì)算機(jī)圖形學(xué)人機(jī)接口技術(shù)多媒體技術(shù)傳感技術(shù)網(wǎng)絡(luò)技術(shù)等多種技術(shù)的集合,是一門富有挑戰(zhàn)性的交叉技術(shù)前沿學(xué)科和研究領(lǐng)域。本文介紹了基于Unity3D的VR射擊游戲的研究與開發(fā)過程,包括基于Unity的場景設(shè)置和腳本的掛載。感知是指理想的VR應(yīng)該具有一切人所具有的感知。此射擊游戲利用了人的視覺的、運(yùn)動(dòng)等感知,是游戲更具真實(shí)感。但是這款游戲還有待改進(jìn),未來工作是優(yōu)化游戲代碼和模型,希望能給玩家?guī)砀诱鎸?shí)的游戲體驗(yàn)。

        猜你喜歡
        狼群羊圈牧羊人
        去可可托海,做一個(gè)牧羊人
        金橋(2021年3期)2021-05-21 08:05:54
        德國老人 用40年融入狼群
        樂活老年(2019年5期)2019-07-25 01:18:18
        立體羊圈
        牧羊人
        亡羊補(bǔ)牢
        狼群之爭
        《重返狼群》
        農(nóng)莊里的羊圈
        “6個(gè)羊圈”
        牧羊人
        久精品国产欧美亚洲色aⅴ大片 | 亚洲国产成人AⅤ片在线观看| 欧洲vat一区二区三区| 校园春色日韩高清一区二区| 亚洲a∨好看av高清在线观看| 色爱区综合五月激情| 亚洲日韩中文字幕在线播放 | 野花社区www高清视频| 亚洲综合欧美色五月俺也去| 国产一区二区三区探花| 日本在线观看不卡| 无码一区二区三区老色鬼 | 国产亚洲精品综合一区二区| 女高中生自慰污免费网站| 亚洲av永久无码精品国产精品 | 国产69精品久久久久久久| 森中文字幕一区二区三区免费| 国产精品日本一区二区三区| 亚洲电影中文字幕| 国产又黄又大又粗视频| 丰满岳乱妇一区二区三区| 免费亚洲一区二区三区av| 精品黑人一区二区三区久久hd| 国产av无码专区亚洲草草| 五月天综合在线| 国产无遮挡无码视频免费软件 | 亚洲色欲色欲www在线观看| 亚洲成a∨人片在线观看无码| 国产午夜福利小视频在线观看 | 国产性生大片免费观看性| 超碰人人超碰人人| 日本一区二区在线免费视频| 国产一区二区三区在线影院| 国产精品一区二区三密桃| 性做久久久久久久| 亚洲饱满人妻视频| 18禁超污无遮挡无码免费游戏| 丁字裤少妇露黑毛| 又大又粗欧美黑人aaaaa片| 国产精品国产三级国产av18| 极品少妇一区二区三区|