【Unity3D】连续滚动的背景

来源:互联网 发布:sai mac版打不开 编辑:程序博客网 时间:2024/05/16 05:22

在一些跑酷、赛车游戏之中,连续滚动的背景很常见。其实来来去去就是2张图片在不停变换。制作思想就是与《【Cocos2dx】连续滚动的场景》(点击打开链接)一模一样的。下面展示如何用Unity3D做出如下连续滚动的背景的效果。让人看起来那个Capsule是在不停地跑动的样子。


一、场景布置

1、在画图准备一张这样的图片,自己随便画都能画出来了,简笔画:


2、在Unity3D中的布置如下,这里2块10x10的Plane刚好拼成背景:


3、如下图,在Assets导入刚才画好的图片。


4、新建2个材质球,一个默认的白色,一个设置为刚才导入的图片,之后赋予给2个Plane。如果你看不到你赋予的材质,注意Plane的正反面,是否有沿Y轴旋转180度。


5、之后再添加一个Capsule,换到2D视图,用移动工具移到一个比较合适的位置,让Capsule逼真点,如图,这里就放到地面图的“地面”上。在将刚才新建的白色材质赋予给Capsule。


二、脚本编写

1、为Capsule编写一个旋转脚本,让其时刻在选装。不懂可以参考《【Unity3D】物体、材质的设置、物体位移与旋转》(点击打开链接)。

using UnityEngine;using System.Collections;public class Capsule : MonoBehaviour{    // Use this for initialization    void Start()    {    }    // Update is called once per frame    void Update()    {        transform.Rotate(Vector3.up * 5);        transform.Rotate(Vector3.right * 5);    }}
2、之后是给Plane编写一个时刻位移脚本,位移到一定位置重新打回原位置,让它继续滚,虽然是本文的核心脚本,但是也只是一个很简单的位移而已。

using UnityEngine;using System.Collections;public class Background : MonoBehaviour{    float speed = 3.0F;    void Start()    {    }    void Update()    {        if (transform.position.x < -10)        {            transform.position = new Vector3(0, transform.position.y, transform.position.z);        }        transform.Translate(Vector3.right * Time.deltaTime * speed);    }}

不会脚本编写和赋予脚本的,可以参考《【Unity3D】Helloworld》(点击打开链接)。

至此整个工程就做完了。
0 0