То что ты хочешь сделать надо делать с помощью делегатов, например с системным делегатом Action
System.Action myUpdate;
void Start()
{
if (a==1) {myUpdate = Update1;}
if (a==2) {myUpdate = Update2;}
}
void Update();
{
myUpdate()
}
void Update1()
{
}
void Update2()
{
}
либо с помощью лямбда выражений
System.Action myUpdate;
void Start()
{
if (a==1) {myUpdate = ()=>{ ... }}
if (a==2) {myUpdate = ()=>{ ... }}
}
void Update()
{
myUpdate();
}