Respostas:
FixedUpdatepode correr mais rápido ou mais devagar do que Updatedependendo das suas configurações. Isso dependerá da carga (a velocidade da Updateexecução) e da velocidade que você definiu FixedUpdate(encontrado em Editar-> Configurações do projeto-> Tempo). Idealmente, como Updateé executado uma vez por quadro, é aqui que você deseja capturar a entrada. Se você precisar agir de acordo com a entrada do FixedUpdatemétodo (como controlar corpos físicos), defina sinalizadores Updatee lide com eles FixedUpdate:
bool leftMouseDown = false;
void Update()
{
if(Input.GetMouseButtonDown(0))
leftMouseDown = true;
}
void FixedUpdate()
{
if(leftMouseDown )
{
//update physics bodies with input
leftMouseDown = false;
}
}
Ainda é uma boa idéia controlar a física a partir do FixedUpdatemétodo, pois é improvável que a física precise ser atualizada com tanta frequência, e a física em uma atualização fixa é muito mais fácil de prever ( determinismo ) do que a física em uma atualização variável.
FixedUpdate. Essa é uma daquelas coisas que precisam de testes para descobrir o que "parece" certo.
Você precisa entender o que cada um faz. Update()é chamado o mais rápido possível (não tenho certeza, talvez possa ser limitado), de qualquer maneira - cada quadro. FixedUpdate()é chamado a cada quantidade constante de tempo (daí "fixo").
A entrada entra Update(), simples assim (porque, como você notou, FixedUpdate()pode não capturar o evento de entrada). A lógica do jogo, no entanto, pode ser uma das duas. Física precisa ser determinista e é por isso que ele deve estar em FixedUpdate(). Outras coisas não precisam. Dependendo do uso, você deve decidir qual função é apropriada.
No entanto, vale a pena dizer que alguns aplicativos têm toda a atualização da lógica do jogo FixedUpdate()(mesmo fora de Unity) - é chamada de "loop de jogo com etapa fixa". Ter todo o código de atualização em uma função de etapa fixa fornece determinismo e aumenta a probabilidade de seu aplicativo se comportar da mesma maneira todas as vezes (e em cada dispositivo). Também permite alguns recursos sofisticados, como replays.