unity3d游戲課程設(shè)計(jì)報告報告_第1頁
unity3d游戲課程設(shè)計(jì)報告報告_第2頁
unity3d游戲課程設(shè)計(jì)報告報告_第3頁
unity3d游戲課程設(shè)計(jì)報告報告_第4頁
unity3d游戲課程設(shè)計(jì)報告報告_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、游戲程序設(shè)計(jì)課程報告課程: Unity3D課程設(shè)計(jì)題目:探索迷宮班 級:學(xué)號:姓 名:日 期: 2021.12摘要UNITY游戲是一種新型的IT引擎.我們研究主要內(nèi)容是 UNITY 游戲設(shè)計(jì)方法.指以游戲客戶端軟件為窗口的旨在實(shí)現(xiàn)娛樂、休閑、 交流和取得虛擬成就的具有可持續(xù)性的個體性單人游戲.本報告主要講述了這個小游戲的設(shè)計(jì)思路及初步使用Unity3D軟件的感受和總結(jié).設(shè)計(jì)過程中,首先建立白己想要的模型,然后在 此根底上進(jìn)行需求迭代,詳細(xì)設(shè)計(jì)時不斷地修正和完善,經(jīng)過測試階 段反復(fù)調(diào)試和驗(yàn)證,最終形成到達(dá)設(shè)計(jì)要求的小游戲.基于UNITY®礎(chǔ),構(gòu)建了一個益智游戲風(fēng)格的游戲, 并有主角與

2、關(guān)卡、游戲邏輯、游戲環(huán)境界面等設(shè)計(jì),使得玩家可以在場景中進(jìn)行 尋找神龕的冒險游戲.本游戲的限制很簡單,及用鍵盤的 WAS丞SPACE:個限制人物 的上下左右跳躍五個方向,用戶根據(jù)白己的戰(zhàn)略方式選擇尋找油桶點(diǎn) 亮煤油燈然后尋找神龕.二、概述UNITY游戲程序設(shè)計(jì)?這一課程以大作業(yè)形式進(jìn)行考核,能更好地鍛煉學(xué)生綜合運(yùn)用本課程所授知識的水平. 大作業(yè)主要內(nèi)容為設(shè) 計(jì)完成面向某一主題內(nèi)容的游戲演示程序.白選游戲主題,并根據(jù)所選定的主題內(nèi)容設(shè)計(jì)一個典型的游戲場 景及玩家邏輯,其中包含主角與關(guān)卡,游戲邏輯,游戲環(huán)境界面與交 互過程等的設(shè)計(jì);開發(fā)完成與設(shè)計(jì)相符的游戲 Demo要求使用Unity3D游戲開發(fā)軟

3、件實(shí)現(xiàn)上述游戲Demo三、具體要求1、每人單獨(dú)完成,特殊可由多人合作完成.2、游戲主題白擬.3、根據(jù)所設(shè)游戲主題、場景及玩家邏輯,實(shí)現(xiàn)完成相應(yīng)的游戲 Demo并撰寫設(shè)計(jì)開發(fā)報告.四、設(shè)計(jì)主題基于視頻教程“平衡球的根底,構(gòu)建了一個益智游戲風(fēng)格的游 戲,并有主角與關(guān)卡一關(guān)、游戲邏輯觸碰油桶、神龕、游戲環(huán) 境界面通道等設(shè)計(jì),使得玩家可以在場景軌道中進(jìn)行吃油桶、神 龕的冒險游戲.五、設(shè)計(jì)思路本游戲以幾個環(huán)環(huán)相扣的通道作為人物運(yùn)動的軌跡, 在通道上分 別設(shè)計(jì)一些油桶,通過電腦上的 WASD SPACE別限制人物的運(yùn)動方 向;如果人物運(yùn)動位置沒有偏離所設(shè)計(jì)通道平面而且碰觸到油桶,即算初步成功,當(dāng)人物吃掉所

4、設(shè)計(jì)的油桶,油燈就會點(diǎn)亮.當(dāng)人物找到 并吃掉所設(shè)計(jì)的神龕,就會通過關(guān)卡.本報告主要講述了這個小游戲的設(shè)計(jì)思路及初步使用Unity3D 軟件的感受和總結(jié).設(shè)計(jì)過程中,首先建立白己想要的模型,然后在 此根底上進(jìn)行需求迭代,詳細(xì)設(shè)計(jì)時不斷地修正和完善,經(jīng)過測試階 段反復(fù)調(diào)試和驗(yàn)證,最終形成到達(dá)設(shè)計(jì)要求的小游戲.六、具體構(gòu)建步驟1、場景素材的添加,通過3DMAXt模完成素材的創(chuàng)立fS Bpam.FBX Si Boulder.FBX Boulder_01.FBX nfe Lantern.FBX 景 Lantern Fuel. FBX® Light.fbx2、在UNITY3D完成素材的組裝3、為

5、場景貼圖.貼圖時,根據(jù)道具的風(fēng)格,選擇地面與墻的BSP貼圖,每次貼圖選擇一個平面的一個面.Boulder Boulder 01 dmlishiMaterijlN心 II占e電qiang2_Ma_.4、創(chuàng)立預(yù)組件« 一 Matei ilsHoldSoundfifl TEXTURE- prefabsW scense卜事 Standard As5、將創(chuàng)立并且組裝的模型添加到預(yù)組件中,并且通過復(fù)制完成 整個游戲場景的拼接CJ_Enviranment PFBONE PFB_ONE1 PFB_twoA PFB_threeA PFB_ONE PFB_two2 PFB_QN& PFB_ONE

