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