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

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

【Unity】動く背景と動くUFO

前回Android Studioで作った動く背景と動くUFOのUnity版です
1.画像はAndroid Studioと同じものskyとufoを準備します
シーン内に背景画像skyをドラッグ&ドロップ
インスペクターの位置X Yは0
スケールは縦が表示サイスよりも少し大きくなるように調整

2.ヒエラルキーのSkyを右クリックし複製
位置 サイズを調整

3.UFOの画像をシーン内にドラッグ&ドロップ
位置 サイズを調整
UFOの画像が背景より前面になるようにレイヤーの順序を1にする

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

5.LoopSpaceを編集

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

public class LoopSpace : MonoBehaviour
{
    private GameObject gameManager;
    private  bool isRunning;
    // Start is called before the first frame update
    void Start()
    {
        isRunning = true;
    }

    // Update is called once per frame
    void Update()
    {
        if (isRunning)
        {
            transform.Translate(0, -0.01f, 0);
            if (transform.position.y < -11.5f)
            {
                transform.position = new Vector3(0, 11.5f, 0);
            }
        }
    }
}

6.UfoCntrlを編集

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

public class UfoCntrl : MonoBehaviour
{
    public float rocketSpeed = 0.1f;
    private bool isRunning;
    // Start is called before the first frame update
    void Start()
    {
        isRunning = true;
    }

    // Update is called once per frame
    void Update()
    {
        if (isRunning)
        {
            if (Input.GetKey(KeyCode.LeftArrow))
            {
                GoLeft();
            }
            if (Input.GetKey(KeyCode.RightArrow))
            {
                GoRight();
            }
        }
    }

    public void GoLeft()
    {
        if (transform.position.x < -2.3)
        {
            return;
        }
        transform.Translate(-rocketSpeed, 0, 0);
    }
    public void GoRight()
    {
        if (transform.position.x > 2.3)
        {
            return;
        }
        transform.Translate(rocketSpeed, 0, 0);
    }
}

7.LoopSpaceをSkyとSky(1)に UfoCntrlをUfoにドラッグ&ドロップ

実行すると

これを使って簡単なシューティングゲームを作ってみようと思います