6、A PFBJzhr ee PFB_ONEAPFBQNE PFB_twoA PFB_DNE卜 PFB_ONEkPFB_ONE PFB_ONE PFB_ONE PFB_QNE PFB tWQ6、導(dǎo)入UNITY的人物限制組件.,Standard Assets Character Controllers7、在場景中添加細(xì)節(jié)七、程序腳本1、游戲開始觸發(fā)器程序(main):using UnityEngine;using System.Collections;public class main : MonoBehaviour (public Rect windowRect = new Rect (20, 2

7、0, 120, 50);/ Use this for initializationvoid Start () (/ Update is called once per framevoid Update () (void OnGUI() windowRect = GUILayout .Window( 0, windowRect, DoMyWindow, "Find Shrine" ); void DoMyWindow(int windowID) if ( GUILayout .Button ( "Game Start" ) ( Application .L

8、oadLevel ( "testgame_02"); print ( "Got a click" );2、人物所觸發(fā)的事件:usingusingUnityEngine;System.Collections;publicclass inventory : publicpublicpublicpublicpublicpublicpublicpublicMonoBehaviour ( int fuelAmount= 0;AudioClip fuelcollectedsound;Texture2D hudFuelAmount;GUITexture fuelAmo

9、untHUDGUI;Light floatlanternlight;origfueltimer= 30.0f ;floatfloatfueltimer= 0.0f ;origfuelGUItimer= 30.0f ;fuelGUItimer= 0.0f ; int maxfuelAmount;floatpublicpublic/public Rect windowRect = new Rect(20, 20, 120, 50);/ Use this for initializationvoid Start () (fuelAmount =0;lanternlight = GameObject

10、.Find ( "Lantern" ).GetComponent < Light > ();maxfuelAmount = hudFuelAmount .Length; / Update is called once per framevoid Update () ( if (fueltimer >0)(fueltimer -=Time.deltaTime ;if (fueltimer <0.0f )(lanternlight .light .intensity =0.0f ;if (fuelGUItimer >0.0f &&

11、fuelAmount >0) ( fuelGUItimer -= Time.deltaTime ;)if (fuelGUItimer <0.0f ) (removeGUIfuel ();)void FuelPickUp()if (fuelAmount < maxfuelAmount -1) fueltimer += origfueltimer;AudioSource .PlayClipAtPoint (fuelcollectedsound, transform.position);fuelAmount +;fuelAmountHUDGUI.texture = hudFuelA

12、mount fuelAmount;lanternlight .light .intensity =1.0f ;if (fuelGUItimer =0.0f ) fuelGUItimer = origfuelGUItimer;)void removeGUIfuel()if (fuelAmount >0) fuelAmount -;fuelAmountHUDGUI.texture = hudFuelAmount fuelAmount; fuelGUItimer =origfuelGUItimer ;)3 、油燈被觸發(fā)時的事件:using UnityEngine;using System.Co

13、llections;public class LanternFuel :MonoBehaviour/ Use this for initializationvoid Start ()/ Update is called once per frame void Update () ()void OnTriggerEnter( Collider player)(player .gameObject .SendMessage ( "FuelPickUp");Destroy ( this .gameObject );)4 、游戲開始時隨機(jī)出現(xiàn)人物與神龕的位置:using Unity

14、Engine;using System.Collections;public class gamestate : MonoBehaviour(private GameObject player;private playerspawncontroller playerspawnCTRL;privateGameObjectrandPlayerSpawn;privateGameObjectShrine;privateShrinespawnshrinespawnCTRL;privateGameObjectrandShrinespawn;void Awake() (player = GameObject

15、.FindWithTag ( "Player");playerspawnCTRL = GameObject .FindGameObjectWithTag( "PlayerSpawnCTRL" ).GetComponent <playerspawncontroller > ();Shrine = GameObject .FindWithTag ( "Shrine" );shrinespawnCTRL = GameObject .FindGameObjectWithTag("shrinespawnCTRL"

16、 ).GetComponent <Shrinespawn > ();)/ Use this for initializationvoid Start () (int randNum = 0;int randNum1 = 0;randPlayerSpawn = playerspawnCTRL.GetRandomPlayerSpawn (randNum);SpawnPlayer ();randShrinespawn = shrinespawnCTRL .GetRandomshrineSpawn (randNum1);Spawnshrine ();/ Update is called o

17、nce per frame void Update () ) void SpawnPlayer() player.transform.position = randPlayerSpawn .transform .position;Debug .Log ("你出生在"+randPlayerSpawn .name );) void Spawnshrine() Shrine .transform .position = randShrinespawn .transform .position;Debug .Log (神龕出生在"+randShrinespawn .nam

18、e );) )5、接觸到油桶后油桶會消失using UnityEngine;using System.Collections;public class LanternFuel :MonoBehaviour/ Use this for initializationvoid Start () )/ Update is called once per framevoid Update ()void OnTriggerEnter( Collider player)player .gameObject .SendMessage ( "FuelPickUp");Destroy ( this .gameObject );)八、游戲規(guī)那么游戲規(guī)那么模塊也是本文的一個重點(diǎn)局部,需要實(shí)現(xiàn)人物接觸油桶 游戲的根本規(guī)那么,因此,首先要解決的問題是觸發(fā)問題,根據(jù)通道的 大小制定油桶的地點(diǎn),然后要解決的問題是人物與油桶的接觸過程, 保證人物接觸油桶后油桶消失;如果能尋找到神龕,那么游戲勝利.九、用戶限制本游戲的限制很簡單,及用鍵盤的 WAS®個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論