日々是好日~every day is a good day~

日常の中の非日常の備忘録

【Unity】背景を動かす

前回Android Studioで背景を動かすプログラムを作りましたが
今回はそれのUnity版です
Unityの場合やり方は他にもあるでしょうが
Android Studioと同様に背景画像をループ表示する方法です
1.画像はAndroid Studioと同じものを使用

2.背景の画像をシーン内にドラッグ&ドロップ
インスペクターの位置X Yは0にしておく スケールX Yは3にする

3.ヒエラルキーのsougenを右クリックし複製

4.複製したsougen(1)のXは17.9にする

5.プロジェクトタブにカーソルを持っていき右クリックでLoopBackとLoopBack1いうスクリプトを作成

6.スクリプトの編集
LoopBackとLoopBack1の処理内容は同じですがpublicで設定したものを共通で使えるようにしました
LoopBack

using UnityEngine;
using System.Collections;

public class LoopBack : MonoBehaviour
{
	public float speed = 0.02f;
	public float loopSize = 17.9f;
	public bool isRunning = false;

	void Start()
	{
		isRunning = true;
	}
	void Update()
	{
        if (isRunning)
        {
			transform.Translate(-speed, 0, 0);
			if (transform.position.x < -loopSize)
			{
				transform.position = new Vector3(loopSize, 0, 0);
			}
		}
	}
}

LoopBack1

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LoopBack1 : MonoBehaviour
{
    [SerializeField] GameObject sougen;

    // Update is called once per frame
    void Update()
    {
        if (sougen.GetComponent<LoopBack>().isRunning)
        {
            transform.Translate(-sougen.GetComponent<LoopBack>().speed, 0, 0);
            if (transform.position.x < -sougen.GetComponent<LoopBack>().loopSize)
            {
                transform.position = new Vector3(sougen.GetComponent<LoopBack>().loopSize, 0, 0);
            }
        }
    }
}

7.LoopBackをsougenに LoopBack1をsougen(1)にドラッグ&ドロップ

8.sougen(1)のインスペクターのスクリプトにsougenをドラッグ&ドロップ

実行すると

Unityの方がプログラムが簡単で量も少なくて済みますね