大家好,歡迎大家關注由我為大家帶來的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,這個值是第一張圖片離開攝像機視野的臨界值,這個值怎麼得到呢,大家可以將遊戲視圖改為標準視圖,然後用滑鼠拖動第一個背景圖片來擷取,這裡就不再多說了,最後來看下遊戲運行效果吧
以後的效果示範都會採用動畫示範,希望大家喜歡,謝謝!