Tạo Bản đồ nhỏ (Minimap)

Tags:
UI
Camera
Navigation
Render Texture

C# Code

// Hướng dẫn thiết lập:
// 1. Tạo một 'Render Texture' mới trong Project (Create -> Render Texture).
// 2. Tạo một Camera mới (đặt tên là MinimapCamera), kéo nó làm con của Player.
//    - Đặt vị trí Camera cao hơn Player, xoay trục X 90 độ để nhìn thẳng xuống.
//    - Chuyển Projection thành 'Orthographic'.
//    - Kéo 'Render Texture' vừa tạo vào ô 'Target Texture' của Camera này.
//    - Trong 'Culling Mask', bỏ chọn tất cả trừ những layer bạn muốn hiện trên minimap (ví dụ: Player, Ground).
// 3. Trong UI Canvas, tạo một 'Raw Image'.
//    - Kéo 'Render Texture' vào ô 'Texture' của Raw Image này.
//    - Chỉnh kích thước và vị trí của Raw Image theo ý muốn.
// 4. Gắn script này vào Player để giữ cho Camera của minimap không xoay cùng Player.

using UnityEngine;

public class MinimapController : MonoBehaviour
{
    public Transform minimapCameraTransform;

    void LateUpdate()
    {
        if (minimapCameraTransform == null) return;

        // Giữ cho camera của minimap luôn hướng thẳng xuống (không xoay theo player)
        Vector3 newPosition = transform.position;
        newPosition.y = minimapCameraTransform.position.y; // Giữ nguyên độ cao của camera
        minimapCameraTransform.position = newPosition;

        // Giữ cho camera không bị nghiêng theo player
        minimapCameraTransform.rotation = Quaternion.Euler(90f, transform.eulerAngles.y, 0);
    }
}

Hướng dẫn cách tạo một bản đồ nhỏ đơn giản bằng cách sử dụng một Camera thứ hai và một Render Texture để hiển thị lên UI.

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

Một script để quản lý một điểm đánh dấu trên UI (ví dụ: icon nhiệm vụ), đảm bảo nó luôn chỉ đúng hướng tới mục tiêu trong không gian 3D và ghim vào cạnh màn hình khi mục tiêu ở ngoài tầm nhìn.

UI
Navigation
Quest
Camera

Hiển thị các điểm đánh dấu (marker) cho các mục tiêu trên một thanh la bàn UI, giúp người chơi định hướng.

UI
Gameplay
Navigation

Tạo một thanh máu dạng World Space UI (ví dụ: trên đầu kẻ địch) và đảm bảo nó luôn xoay về phía camera chính của người chơi.

3D
UI
Health
Camera

Sử dụng Rich Text tags để thay đổi màu sắc của một phần văn bản trong TextMeshPro một cách linh hoạt mà không cần thay đổi màu của toàn bộ đối tượng.

UI
TextMeshPro
Rich Text

Sử dụng DOPunchScale của DOTween để tạo hiệu ứng 'nảy' hoặc 'đấm' cho đối tượng, rất hữu ích cho các nút bấm hoặc item.

DOTween
Animation
Punch
UI

Sử dụng DOTween để thay đổi kích thước của một đối tượng, tạo hiệu ứng phóng to hoặc thu nhỏ.

DOTween
Animation
Scale
UI

Sử dụng DOTween để làm mờ dần (fade in/out) một thành phần UI như Image hoặc TextMeshProUGUI.

DOTween
Animation
Fade
UI

Một hệ thống đơn giản để hiển thị các đoạn hội thoại có nhiều câu và lựa chọn cho người chơi, sử dụng ScriptableObject.

UI
Gameplay
Interaction
ScriptableObject

Một hệ thống kho đồ cơ bản sử dụng ScriptableObject cho dữ liệu vật phẩm và quản lý các ô chứa trong UI.

UI
Gameplay
Inventory
ScriptableObject
Architecture

Hướng dẫn thiết lập và sử dụng hệ thống Navigation (NavMesh) tích hợp sẵn của Unity để AI có thể tự động tìm đường đi trong môi trường 3D phức tạp.

3D
AI
Pathfinding
Navigation