Leo thang trong game 2D
C# Code
using UnityEngine;
public class LadderClimb : MonoBehaviour
{
private float verticalInput;
public float climbSpeed = 3f;
private bool isClimbing;
private bool onLadder;
private Rigidbody2D rb;
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
void Update()
{
verticalInput = Input.GetAxis("Vertical");
if (onLadder && Mathf.Abs(verticalInput) > 0f)
{
isClimbing = true;
}
}
void FixedUpdate()
{
if (isClimbing)
{
rb.gravityScale = 0f; // Tắt trọng lực khi leo
rb.velocity = new Vector2(rb.velocity.x, verticalInput * climbSpeed);
}
else
{
rb.gravityScale = 3f; // Bật lại trọng lực (thay bằng giá trị mặc định của bạn)
}
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.CompareTag("Ladder"))
{
onLadder = true;
}
}
private void OnTriggerExit2D(Collider2D collision)
{
if (collision.CompareTag("Ladder"))
{
onLadder = false;
isClimbing = false;
}
}
}Cho phép nhân vật 2D di chuyển lên và xuống khi tiếp xúc với một đối tượng được đánh dấu là 'Ladder'.