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取消碰撞就可以,


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

  • 相关阅读:
    WCF 第四章 绑定 在多个绑定上暴露一个服务契约
    WCF 第五章 行为 事务跨操作事务流
    WCF 第五章 导出并发布元数据(服务行为)
    WCF 第五章 行为 通过配置文件暴露一个服务行为
    WCF 第五章 不支持会话的绑定的默认并发和实例
    WCF 第五章 并发和实例(服务行为)
    WCF 第五章 行为 总结
    WCF 第四章 绑定 绑定元素
    WCF 第五章 行为 事务之选择一个事务协议OleTx 或者WSAT
    WCF 第四章 绑定 比较各种绑定的性能和可扩展性
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6823253.html
Copyright © 2011-2022 走看看