How do I generate obstacles in 2D side scroller?

I am building an endless 2D side scroller and I have created an object that will end the game when the player collides with it. The question I have, however, is how to have obstacles generate with a random frequency, and come at the player on one axis. Here is my code so far

using UnityEngine;
using System.Collections;

public class obstacleScript : MonoBehaviour
{

    // Use this for initialization
    void Start()
    {
        
    }

    float moveSpeed = 2.5f;

    public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);


    // Update is called once per frame
    void Update()
    {
        //makes obstacle move towards player
        transform.Translate(Vector3.left * moveSpeed * Time.deltaTime);
    }
        
    //Detects if player hits an obstacle
    void OnTriggerEnter2D(Collider2D other)
    {
        //If a gameObject with the tag "Player" enters this trigger, load a scene.
        if (other.gameObject.CompareTag("Player"))
        {
            print("object hit");
            Application.LoadLevel("Game Over Scene");
        }
    }
}  

Currently, the error I am getting is that I have to attach a body to my instantiate line.

you can instantiate in the declaration part…
what you want to do is start a coRoutine which will wait a random number of seconds and then instantiate the obstacle there…

For coroutine and waiting see here:

for instantiate see here:

also you seem to be missing 2d and vector3… this may cause issues I believe - i work in 3d but i guess 2d should use vector2 not 3.

hope that helps,

Instantiate in a void and make sure the GameObject you try to instantiate is not null (create a public GameObject and select a Prefab in the Inspector, maybe perform a null check).
Also make sure the wall-object is set to trigger, otherwise OnTriggerEnter will not get called.