How can I make my projectile move in a sine pattern (2d plat)?

I initially had a projectile that moved directly out, but I want a sine pattern now. I found a code for a space shooter and it kind of works, but having issues getting it to go both directions now >< I feel pretty dumb now.

In my projectile:

[SerializeField]
private float speed = 5.0f;

private Rigidbody2D body2d;
private Vector3 direction;
public int damage;

public float frequency = 20.0f;
public float magnitude = 0.5f;
private Vector3 axis;
private Vector3 pos;

void Start()
{
    pos = transform.position;
    DestroyObject(gameObject, 1.0f);
    axis = transform.up; 
}

void FixedUpdate()
{
    pos += transform.right * Time.deltaTime * speed;
    transform.position = pos + axis * Mathf.Sin(Time.time * frequency) * magnitude;
}

public void Initialize(Vector3 direction)
{
    this.direction = direction;
}

public void OnTriggerEnter2D(Collider2D other)
{
    if (other.tag == "Enemy")
    {
        other.GetComponent<batsController>().TakeDamage(damage);
        //Destroy(gameObject);
    }
}

void OnBecameInvisible()
{
    Destroy(gameObject);
}

In my character abstract class:

protected Animator myAnimator;

[SerializeField]
public Transform heartPos;

[SerializeField]
protected float movementSpeed;

protected bool facingRight;

[SerializeField]
private GameObject heartPrefab;

public bool Attack { get; set; }

// Use this for initialization
public virtual void Start()
{
    facingRight = true;
    myAnimator = GetComponent<Animator>();
}

// Update is called once per frame
void Update()
{

}

public void ChangeDirection()
{
    facingRight = !facingRight;
    transform.localScale = new Vector3(transform.localScale.x * -1, 2, 2);
}

public virtual void ThrowHeart(int value)
{
    if (facingRight)
    {
        GameObject tmp = (GameObject)Instantiate(heartPrefab, heartPos.position, Quaternion.identity);
        tmp.GetComponent<heartController>().Initialize(Vector3.right);
    }
    else
    {
        GameObject tmp = (GameObject)Instantiate(heartPrefab, heartPos.position, Quaternion.identity);
        tmp.GetComponent<heartController>().Initialize(Vector3.left);
    }
}

}

@isavage0 it’s been long time you add this question, but i found a tutorial that might help people to implement trajectory projectile in their games.