今回は、Untiyの2Dゲームで背景の画像を右から左に動かしてみます。画像は1枚だけを使い、右から左だけでなく、左から右、上から下、下から上なども簡単に動かすことが出来る方法です。
はじめに
Unityのバージョンは2021.3.3f1です。
画像を2枚並べて、動かす方法は下記です。
今回は1枚の画像を動かしてみます。
画像を用意
まずは背景画像を用意。適当に自分で画像を作成してみました。

ループさせるので右端と左端がつながる画像にします。
実装開始
まずはUnity側に画像を取り込み。

画像の設定を変更します。TextureTypeを「Default」、WrapModeを「Repeat」に。

ヒエラルキーメニューで「3Dオブジェクト」→「Quad」を追加。Planeでも可。

MeshRendererのMatarials→Elementに画像をセットしてスケールを変更。

下記の様になります。

このままだと暗いので明るくするために、ライトを追加。

ライトの位置を適当に変更していい感じに、これでセット完了。

マテリアルのOffset数値を変更すると画像を動かすことが出来ます。

これをスクリプトで動かしていきます。
スクリプト
下記スクリプトを作成。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class BackLoop : MonoBehaviour { [SerializeField] private float _speed; private Material _material; void Start() { _material = GetComponent<Renderer>().material; } void Update() { Vector2 offset = new Vector2(Time.time * _speed,0); _material.mainTextureOffset = offset; } }
QuadにアタッチしてSpeedに適当な数値を入力。

下記の様な感じで背景画像が動きます。
