Unity3D循环滚动的背景图片,制作方法

最近用unity4.3做个2d平台游戏,背景循环的问题搞得我头大了,如果用锚点连接图片有点小题大做,于是发现了下边这篇文章.

建议大家看文章中提到的这个例子插件android game example ,下载地址:泽国论坛(这个论坛好棒呀,下载免费,不像大多数论坛那样动不动积分,权限,收费之类的)http://www.zeguoren.com/forum.php?mod=viewthread&tid=6028

真是抱歉,从今天起才认真的翻阅android game example 这个插件,开始熟悉一下外国佬的一些编程方式,相信很多人没有看过我就当做一个记录吧,都是一些简单的小东西。

首先就是这个滚动的背景图,也许叫“跑马灯”会比较好理解。

来看看效果:

看起来这博客系统还不那么差,至少可以播放gif。

 

这种滚动背景很容易让我想到的就是,跑酷类游戏,空战游戏,总之类似的横版游戏,当然了现在的游戏设计都变得很精致了,相信这样级别的背景还不能满足吧~

 

这个例子我们不借助任何第三方的精灵插件,都用原始的控件来,我们需要准备的就是一个cube,当然plane也可以。

 

现在新建一个场景,准备一个正交相机,一个plane,一个灯光,一个material,一张图片,现在调整好位置当该就变成了这样:

 

 

好吧现在我们让background上的贴图滚动(事实上这就1分钟的事儿,打成字居然这么麻烦,真是是该考虑制作视屏了),注意到这个了么:

 

试着变化一下offset的x的值,哇~图片变化了,好吧其实没有什么神奇的~

接着我们就让它自动变化便是了 

加上我们的滚动脚本:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using UnityEngine;
using System.Collections;
         
public class ScrollingByOffset : MonoBehaviour
{
    /// <summary>
    /// 滚动速度
    /// </summary>
    public float _Speed;
    /// <summary>
    /// 滚动的材质载体
    /// </summary>
    private Material _ScrollMaterial;
         
    void Start()
    {
        this._ScrollMaterial = renderer.material;
    }
         
    void Update()
    {
        this._ScrollMaterial.mainTextureOffset = new Vector2(_Speed * Time.time, 0);
    }
}

 

跑起来瞅瞅,似乎还不错。

接着调整一下灯光,图片的大小(图片最好大到超出相机的视野,效果会好很多)。

 

接着我把资源和代码贴上来,各位有兴趣可以试试。

posted @ 2014-01-30 23:59  TouchAfflatus  阅读(4295)  评论(0编辑  收藏  举报