刚学unity3d,跟着仿作了flappy bird,记下一些琐碎的心得!
生活随笔
收集整理的這篇文章主要介紹了
刚学unity3d,跟着仿作了flappy bird,记下一些琐碎的心得!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、關于場景,即scene。
一個正常的游戲至少要有三個場景,即菜單(或者文件夾)場景、游戲關卡場景、游戲結束場景。它們一般統一放在project文件夾下scene文件夾(自己創建)中,方便管理。
1.1場景切換
要實現游戲的正常進行,須要場景的切換。比方,從開始菜單怎樣進入到游戲中。開始菜單
關卡畫面
這些須要兩步準備: 1、設置
要將場景放在托放在上圖所看到的位置,做好標記。
2、相關代碼編寫 //材質public Texture startButton;public Texture rankButton;void OnGUI(){//開始菜單,開始游戲,rect前一定要有new,且rect參數為位置左、上,button大小if (GUI.Button (new Rect (100, 250, 135, 75), startButton)) {Application.LoadLevel("Start");}GUI.Button(new Rect(460, 250, 135, 75), rankButton);if (GUI.Button (new Rect (20, 20, 60, 30), "exit")) {Application.Quit();}}
場景切換要用到函數Application.LoadLevel("Start"),Start是要切換場景的名稱,當然這里也能夠用數字1來取代,由于上圖中地Start的標號就是1。
場景的切換通常是伴隨著事件的發生,上面是因為發生了點擊button(startButton)的事件才引起場景切換。
注意
if (GUI.Button (new Rect (100, 250, 135, 75), startButton)){}用于推斷是否點擊button,
而GUI.Button (new Rect (100, 250, 135, 75), startButton);則是產生button。
1.2什么導致切換
一般而言,有點擊button、另外一些觸發器、碰撞器也能導致切換(臨時學到這里) //小鳥與管道碰撞則游戲結束void OnCollisionEnter(Collision other){if(other.gameObject.tag == "Player"){GameManager._intance.GameState=GameManager.GAMESTATE_END;audio.Play();Application.LoadLevel("End");if(other.gameObject.tag == "projectile"){}}}
OnCollisionEnter(Collision c)函數用于檢測碰撞器發生反應,類似的有OnCollisionStay、OnCollisionExit,分別表示剛接觸碰撞器、處于碰撞器中、離開碰撞器,這樣就能依據情況作出對應的推斷。這里小鳥、管道都是碰撞器(好像至少有一個必須加剛體組件rigidbody),當他們碰撞時,作出對應反應: 1、首先推斷是什么碰撞管道(代碼屬于管道的部分),就須要用到tag,用于區分對象。
2、之后進行相關處理,這里audio.play用于播放音樂,須要事先要在管道上加入組件audioSource,并綁定音樂(由于代碼是屬于管道)。 LoadLevel()y切換場景。
2、物體移動
1、小鳥的移動
bird有剛體組件如上圖 public void getLife(){rigidbody.useGravity=true;this.rigidbody.velocity = new Vector3(2,0,0);}
初始時沒有重力(由于這里設定剛進入游戲時小鳥沒有動作,點擊鼠標后才激活),getlife函數的rigidbody.useGravity=true使小鳥開啟了重力,之后的this.rigidbody.velocity = new Vector3(2,0,0);給了它水平(x軸)方向的初速度。velocity描寫敘述角色當前的相對速度。 <pre name="code" class="csharp"> //上跳void birdJump(){if(Input.GetMouseButton(0) ){// left mouse button downaudio.Play();Vector3 vel2 = this.rigidbody.velocity;this.rigidbody.velocity = new Vector3(vel2.x,5,vel2.z);}}
左鍵按下實現上跳,首先獲得當前速度,然后改變y方向(實際情況各不同樣)的速度,實現向上的動作。
這樣結合上面的代碼就能實現小鳥的運動。
2、水平移動的實現
void Update () {//依據分數來決定子彈的出現if (GameManager._intance.score >= minScore) renderer.enabled = true;float outToMove = speed * Time.deltaTime;transform.Translate(Vector3.up*outToMove); //又一次出現if (transform.position.x <= (birdTransform.position.x-2.0f)) {setPosition();}} float outToMove = speed * Time.deltaTime;transform.Translate(Vector3.up*outToMove);這兩行代碼實現某一軸方向的物體的移動,詳細的查資料吧。轉載于:https://www.cnblogs.com/mfrbuaa/p/4284788.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的刚学unity3d,跟着仿作了flappy bird,记下一些琐碎的心得!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓APP_ 布局(3) —— Fram
- 下一篇: 安卓APP_ 布局(4) —— Tabl