【Unity3D】连续滚动的背景

在一些跑酷、赛车游戏之中,连续滚动的背景很常见。其实来来去去就是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》(点击打开链接)。

至此整个工程就做完了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值