1枚の画像で背景を簡単に動かす方法【Unityゲーム作成】

今回は、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に適当な数値を入力。

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

タイトルとURLをコピーしました