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

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

參数设置例如以下图:

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

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

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

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

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

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

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

[Unity3D]Unity3D游戏开发之连续滚动背景的更多相关文章

  1. Unity3D游戏开发之连续滚动背景

    Unity3D游戏开发之连续滚动背景 原文  http://blog.csdn.net/qinyuanpei/article/details/22983421 在诸如天天跑酷等2D游戏中,因为游戏须要 ...

  2. 《Unity3D/2D游戏开发从0到1》正式出版发行

    <Unity3D/2D游戏开发从0到1>正式出版发行 去年个人编写的Unity书籍正式在2015年7月正式发行,现在补充介绍一下个人著作.书籍信息:      书籍的名称: <Uni ...

  3. Unity3D手机游戏开发

    <Unity3D手机游戏开发> 基本信息 作者: 金玺曾 出版社:清华大学出版社 ISBN:9787302325550 上架时间:2013-8-7 出版日期:2013 年8月 开本:16开 ...

  4. 关于《Unity3D/2D游戏开发从0到1》书籍再版说明

    关于<Unity3D/2D游戏开发从0到1>第一版本在2015年7月1日全国发行,累计得到不少国内高校教师.培训机构的好评.但是由于Unity官方对于技术不断的升级与版本的快速迭代,基于U ...

  5. 《Unity3D/2D游戏开发从0到1(第二版本)》 书稿完结总结

    前几天,个人著作<Unity3D/2D游戏开发从0到1(第二版)>经过七八个月的技术准备以及近3个月的日夜编写,在十一长假后终于完稿.今天抽出一点时间来,给广大热心小伙伴们汇报一下书籍概况 ...

  6. Unity3D 入门 游戏开发 Unity3D portal game development

    Unity3D 入门 游戏开发 Unity3D portal game development 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com ...

  7. Unity3D独立游戏开发日记(二):摆放建筑物

    在沙盒游戏里,能自由建造是很重要的特点,比如说风靡全球的<我的世界>,用一个个方块就能搭建出规模宏大的世界.甚至有偏激的人说,没有自由建造,就不是一个真正的沙盒游戏.的确,沙盒游戏的魅力有 ...

  8. Unity3D独立游戏开发日记(一):动态生成树木

    目前写的独立游戏是一个沙盒类型的游戏.游戏DEMO视频如下: 提到沙盒类型的游戏,就有人给出了这样的定义: 游戏世界离现实世界越近,自由度.随机度越高才叫沙盒游戏.所谓自由度,就是你在游戏里想干啥就干 ...

  9. Unity3D小游戏开发之两个我踩过的坑

    最近在开发一个植物大战僵尸小游戏,今天写了一早上的代码,踩了两个坑,这两个坑的位置分别位于触发器和数据转换,写这篇博文以此来让其他程序员不要再去踩这两个坑. 1.我在做简易僵尸模型的时候,这个僵尸模型 ...

随机推荐

  1. Struts2入门(1)——搭建简单的环境

    步骤: 1.下载Struts2的开发包. 2.创建Web项目. 3.导入需要的jar包到项目里. 4.在web.xml文件里面配置struts2的核心控制器,也就是一个过滤器. 5.编写Action类 ...

  2. [WPF自定义控件]Window(窗体)的UI元素及行为

    1. 前言 本来打算写一篇<自定义Window>的文章,但写着写着发觉内容太多,所以还是把使用WindowChrome自定义Window需要用到的部分基础知识独立出来,于是就形成了这篇文章 ...

  3. 2. TypeScript笔记

    1. 安装node.js之后 需要测试npm命令 2.命令正常安装TypeScript 3.安装Egret egret 命令

  4. xtu summer individual 1 C - Design the city

    C - Design the city Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu D ...

  5. zoj 2723 Semi-Prime(set)

    Semi-Prime Time Limit: 2 Seconds      Memory Limit: 65536 KB Prime Number Definition An integer grea ...

  6. zoj 1763 A Simple Question of Chemistry

    A Simple Question of Chemistry Time Limit: 2 Seconds      Memory Limit: 65536 KB Your chemistry lab ...

  7. [codeforces724E]Goods transportation

    [codeforces724E]Goods transportation 试题描述 There are n cities located along the one-way road. Cities ...

  8. 【模板】manacher算法

    传送门 某篇好文章 #include <cstdio> #include <cstring> #define N 22200000 #define min(x, y) ((x) ...

  9. Codevs 1688 求逆序对

     时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 给定一个序列a1,a2,…,an,如果存在i<j并且ai>aj,那么我 ...

  10. SQL SERVER 2012 第三章 T-SQL 基本语句 having子句

    SELECT ManagerID AS Manager,COUNT(*) AS Reports FROM Human.Resources.Employee2 WHERE EmployeeID !=5 ...