障害物
障害物(車)→道路エリアにある白い動くオブジェクトです。
障害物(木)→川エリアにある茶色い動くオブジェクトです。
障害物(車)
1.Hierarchy → 2D Object → Sprites → Square で、オブジェクトを作成
2.Box Collider2D とサンプルコード(このページの下の方にあります)を付ける
3.タグを「Dead」に変更、Sprite Renderer Order in Layer を -2 に変更
4.Transform Scale x:0.95 Y:0.95 Z:0.95 にする
5.Prefabにする
障害物(木)
車と同様に
1.Hierarchy → 2D Object → Sprites → Square で、オブジェクトを作成
2.Box Collider2D とサンプルコード(このページの下の方にあります)を付ける
3.タグを「Tree」に変更
4.Sprite Renderer Color rgba(180,60,60,255) Order in Layer -4 に変更
5.Transform Scale x:0.95 Y:0.95 Z:0.95 にする
6.Prefabにする
※車と作り方が違うのは、タグと Color と Order in Layer くらいです
サンプルコード
using UnityEngine;
public class ObstacleScripts : MonoBehaviour
{
    // 移動向き
    private enum MoveDirection
    {
        rightToleft,                    // 右から左
        leftToright                     // 左から右
    }
    [SerializeField]
    MoveDirection direction;            // 方向
    [SerializeField, Range(0.0f, 5.0f)]
    float speed;                        // 障害物の速さ
    Vector3 directionX;                 // 移動の向き
    float yPos;                         // 障害物の位置(Y軸)
    float firstPos;                     // 障害物の初期位置
    float endPos;                       // 障害物の最後の位置
    const float MAX_POS = 7.0f;         // 右端
    const float MIN_POS = -7.0f;        // 左端
    private void Start()
    {
        FirstProcess();
    }
    // 初期設定
    private void FirstProcess()
    {
        yPos = transform.position.y;    // 障害物のY軸の位置
        // 右から左の場合の初期処理
        if (direction == MoveDirection.rightToleft)
        {
            directionX = Vector3.left;
            firstPos = MAX_POS;
            endPos = MIN_POS;
        }
        // 左から右の場合の初期処理
        if (direction == MoveDirection.leftToright)
        {
            directionX = Vector3.right;
            firstPos = MIN_POS;
            endPos = MAX_POS;
        }
    }
    private void Update()
    {
        CarMove();
    }
    // 障害物の動きの処理
    private void CarMove()
    {
        transform.position += directionX * speed * Time.deltaTime;        // 障害物の速さ
        // 移動向きが右から左の場合に最後の位置まで到達時の処理
        if (direction == MoveDirection.rightToleft
         && transform.position.x <= endPos)
        {
            transform.position = new Vector3(firstPos, yPos, 0.0f);
        }
        // 移動向きが左から右の場合に最後の位置まで到達時の処理
        if (direction == MoveDirection.leftToright
         && transform.position.x >= endPos)
        {
            transform.position = new Vector3(firstPos, yPos, 0.0f);
        }
    }
}
簡単に説明すると移動範囲(左端 -7.0f ~ 右端 7.0f)
動く方向(右から左及び左から右)と速さ(0.0f~5.0f)です
使い方は、道路エリア及び川の渡り方で説明します
