Unity 2D背景滚动

来源:互联网 发布:修复系统漏洞的软件 编辑:程序博客网 时间:2024/04/29 21:09

1.首先,了解Material(材质)

材质(Materials)是unity的一个重要组成部分,主要是用来把网格(Mesh)或粒子渲染器(Particle Renderers)贴到游戏对象上。他们在定义对象怎么被显示发挥重要组成部分。材质包括用于呈现网状或颗粒着色器的参考,所以这些组件不能在没有材质的情况下显示。
关于Material的具体详情可参考:http://www.ceeger.com/Components/class-Material.html
因为要使用到背景的滚动,因此,我们采用着色器是Texture(纹理)。Texture的位置可以改变,通过改变偏移(Offset)和平铺(Tiling)属性。而且只需要一张图,当然也可以使用多张图。因为重复使用一张或者多张重复使用,使得Texture性能上也有优势。

2.创建Texture

在此我们只需要一张图片,当然也可以使用多个图片来构建内容丰富的场景。我们需要对文理进行以下设置:

Texture
Texture Type 选择类型为Texture
Wrap Mode 选择Repeat (重复)
注意的是:Warp Mode一定要为Repeat才可以重复滚动

3.创建Material

这里写图片描述

Shader选择Unlit/Texture

4.创建滚动背景Object

这里写图片描述

  • 添加Mesh Renderer网格组件,设置Materials size为1(单个材质)选择创建的Material
  • 添加Mesh Filter 组件选择Mesh为 Quad(矩形)
  • 由于我的图片大小是480*800,因此,进行适配,设置Transform x轴缩放4.8,Y轴缩放8

5.添加脚本

using UnityEngine;
using System.Collections;

public class BackgroundController2 : MonoBehaviour {

public  float speed = 0.1F;public Renderer rend;// Use this for initializationvoid Start () {    rend = GetComponent<Renderer> ();}// Update is called once per framevoid Update () {    float y = Mathf.Repeat (Time.time*speed,1);    rend.material.mainTextureOffset = new Vector2 (0,y);}

}

0 0