oque acontece no código, pelo que eu entendi, é que AleatorizarPosicao manda os seus valores pro posicaoAleatoria quando usa o return, mas se é isso então porque simplesmente não coloca sozinho o AleatorizarPosicao no void Vagar? não daria o mesmo resultado? sem o return claro
void Vagar ()
{
posicaoAleatoria = AleatorizarPosicao();
}
Vector3 AleatorizarPosicao ()
{
Vector3 posicao = Random.insideUnitSphere * 10;
posicao += transform.position;
posicao.y = transform.position.y;
return posicao;
}