Base and child FixedUpdate() not functioning correctly

public abstract class MovementBase : MonoBehaviour
{
protected Vector3 Velocity;

    private void FixedUpdate()
    {
        Velocity = new Vector3(0, 5, 0);;
    }
}

public class MovementChild : MovementBase
{
    private void FixedUpdate()
    {
        var vel = Velocity;
    }
}

vel in MovementChild is always (0,0,0) when both Parent and Child use FixedUpdate but updates properly when one is FixedUpdate and the other Update

Is there a work around for this problem?

What you’re describing is expected behaviour: when you define FixedUpdate() in a child class, you’re overriding (i.e. replacing) the behaviour of the FixedUpdate() method in the parent class.

If what you wanted was for the code in the child’s FixedUpdate() to run in addition to the code in the parent’s FixedUpdate(), you can manually call the method of the base class from the child:

using UnityEngine;
using System.Collections;

public abstract class MovementBase : MonoBehaviour
{
	protected Vector3 Velocity;
	
	protected void FixedUpdate()
	{
		Velocity = new Vector3(0, 5, 0);;
	}
}

public class MovementChild : MovementBase
{
	private void FixedUpdate()
	{
		base.FixedUpdate();
		var vel = Velocity;
	}
}

Note that as shown above, you’ll also need to change the access modifier of FixedUpdate in the parent class from private to protected.