Estamos buscando um desenvolvedor Unity experiente para resolver um bug crítico no jogo "Red Vanguard", que foi portado da Unity 4 para a Unity 2018. O problema ocorre quando o jogador é teleportado involuntariamente para a posição inicial de spawn ao alternar entre a câmera de primeira e terceira pessoa (ou vice-versa).
Detalhes do Bug:
- O jogador está andando normalmente em primeira pessoa.
- Ao trocar para terceira pessoa (ou vice-versa), o jogador "pula" instantaneamente para o ponto de spawn original.
Ambiente:
- Engine: Unity 2018 (originalmente Unity 4)
- Linguagem: C# (código decompilado de UnityScript/Boo)
- Sistema: Multiplayer com Unity Legacy Networking (NetworkView, RPC)
Causa Raiz Identificada:
O bug foi rastreado a uma sequência de eventos durante a troca de câmera:
1. O método setCameraTogglePrimarySecondary() em
PlayerController.cs é chamado.
2. Este método, por sua vez, chama removeView() em
CharacterControllerScript.cs.
3. Na linha 1021 de
CharacterControllerScript.cs, há uma chamada para SetActiveRecursively(true) que reativa TODOS os scripts filhos.
4. Isso reativa o NetworkCharacterScript, que é responsável por sincronizar a posição de jogadores REMOTOS.
5. O
NetworkCharacterScript.Update() é executado e sobrescreve a posição do jogador LOCAL com valores de currentPosition que estão desatualizados ou em (0,0,0).
O objetivo é implementar uma solução que impeça o NetworkCharacterScript de sobrescrever a posição do jogador local com dados incorretos ou desatualizados durante a troca de câmera, garantindo uma transição suave e correta.
Prazo de Entrega: Não estabelecido