Leo thang trong game 2D

Nền tảng:
2D
Tags:
Movement
Player
Gameplay
Platformer

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'.

Bình luận (0)

Bạn cần đăng nhập để có thể bình luận.

Chưa có bình luận nào. Hãy là người đầu tiên!

Bài viết liên quan

AI sẽ phát hiện người chơi trong một phạm vi nhất định và bắt đầu di chuyển về phía họ. Khi người chơi ra khỏi phạm vi, AI sẽ dừng lại.

AI
Movement
Gameplay
Player

Cho phép nhân vật thực hiện một cú lướt nhanh theo hướng di chuyển hiện tại. Có cooldown để tránh lạm dụng.

Player
Movement
Gameplay
Coroutine

Giúp nhân vật đứng vững trên các nền tảng di chuyển (moving platforms) bằng cách tạm thời đặt nhân vật làm con của nền tảng đó.

Movement
Player
Physics
Platformer

Một script đơn giản cho AI để di chuyển tuần tự qua một danh sách các điểm (waypoints). Khi đến điểm cuối cùng, nó sẽ quay trở lại điểm đầu tiên.

AI
Movement
Gameplay

Tạo một viên đạn (projectile) tại một điểm và bắn nó đi theo một hướng xác định. Thường dùng cho nhân vật hoặc kẻ địch.

Gameplay
Player
Spawning
Physics

Cho phép người chơi di chuyển nhân vật đến một vị trí trên mặt đất bằng cách chạm vào điểm đó trên màn hình. Sử dụng Raycast để xác định vị trí trong không gian 3D.

Mobile
3D
Movement
Player
Input

Sử dụng Input System mới của Unity để di chuyển nhân vật 2D hoặc 3D một cách hiệu quả và linh hoạt.

2D
3D
Input
Gameplay
Player

Ví dụ cách sử dụng các tham số Trigger, Bool và Float (cho Blend Tree) để điều khiển các trạng thái animation của nhân vật.

Animation
Animator
Player
Gameplay

Giữ một đối tượng trong một vùng hình chữ nhật xác định bằng cách sử dụng hàm Mathf.Clamp() để giới hạn giá trị tọa độ x và y.

Movement
Physics
Player
Boundaries

Sử dụng Tilemap Collider 2D và Composite Collider 2D để tạo ra một vùng đi lại duy nhất cho nhân vật, ngăn họ đi xuyên tường hoặc ra khỏi bản đồ.

2D
Movement
Player
Physics
Tilemap