動作環境
Unity 2019.4.24f1
1.事前準備
1.適当なスプライト(パターン画像)を選択
今回はこちらからお借りしました。
http://bg-patterns.com/
2.Inspector
から
・Mesh Type->Full Rect
・Warp Mode->Repeat
をそれぞれ選択
※ドット画像の場合は
・Filter Mode->Point(no filter)
・Compression->None
も選択
2.マテリアルの作成
1.Project
からCreate->Materialを作成
2.ShaderからUnlit->Transparentを選択
3.右側の四角をクリックして、スクロールしたい画像を選択
3.スクリプトの作成
1.Project
からCreate->C# Scriptを作成
2.以下のコードを記述
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BackScroll : MonoBehaviour
{
private Renderer rend;
[SerializeField]
private float m_speed;
// Start is called before the first frame update
void Start()
{
rend = GetComponent<Renderer>();
}
// Update is called once per frame
void Update()
{
//自動でスクロール
float x = Mathf.Repeat(Time.time * m_speed, 1);
Vector2 offset = new Vector2(x, 0);
rend.sharedMaterial.SetTextureOffset("_MainTex", offset);
}
}
4.スプライトの表示
1.Hierarchy
からCreate Emptyを作成
2.Add Component
からSprite Rendererを選択
3.マテリアルをドラッグして適用
4.Sprite Renderer
から
・Sprite->スクロールしたい画像
・Draw Mode->Tiled
・Size->画面に合うサイズ
をそれぞれ選択
5.スクリプトをアタッチしてSpeed(変数)に適当な数字を入れる
5.完成
これで自動的にスクロールするようになります。
Sprite Renderer
にこのような警告が表示されることがありますが、気にしなくても動くので大丈夫です。
おまけ
画像を座標軸でスクロールしたいときは以下のコードを追加するとできます。
これらはスクリプトで動かしているので応用しやすいです。いろいろできると思うので試してみてください。
//座標軸でスクロール
float moveX = transform.position.x * m_speed;
float x = Mathf.Repeat(moveX, 1);
参考サイト