Não entendi exatamente o que tu quis dizer com “dar valor de Vector3 ao posicaoDoObjeto”
Mas dentro do else é dessa maneira pois se fosse:
transform.position = posicaoDoObjeto, não teria como fazer a lógica de descer 1m que ele queria implementar no exemplo.
Dessa forma que está, ele usa apenas os eixos X e Z da posicaoDoObjeto e decrementa o Y.
Talvez eu não entendi bem sua duvida, mas eu vejo da seguinte maneira: como programador, muitas vezes você vai identificar formas diferentes de fazer um código, e que vão dar na mesma. Na maioria das vezes tem que entender que programar antes de qualquer coisa é um processo criativo. Muitas vezes a forma que você faz pode dar no mesmo que outro programador faria. Então se na sua ideia segue funcionando e dando no mesmo, pode apenas ser a forma como o Lucas prefere implementar.
Eu mesmo criaria um método “DescerPosicao” e chamaria ele no else, por exemplo. Faria de diversas formas diferentes e seguiria no mesmo.
Mas pra gente entender melhor tua duvida, posta o código como tu imagina e aí a gente pode discutir de forma mais específica.
Jota, poderia, dentro do else daria no mesmo, mas isso não alteraria a necessidade da variável posicaoDoObjeto, ele teria que mudar mais coisa.
Como o Lucas queria que o cubo voltasse para a posição original quando estivesse girando, ele precisa armazenar ela em um local.
Por isso é feito no start. Ele armazena a posição inicial do objeto e depois para cada estado ele muda a posição.
Se ele parar de girar, ele desce, mas se ele voltar a girar, deve voltar a posição inicial.
Claro, poderia ser apenas + 1 e - 1 no Y, e ignorar a variável posicaoDoObjeto, já que o código só faz isso mesmo. Mas eu acho que o Lucas quis mais mostrar o uso da variável ali mesmo.
Resumindo, você está certo, poderia sim, o código poderia ser bem mais resumido, até removendo o Girar() e deixando tudo no update mesmo:
Perfeito! No método Start, eu criei a variável posicaoDoObjeto para armazenar a posição inicial do objeto. No exemplo da aula, essa variável não é muito utilizada, já que o valor de girar permanece inalterado. Mas, imagine se girar mudasse a cada 5 segundos. Nesse caso, cairíamos no bloco else, e o cubo iria se mover para baixo continuamente, descendo um metro a cada vez:
new Vector3(transform.position.x, transform.position.y -1, transform.position.z);
Para evitar isso, criei a variável posicaoDoObjeto (que poderia ser chamada de posicaoInicialDoObjeto) para garantir que qualquer alteração na posição do objeto seja sempre em relação à sua posição inicial, e não em relação à sua posição atual, evitando mudanças acumulativas indesejadas.