zoukankan      html  css  js  c++  java
  • [Unity3D]Unity3D游戏开发之连续滚动背景

     在诸如天天跑酷等2D游戏中。因为游戏须要表现出运动的感觉。通常都会使游戏背景连续循环滚动以增强视觉效果,那么今天。博主就来带领大家一起来实现连续滚动背景吧。

             首先来讲述一下原理。准备两张连续的图片(博主这里使用了一张图片,好吧,我偷懒了),我们使用正交投影的摄像机对准第一张背景,然后使用脚本让图片自右向左開始移动,当第一张图片移出摄像机的视野时。第二张图片马上接在第一张图的后面,继续向左移动,而当第二张图片移出摄像机视野时,第一张图片会马上接在第二张图片的后面,如此周而复始,就实现了连续滚动背景。好了,以下,我们一起開始,首先我们创建一个空的项目,我们须要增加一个Plane并将其命名为Bg0、一个 平行光源。

    參数设置例如以下图:


           接下来。我们 将 实现准备好的背景图片拖放到Bg0上,然后调整摄像机的视野大小,使第一张图片恰好位于其视野中,然后我们将Bg0复制出一个副本并命名为Bg1。调整其位置,使其接在第一张图片的后面,此时,场景效果例如以下图:

          

             好了。接下来。我们開始编写脚本。代码十分简单:

    1. using UnityEngine;  
    2. using System.Collections;  
    3.   
    4. public class BGControll : MonoBehaviour {  
    5.       
    6.     //Move Speed;  
    7.     private float mSpeed=3.0F;  
    8.     void Start ()   
    9.     {  
    10.       
    11.     }  
    12.       
    13.       
    14.     void Update ()   
    15.     {  
    16.        //Translate form right to left  
    17.        transform.Translate(Vector3.right * Time.deltaTime * mSpeed);  
    18.        // If first background is out of camera view,then show sencond background  
    19.        if(transform.position.x<=-11.8F)  
    20.        {  
    21.           //We can chenge this value to reduce the wdith between 2 background  
    22.           transform.position=new Vector3(11.8F,transform.position.y,transform.position.z);  
    23.        }  
    24.     }  
    25. }  

               我认为大家对代码应该不会有什么疑问吧,唯一的疑问可能来自于-11.8。这个值是第一张图片离开摄像机视野的临界值,这个值怎么得到呢。大家能够将游戏视图改为标准视图,然后用鼠标拖动第一个背景图片来获取,这里就不再多说了,最后来看下游戏执行效果吧。


           以后的效果演示都会採用动画演示,希望大家喜欢,谢谢!

           补充内容:经过博主自己研究,假设在画面滚动的时候出现缝隙,这是因为两个画面在运动过程中相互碰撞导致的,所以我们仅仅须要将其碰撞器勾选isTrigger取消碰撞就可以,


    转载:本文出处:原文出处

  • 相关阅读:
    AtCoder Grand Contest 005F
    AtCoder Regular Contest 095E
    插头DP--URAL1519Formula 1
    「CodePlus 2018 3 月赛」白金元首与莫斯科
    hdu 5795
    hdu 5800
    HDU5802
    hdu 5787 数位dp,记忆化搜索
    poj 1015
    hdu 3092 (简化的素数打表+dp+log的用法) ps(开数组和预处理时数组要大点处理多一点。。。)
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6823253.html
Copyright © 2011-2022 走看看