[Unity3D]Unity3D遊戲開發之連續滾動背景

來源:互聯網
上載者:User

         大家好,歡迎大家關注由我為大家帶來的Unity3D遊戲開發系列文章,我的部落格地址為:http://blog.csdn.net/qinyuanpei。

        在諸如天天跑酷等2D遊戲中,由於遊戲需要表現出運動的感覺,通常都會使遊戲背景連續迴圈滾動以增強視覺效果,那麼今天,博主就來帶領大家一起來實現連續滾動背景吧!

         首先來講述一下原理,準備兩張連續的圖片(博主這裡使用了一張圖片,好吧,我偷懶了),我們使用正交投影的攝像機對準第一張背景,然後使用指令碼讓圖片自右向左開始移動,當第一張圖片移出攝像機的視野時,第二張圖片立即接在第一張圖的後面,繼續向左移動,而當第二張圖片移出攝像機視野時,第一張圖片會立即接在第二張圖片的後面,如此周而復始,就實現了連續滾動背景。好了,下面,我們一起開始,首先我們建立一個空的項目,我們需要加入一個Plane並將其命名為Bg0、一個 平行光源。參數設定如:


       接下來,我們 將 實現準備好的背景圖片拖放到Bg0上,然後調整攝像機的視野大小,使第一張圖片恰好位於其視野中,然後我們將Bg0複製出一個副本並命名為Bg1,調整其位置,使其接在第一張圖片的後面,此時,情境效果如:

      

         好了,接下來,我們開始編寫指令碼,代碼十分簡單:

using UnityEngine;using System.Collections;public class BGControll : MonoBehaviour {//Move Speed;private float mSpeed=3.0F;void Start () {}void Update () {   //Translate form right to left   transform.Translate(Vector3.right * Time.deltaTime * mSpeed);   // If first background is out of camera view,then show sencond background   if(transform.position.x<=-11.8F)   {  //We can chenge this value to reduce the wdith between 2 background  transform.position=new Vector3(11.8F,transform.position.y,transform.position.z);   }}}

           我覺得大家對代碼應該不會有什麼疑問吧,唯一的疑問可能來自於-11.8,這個值是第一張圖片離開攝像機視野的臨界值,這個值怎麼得到呢,大家可以將遊戲視圖改為標準視圖,然後用滑鼠拖動第一個背景圖片來擷取,這裡就不再多說了,最後來看下遊戲運行效果吧


       以後的效果示範都會採用動畫示範,希望大家喜歡,謝謝!



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.