Eu estava prestes a postar um link para o blog da Base de Asteróides no inimigo Walker quando notei o karmington já vinculado ao artigo do Gamasutra em um comentário.
Provavelmente vale a pena dar a isso um pouco mais de visibilidade e explicação, como resposta por si só.
O truque é o raycasts . Isso permite que seu código varra ao longo de uma linha em busca de uma colisão.
Para que o Walker se alinhe bem às superfícies, eles disparam dois raios no terreno, um do lado esquerdo do Walker e um do seu direito (linhas vermelhas e amarelas acima).
De cada objeto RaycastHit2D, você pode obter um vetor normal apontando perpendicular à superfície (linhas magenta e verde). Ao calcular a média dos normais dos dois acertos, você obtém uma orientação adequada para o seu personagem que é razoavelmente reflexiva do terreno subjacente (linha ciana).
Você pode aplicar uma força ao longo dessa linha de orientação para manter o personagem preso ao terreno (embora isso possa causar deslizamentos se o atrito for baixo) ou posicionar manualmente o personagem no ponto médio de interseção do raio, como é feito com o Walker.
Você desejará mesclar gradualmente a orientação do personagem para impedir que ele vibre ou pareça robótico (veja como o normal muda drasticamente quando o Walker cruza a esquina, mas o corpo se move suavemente).
Se você tiver cantos afiados em seu terreno, provavelmente desejará inclinar ligeiramente esses raios para dentro - para que, se a aranha passar pela borda de um penhasco de 90 graus, o raio saliente atingirá a face do penhasco.
A equipe da Base de Asteróides também dispara um raio curto na direção do movimento de Walker (não mostrado), que substitui o raio daquele lado se atingir o terreno. Isso garante que o caminhante não fique preso ao entrar em um canto côncavo de 90 graus.
De acordo com os documentos, o raycast 2D difere do 3D, pois detecta coletores nos quais o raio inicia. Isso me parece suspeito, mas se o seu teste confirmar isso, você usará uma layerMask para limitar os raios para detectar apenas colididores de terreno escalável.