Cara seu projeto está absurdamente bom precisando apenas de algumas melhorias. Está me lembrando um pouco os crash antigos, sugiro que coloque vida no personagem pra aumentar a margem de erro do jogador, na parte das caixas deixe elas um pouquinho mais lentas e arrume a colisão, tem vez que parece que não pegou na cancela mas pega, uma sugestão para isso é colocar o colisor da caixa nas laterais um pouco pra dentro dela, provavelmente já resolve, além de dar um jeito de verificar se ja tivemos o diálogo com o personagem, parece simples de resolver: Coloca um booleano "ja_falou" e declara como false, no script coloca uma verificação if ja_falou == true -> roda a cena a partir do script depois da fala (hide no npc, etc.), else -> roda a cena do jeito que ja esta feita no seu script. Dito isso, parabéns pelo projeto, está ótimo e divertido só precisa de algumas melhorias.