版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、Tutorial: How to Make Flappy Bird in Unity3D 創(chuàng)建一個工程 菜單File-New Project 管理你的工程 菜單Assets-Create-Folder,創(chuàng)建四個文件夾 “Prefabs”“Scenes”“Scripts”“Textures”. Prefabs In Unity, a Prefab is an object that can be reused and created such as bullets, enemies, or walls. Scenes A scene is like a level of a game. Scri
2、pts This folder will hold all the code. Textures All the images used in the game. In 2D gaming, these images are called “Sprites”.導(dǎo)入圖片資源 方法一:如圖所示 方法二:Assets-Import new asset選擇要導(dǎo)入的圖片設(shè)置背景 檢查一下,將導(dǎo)入的圖片都放到Textures目錄下面 打開Textures目錄,然后選擇background圖片,將其放到場景中, 方法一:拖動圖片background到層次視圖 方法二:拖動圖片到scene視圖 選中層次視圖中
3、的background,然后看Inspector視圖里邊,position是0,0,0,scale為2.5,2.5,1;設(shè)置角色 同樣的方法,從Project視圖,Assets的Textures目錄選擇player圖片,將其放到場景中,然后調(diào)整起position為(-2,1,-1) 注意這里z為-1,可保證小飛機在背景圖片前面 接下來,給小飛機添加剛體組件RigidBody2D組件,具體方法為, 從層次視圖中選中player,然后點擊菜單Component,選擇Physics2D,選擇RigidBody2D 注:剛體組件賦予對象重力等物理屬性。 此時點擊unity的播放按鈕,可以看到小飛機自由
4、下落。角色控制 對角色進行玩家操作控制 Project面板選中Scripts文件夾,Create一個javascript腳本文件,名為Player.js#pragma strictvar jumpForce = Vector2(0,300);function Start () function Update () if (Input.GetKeyUp(space)rigidbody2D.velocity = Vector2.zero;rigidbody2D.AddForce(jumpForce); 變量jumpForce: stores the force applied to the pla
5、yer when we jump. 把Player.js腳本賦予Player游戲?qū)ο?點擊unity播放按鈕,游戲運行,小飛機下降,點擊空格鍵,小飛機往上跳一下。創(chuàng)建障礙物 從Project視圖,Assets的Textures目錄選擇rock和rockdown圖片,將其拖放到場景中, change their X and Y scales to be 2.5. 調(diào)整這對圖片的位置,比如分別為(12,5,0)和(12,-5,0),如下圖所示 整理障礙物 創(chuàng)建一個空游戲?qū)ο?,點擊GameObject菜單,選擇Create Empty,層次視圖中出現(xiàn)一個名為GameObject的空對象,改名為Roc
6、kPair 在層次視圖中,將rock和rockdown拖放到RockPair上,使其成為rockpair的下層。障礙物的移動 給RockPair添加RigidBody2D組件,選中Is Kinematic選項(rockpair對象將不會因重力下降) 在Scirpts創(chuàng)建一個腳本Obstacle.js,并將其賦予對象RockPair#pragma strictvar velocity = Vector2(-4, 0);function Start () rigidbody2D.velocity = velocity;function Update () 點擊untiy播放按鈕,將看到障礙物從屏幕
7、右側(cè)往左側(cè)移動通過游戲過程中產(chǎn)生障礙 制作障礙物prefab(預(yù)設(shè)) drag the RockPair Object into the Prefabs folder. This turns RockPair into a Prefab Delete the RockPair object that is in the scene. 場景中添加一個空對象(create empty),改名為Scripts,并為其創(chuàng)建一個腳本Generate.js#pragma strictvar rocks:GameObject;function Start () InvokeRepeating(CreateO
8、bstacle, 1f, 1.5f);function Update () function CreateObstacle()Instantiate(rocks); the InvokeRepeating method. This will call a specific function once every several seconds. The first parameter is a string with the name of the method to call. The second is the number of seconds to delay these repeat
9、ed calls. And the third parameter is the number of seconds between method calls. the CreateObstacle method, we use Instantiate, a method that will generate a new prefab to the scene. 將Generate腳本賦予Scripts 層次視圖中選擇Scripts對象,其Inspector視圖如右上圖 通過拖拽操作將Generate腳本組件的Rocks變量賦值為RockPair預(yù)設(shè),右下圖 點擊播放按鈕,看效果 還需要碰撞檢
10、測 碰撞器collider 碰撞處理碰撞檢測處理 添加碰撞器Collider 層次視圖選擇Player對象,添加碰撞器 菜單Component, 選擇Physics 2D,選擇Box Collider 2D Project面板,選擇Prefabs文件夾中的RockPair預(yù)設(shè),點擊右邊小三角,打開,然后rock和rockdown逐一添加Polygon Collider 2D組件 點擊播放按鈕,看碰撞效果 小飛機碰到障礙,游戲重新開始 修改Player.js腳本#pragma strictvar jumpForce = Vector2(0,300);function Start () funct
11、ion Update () if (Input.GetKeyUp(space)rigidbody2D.velocity = Vector2.zero;rigidbody2D.AddForce(jumpForce);/ Die by being off screenvar screenPosition = Camera.main.WorldToScreenPoint(transform.position);if (screenPosition.y Screen.height | screenPosition.y 0)Die();/ Die by collisionfunction OnColli
12、sionEnter2D(other:Collision2D)Die();function Die()Application.LoadLevel(Application.loadedLevel); 點擊播放按鈕,運行看效果 考慮繼續(xù)完善 障礙的位置可隨機調(diào)整 計分障礙位置隨機 考慮修改每個障礙位置的y坐標(biāo) 在Obstacle腳本的Start()函數(shù)中添加一行transform.position.y += Random.Range(-2,2);計分 如何計分? 撞到障礙之前走的越遠越好 成功經(jīng)過障礙的數(shù)目 具體實現(xiàn) 每產(chǎn)生一個障礙,記一分 計時,每隔1.5秒記一分 修改Generate腳本#pra
13、gma strictvar rocks:GameObject;var score=0;function Start () InvokeRepeating(CreateObstacle, 1f, 1.5f);function Update () function CreateObstacle()Instantiate(rocks);score+;function OnGUI () GUI.color = Color.black;GUILayout.Label( Score: + score.ToString(); OnGUI()函數(shù) OnGUI is called for rendering a
14、nd handling GUI events. your OnGUI implementation might be called several times per frame (one call per event)如何繼續(xù)完善? 及時銷毀無效的障礙 添加多種障礙 添加游戲開始界面,添加新的關(guān)卡 關(guān)于銷毀障礙 在Obstacle.js中的Start()函數(shù)中,加入Destroy(gameObject,6)即可 添加多種障礙在Generate.js腳本中, 將var rocks:GameObject;改為var rocks:GameObject; Instantiate(rocks);改為I
15、nstantiate(rocksRandom.Range(0,rocks.Length); 在Unity編輯器中,修改rocks數(shù)組變量,并進行賦值即可。 添加一個新的場景,并保存命名為Title 在場景中添加必要的背景圖片 在場景中創(chuàng)建一個空的游戲?qū)ο螅–reate Empty),改名為Title 創(chuàng)建一個腳本,改名為title,并讓它成為Title對象的腳本組件,編輯title.js,添加如下函數(shù):function OnGUI()if (GUI.Button(Rect(Screen.width/2,Screen.height/2,50,20),Start)Application.LoadLevel(s1);if (GUI.Button(Rect(Screen.width/2,Screen.height/2+3
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房地產(chǎn)借款合同質(zhì)押協(xié)議3篇
- 2025版辦公室裝修材料采購及施工監(jiān)理合同范本3篇
- 2025年度環(huán)保設(shè)備采購質(zhì)保金與履約保證金協(xié)議3篇
- 二零二五年度保險合同-保險范圍與保險金額2篇
- 2025年度新能源發(fā)電項目投資合作協(xié)議2篇
- 2025年同學(xué)聚會班長致辭模版(2篇)
- 2025年度網(wǎng)絡(luò)系統(tǒng)建設(shè)與維護協(xié)議3篇
- 觀察花的課程設(shè)計
- 車間質(zhì)檢職責(zé)內(nèi)容模版(2篇)
- 2025年信息化工作個人工作總結(jié)(2篇)
- 胸腔積液-課件
- 公司設(shè)備轉(zhuǎn)讓合同協(xié)議書
- 2023年全國統(tǒng)一建筑工程預(yù)算工程量計算規(guī)則完整版
- cn.7a一種醬香型大曲酒固態(tài)發(fā)酵的生態(tài)控制方法
- TLFSA 003-2020 危害分析與關(guān)鍵控制點(HACCP)體系調(diào)味面制品生產(chǎn)企業(yè)要求
- LY/T 2244.3-2014自然保護區(qū)保護成效評估技術(shù)導(dǎo)則第3部分:景觀保護
- GB/T 8491-2009高硅耐蝕鑄鐵件
- 供水安全與搶修
- DB31 595-2021 冷庫單位產(chǎn)品能源消耗指標(biāo)
- 第三章果蔬采后生理課件
- 【英語手寫體】26英文字母手寫體描紅書寫字帖
評論
0/150
提交評論