Kết nối trong Inspector
Thuộc phần Xây dựng trò chơi thực tế trong hành trình Unity của Coddy. Bài học 8 trên 60.
Bạn cũng có thể kết nối nút trong cửa sổ Inspector mà không cần dùng AddListener. Danh sách On Click () của nút Button ban đầu trống. Nhấn dấu + để thêm một hàng, kéo đối tượng chứa tập lệnh vào ô đối tượng của hàng đó, rồi danh sách thả xuống của hàm sẽ hiển thị các thành phần của đối tượng cùng với những phương thức công khai của chúng. Chọn Jukebox > NextTrack, mỗi lần nhấp sẽ gọi phương thức này:
public class Jukebox : MonoBehaviour
{
public string[] tracks;
private int current;
public void NextTrack()
{
current = (current + 1) % tracks.Length;
Debug.Log("Now playing: " + tracks[current]);
}
}Danh sách thả xuống hiển thị các phương thức có public, trả về void và không nhận tham số hoặc nhận một tham số thuộc kiểu int, float, string, bool hoặc Object. Bạn đặt giá trị của tham số trong hàng đó. Phương thức NextTrack có phạm vi private sẽ không xuất hiện trong danh sách nên bạn không thể chọn. Hàng đó lưu phương thức theo tên của nó: nếu đổi tên NextTrack thành SkipTrack, hàng sẽ hiển thị <Missing Jukebox.NextTrack> và nút sẽ không làm gì khi được nhấp, đồng thời Console cũng không báo lỗi.
Các hàng trong Inspector phù hợp với những nút đặt trong cảnh: bất kỳ ai trong nhóm cũng có thể xem và thay đổi chức năng được gọi khi nhấn nút mà không cần mở tập lệnh. AddListener trong code phù hợp với các nút được tạo khi trò chơi đang chạy và những lệnh gọi truyền giá trị từ một biến; trình biên dịch sẽ phát hiện nếu bạn đổi tên phương thức. Các listener được thêm từ code không bao giờ xuất hiện trong danh sách On Click (), vì vậy nút được kết nối theo cả hai cách sẽ gọi cả hai.
Thử thách
DễLàm cho ba nút của cầu nâng hoạt động trong Drawbridge.cs.
- Mỗi hàng On Click () của nút gọi
Raise,LowerhoặcToggleLamp. Đổi tênLowerBridgethànhLower. - Viết
public void Raise():bridge.localRotationxoay 70 độ quanh trục x, vàstatusTexthiển thịBridge: up. - Viết
public void ToggleLamp(): hàm bậtwarningLampkhi đèn đang tắt và tắt đèn khi đang bật.
Nhấn Play: mỗi nút đều thực hiện đúng chức năng. Sau đó nhấn Check.
Tự làm thử
using UnityEngine;
using TMPro;
public class Drawbridge : MonoBehaviour
{
public Transform bridge;
public TMP_Text statusText;
public GameObject warningLamp;
public void LowerBridge()
{
bridge.localRotation = Quaternion.Euler(0f, 0f, 0f);
statusText.text = "Bridge: down";
}
}
Tất cả bài học trong Xây dựng trò chơi thực tế
1Văn bản trên màn hình
Canvas và văn bảnHiển thị điểm sốĐịnh dạng sốĐồng hồ đếm ngượcÔn tập: Đồng hồ tốc độ7Điều khiển thời gian
Tạm dừng bằng timeScaleChuyển động chậmThời gian không bị co giãnÔn tập: Bullet Time2Nút bấm và màn hình
Nút bấm và onClickLambdaKết nối trong InspectorBật và tắt bảngThanh máuÔn tập: Cửa hàng nâng cấp5Lưu dữ liệu với PlayerPrefs
Lưu một sốTải với giá trị mặc địnhĐiểm cao nhấtLưu cài đặtÔn tập: Tiền xu trong ngân hàngTự luyện tập: Playground Unity