Я смог создать что-то, где я проверяю поверхность, и если ноги стоят на земле, я приложите силу от игрока к поверхности, но на острых краях или если я пойду слишком быстро, моя проверка может провалиться, и моего игрока отбросит.
Меня нужно царапать, пока я не решу этого не делать.
Мой текущий код:
Код: Выделить всё
private void CheckGrounded()
{
// Perform a raycast to check for ground, ignoring trigger colliders
RaycastHit2D hit = Physics2D.Raycast(feetPosition.position, -transform.up, feetDistanceCheck, groundLayer);
if (hit)
{
// Align the player's rotation with the surface normal
surfaceNormal = hit.normal;
float angle = Mathf.Atan2(surfaceNormal.y, surfaceNormal.x) * Mathf.Rad2Deg - 90f;
transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, 0, angle), 0.1f);
rb.freezeRotation = true;
isGrounded = true;
// Apply surface attachment if not jumping
if (jumpTimer
Подробнее здесь: [url]https://stackoverflow.com/questions/79178345/how-to-make-player-stick-to-collider-in-unity[/url]