Chuyển Scene siêu nhanh trong Editor Unity

25 Tháng sáu, 2024

Khi thực hiện các tác vụ trên Editor của Unity, phím tắt là thứ giúp chúng ta tiết kiệm được rất nhiều thời gian. Chuyển scene cũng vậy. À mà khoan! hình như Unity không có phím tắt để chuyển scene. Đúng vậy, nhưng đó cũng là lý do có bài viết này.

Editor Scripting

Vì đây là bài viết đầu về Editor Scripting nên mình sẽ giới thiệu qua về nó một chút. Về cơ bản Editor Scripting cho phép bạn dễ dàng chỉnh sửa, mở rộng Unity Editor để dễ dàng hơn khi làm việc trong các dự án.

Thật vậy, với Editor Scripting bạn sẽ dễ dàng tạo thêm những cửa sổ mới, mở rộng phần công cụ, xây dựng lên những công cụ phục vụ cho dự án,…

Chuyển Scene cực nhanh

Làm việc qua lại giữa các scene có vẻ là một điều quá bình thường với các dự án từ nhỏ cho đến lớn. Tuy vậy nếu dùng chuột chọn scene theo các truyền thống e rằng sẽ tốn kha kha thời gian thao tác của các bạn.

Ngay bây giờ, mình có trong tay ba scene như trên hình:

Ba scene cần lưu ý
Ba scene cần lưu ý

Đầu tiên và bắt buộc, là add các scene đó vào Scenes In Build tại Build Setting.

Lưu ý add các scene
Lưu ý add các scene

Sau đó mình sẽ tạo một script MonoBehaviour là CustomEditor. Script này không cần add vào GameObject nào cả. Mình cũng sẽ viết luôn hàm OpenScene tại script đó luôn.

public class CustomEditor : MonoBehaviour
{
    public static void OpenScene(string sceneName)
    {
        if (EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
        {
            EditorSceneManager.OpenScene("Assets/Scenes/" + sceneName + ".unity");
        }
    }
}

Để mở scene ở Editor bằng script bạn không chỉ cần tên của scene đó mà còn cần cả đường dẫn của nó nữa.

Trong Editor Scripting, một attribute giúp các bạn thêm các công cụ của mình vào phần Menu đó là MenuItem.

Menu cơ bản
Menu cơ bản

Công việc của mình bây giờ là thêm phần chuyển scene vào Menu và gán cho nó một phím tắt.

public class CustomEditor : MonoBehaviour
{
// Kí tự & là biểu tượng cho phím Alt
    [MenuItem("Open Scene/Load &1")]
    public static void OpenSceneRoot()
    {
        OpenScene("Load");
    }
    [MenuItem("Open Scene/Menu &2")]
    public static void OpenSceneMenu()
    {
        OpenScene("Menu");
    }
    [MenuItem("Open Scene/GamePlay &3")]
    public static void OpenSceneGamePlay()
    {
        OpenScene("GamePlay");
    }
    public static void OpenScene(string sceneName)
    {
        if (EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
        {
            EditorSceneManager.OpenScene("Assets/Scenes/" + sceneName + ".unity");
        }
    }
}

Sau khi save script lại phần Menu sẽ tự động thêm phần Open Scene mình vừa viết ở đó vào.

Trên thanh Menu
Trên thanh Menu
Khi chọn Open Scene
Khi chọn Open Scene

Mình đã có lựa chọn Open Scene kèm phím tắt trên thanh Menu. Giờ việc mở hay chuyển giữa các scene sẽ thuận tiện và nhanh chóng hơn.

Chúc các bạn thành công.

guest
0 Góp ý
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Tin tức liên quan
Custom Plus & Minus Quantity trong Woocommerce
Như bạn đã biết thì nút thay đổi số lượng của Woocommerce để default không mấy là đẹp mắt và khiến người dùng khó tương tác trong việc thay...
Hướng dẫn thêm Confirm Password trong Registration Page và Checkout Page
Tình trạng spam tài khoản, hay khách hàng không nghiêm túc trong việc tạo tài khoản để spam đơn hàng. Mình khuyến khích các bạn thêm một field nhập...
Hướng dẫn lấy đường dẫn các page Woocommerce 3.x
Chắc hẳn ai dùng Woocommerce đều sẽ muốn hiển thị đường dẫn của trang tài khoản, cửa hàng, thanh toán, giỏ hàng,.. Có rất nhiều phương án xử lý...