分享Unity3D学习 愤怒的小鸟之Play界面(二)
目标
制作Play界面的背景,并实现背景循环滚动的效果。
具体步骤
1. 利用GUITexture搭建背景
此步骤的操作方法与我上篇博客所写一致,关键在于留意每个Texture的位置,将它们拼接成一个大背景。拼接完成后,创建一个空的GameObject,把这些Texture组合起来,这样便于统一管理。
需要注意的是,修改Z轴数值可以改变各个Texture的前后显示顺序。例如,若要让Texture1显示在Texture2前面,只需将Texture1的Z轴数值设置得更大即可。
2. 编写脚本实现背景循环移动
原理
原理较为简单,即利用两张背景图进行循环切换。同时,如果在两张背景图循环切换时发现有空隙,可将每张背景图的宽度设置为略大于屏幕显示宽度。
代码实现
以下是实现背景循环移动的代码:
#pragma strict
var moveSpeed : float = 0.1;
function Start () {
// 此处可添加初始化代码,目前为空
}
function Update () {
transform.Translate(Vector3.left * moveSpeed * Time.deltaTime);
if (transform.position.x <= -1) {
transform.position.x = 1;
}
}
代码解释
var moveSpeed : float = 0.1;
:定义了背景移动的速度,这里设置为0.1。function Start () {...}
:该函数在脚本实例被启用时调用,目前函数体为空,可根据需要添加初始化代码。function Update () {...}
:该函数在每一帧都会被调用。transform.Translate(Vector3.left * moveSpeed * Time.deltaTime);
实现了背景向左移动,Time.deltaTime
用于确保移动速度与帧率无关。if (transform.position.x <= -1) { transform.position.x = 1; }
用于判断背景是否移动到了指定位置,如果是,则将其位置重置,从而实现循环移动的效果。
测试
将上述代码赋给两个背景对象,然后运行项目进行测试。