все для Unity
Механика карабканья по стенам для 2д персонажа на языке c#:
public float climbSpeed; // скорость карабкания
public float jumpForce; // сила прыжка
private bool onGround; // на земле ли игрок
private bool onWall; // на стене ли игрок
private bool wallJumped; // прыгал ли игрок от стены
private bool facingRight = true; // смотрит ли игрок вправо
private float moveInput; // направление движения
private Rigidbody2D rb;
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Ground"))
{
onGround = true;
wallJumped = false;
}
else if (collision.gameObject.CompareTag("Wall"))
{
onWall = true;
}
}
private void OnCollisionExit2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Ground"))
{
onGround = false;
}
else if (collision.gameObject.CompareTag("Wall"))
{
onWall = false;
}
}
private void Flip()
{
facingRight = !facingRight;
transform.Rotate(0f, 180f, 0f);
}
private void Move()
{
moveInput = Input.GetAxis("Horizontal");
rb.velocity = new Vector2(moveInput * climbSpeed, rb.velocity.y);
if ((moveInput > 0 && !facingRight) || (moveInput < 0 && facingRight))
{
Flip();
}
}
Был ли вам скрипт полезен?
Делов-то
gpt?
Это простой скрипт перемещения по горизонтальной оси.
Щас бы теги, да не в compile time, ммм