Home / khác / Hiển thị điểm và văn bản

Hiển thị điểm và văn bản

Hiển thị điểm và văn bản
Đã kiểm tra với phiên bản: 5
– –
Khó khăn: Người mới bắt đầu
Đếm, hiển thị văn bản và kết thúc trò chơi.Đếm, hiển thị văn bản và kết thúc trò chơi.

00:05 – 00:07
Chúng tôi cần một công cụ để lưu trữ giá trị
00:07 – 00:09
của tập hợp được tính của chúng tôi.
00:09 – 00:11
Và một công cụ khác để thêm vào giá trị đó
00:11 – 00:13
khi chúng tôi thu thập và đếm chúng.
00:13 – 00:16
Hãy thêm công cụ này vào kịch bản PlayerController của chúng tôi.
00:17 – 00:19
Chọn đối tượng trò chơi Người chơi và mở
00:19 – 00:21
Kịch bản PlayerController để chỉnh sửa.
00:24 – 00:27
Hãy thêm một biến riêng để giữ số đếm của chúng ta.
00:27 – 00:29
Đây sẽ là một int, vì số lượng của chúng ta sẽ là
00:29 – 00:33
một số nguyên, chúng tôi sẽ không thu thập một phần đối tượng,
00:33 – 00:35
và hãy gọi nó là Count.
00:36 – 00:38
Vì vậy, trong trò chơi của chúng tôi, chúng tôi sẽ bắt đầu
00:38 – 00:39
với tổng số là 0.
00:39 – 00:41
Sau đó, chúng tôi sẽ cần tăng giá trị đếm
00:41 – 00:44
1 khi chúng tôi chọn một đối tượng mới.
00:44 – 00:47
Trước tiên, chúng ta cần đặt giá trị đếm là 0.
00:47 – 00:49
Vì biến này là riêng tư, chúng tôi không có
00:49 – 00:51
bất kỳ quyền truy cập vào nó trong Thanh tra.
00:51 – 00:55
Biến này chỉ có sẵn để sử dụng trong tập lệnh này
00:55 – 00:58
và như vậy, chúng tôi sẽ cần đặt giá trị bắt đầu
00:58 – 00:59
ở đây trong kịch bản.
00:59 – 01:01
Có một số cách chúng tôi có thể đặt giá trị bắt đầu
01:01 – 01:03
Bá tước, nhưng trong nhiệm vụ này, chúng ta sẽ
01:03 – 01:05
làm điều đó trong chức năng Bắt đầu.
01:06 – 01:10
Trong Bắt đầu, số lượng của chúng tôi bằng 0.
01:11 – 01:13
Tiếp theo, chúng ta cần phải thêm vào Đếm khi chúng tôi nhận
01:13 – 01:16
các đối tượng trò chơi có thể thu thập của chúng tôi.
01:16 – 01:19
Chúng tôi sẽ nhận các đối tượng của chúng tôi trong OnTriggerEnter
01:19 – 01:23
nếu đối tượng trò chơi khác có thẻ Pickup.
01:23 – 01:25
Vì vậy, đây là nơi chúng tôi thêm mã đếm của chúng tôi.
01:25 – 01:27
Sau khi thiết lập các đối tượng trò chơi khác
01:27 – 01:32
trạng thái hoạt động thành False, chúng tôi thêm giá trị mới của Count
01:32 – 01:36
bằng với giá trị cũ của chúng tôi là Đếm cộng 1.
01:37 – 01:40
Có nhiều cách khác để thêm, đếm hoặc tăng
01:40 – 01:41
giá trị khi mã hóa cho Unity,
01:41 – 01:43
nhưng cái này rất dễ hiểu và
01:43 – 01:46
đây là cái mà chúng ta sẽ sử dụng trong bài tập này.
01:47 – 01:49
Lưu tập lệnh này và trở về Unity.
01:51 – 01:53
Bây giờ chúng tôi có thể lưu trữ và tăng số lượng của chúng tôi
01:53 – 01:55
nhưng chúng tôi không có cách nào để hiển thị nó.
01:56 – 01:57
Nó cũng sẽ là tốt để hiển thị một tin nhắn
01:57 – 01:59
khi trò chơi kết thúc.
01:59 – 02:01
Để hiển thị văn bản trong bài tập này, chúng tôi sẽ
02:01 – 02:04
sử dụng UI Toolset của Unity
02:04 – 02:06
để hiển thị văn bản và giá trị của chúng tôi.
02:07 – 02:10
Trước tiên, hãy tạo phần tử văn bản giao diện người dùng mới
02:10 – 02:13
từ trình đơn Tạo của cấp bậc.
02:18 – 02:20
Hãy nhìn vào những gì chúng tôi đã thêm vào hệ thống phân cấp.
02:20 – 02:23
Chúng tôi dường như đã nhận được nhiều hơn chúng tôi mặc cả cho.
02:24 – 02:26
Chúng tôi không chỉ có phần tử văn bản giao diện người dùng,
02:26 – 02:28
nhưng chúng tôi cũng đã tạo một phụ huynh
02:28 – 02:32
yếu tố canvas và đối tượng trò chơi hệ thống sự kiện.
02:32 – 02:35
Tất cả đều được yêu cầu bởi bộ công cụ UI.
02:36 – 02:38
Điều quan trọng nhất cần biết về
02:38 – 02:42
các mục bổ sung này là tất cả các phần tử giao diện người dùng phải
02:42 – 02:45
là con của canvas để hoạt động chính xác.
02:46 – 02:48
Để biết thêm thông tin về các công cụ giao diện người dùng,
02:48 – 02:51
bao gồm canvas và hệ thống sự kiện
02:51 – 02:54
vui lòng xem thông tin được liên kết bên dưới.
02:56 – 02:59
Đổi tên thành phần văn bản CountText.
03:00 – 03:03
Vì vậy, hãy tùy chỉnh yếu tố này một chút.
03:03 – 03:05
Văn bản mặc định hơi tối.
03:07 – 03:09
Hãy làm cho chữ màu trắng,
03:09 – 03:11
để dễ nhìn hơn.
03:11 – 03:13
Kích thước và căn chỉnh là tốt.
03:14 – 03:16
Và hãy thêm một số văn bản giữ chỗ
03:16 – 03:18
Đếm văn bản.
03:20 – 03:23
Chúng tôi muốn văn bản của chúng tôi hiển thị ở phía trên bên trái
03:23 – 03:25
của màn hình khi trò chơi đang chơi.
03:26 – 03:28
Chúng ta có thể thấy rằng văn bản giao diện người dùng hiện tại
03:28 – 03:31
hiển thị ở giữa màn hình trong giao diện trò chơi.
03:32 – 03:34
Điều này là do phần tử văn bản được neo
03:34 – 03:36
đến trung tâm của cha mẹ,
03:36 – 03:39
trong trường hợp này là canvas.
03:39 – 03:43
Cần lưu ý rằng thành phần biến đổi trên các phần tử giao diện người dùng
03:43 – 03:45
khác với các đối tượng trò chơi khác trong Unity.
03:46 – 03:50
Đối với các phần tử giao diện người dùng, biến đổi tiêu chuẩn đã được thay thế
03:50 – 03:52
với biến đổi trực tiếp,
03:52 – 03:55
tính đến nhiều tính năng chuyên dụng
03:55 – 03:57
cần thiết cho một hệ thống giao diện người dùng linh hoạt,
03:57 – 04:00
bao gồm cả neo đậu và định vị.
04:00 – 04:03
Để biết thêm thông tin về biến đổi trực tiếp
04:03 – 04:05
vui lòng xem thông tin được liên kết bên dưới.
04:06 – 04:08
Một trong những cách dễ nhất để di chuyển
04:08 – 04:10
đếm phần tử văn bản ở phía trên bên trái
04:10 – 04:12
là để neo nó vào góc trên bên trái của
04:12 – 04:15
canvas, chứ không phải là trung tâm.
04:15 – 04:19
Để thực hiện việc này, hãy mở menu Anchors và Presets
04:19 – 04:22
bằng cách nhấp vào nút hiển thị giá trị đặt trước neo hiện tại.
04:19 – 04:22
bằng cách nhấp vào nút hiển thị giá trị đặt trước neo hiện tại.
04:23 – 04:25
Khi chúng ta neo lại phần tử văn bản này
04:25 – 04:27
chúng tôi cũng muốn đặt trục
04:27 – 04:30
và vị trí dựa trên neo mới.
04:31 – 04:34
Vì vậy, chúng tôi sẽ giữ phím Shift và Alt
04:34 – 04:37
và chọn nút góc trên bên trái.
04:37 – 04:39
Đó là thực hiện nó, nó ở trong góc.
04:41 – 04:43
Nhưng bây giờ nó trông có vẻ nhô lên chống lại
04:43 – 04:44
góc của chế độ xem trò chơi.
04:45 – 04:47
Hãy cho nó một khoảng trống giữa văn bản
04:47 – 04:49
và các cạnh của màn hình.
04:50 – 04:53
Khi chúng tôi được neo vào góc trên bên trái của canvas
04:53 – 04:56
và chúng tôi cũng đã đặt trục của chúng tôi ở góc trên bên trái
04:56 – 05:00
cách dễ nhất để cung cấp cho văn bản một phòng hơi thở
05:00 – 05:02
là thay đổi biến đổi trực tiếp
05:02 – 05:04
Giá trị Pos X và Pos Y.
05:05 – 05:08
10 và -10 có vẻ đúng,
05:08 – 05:12
với một số phòng xung quanh nó, nhưng nó vẫn lên và ra khỏi con đường.
05:16 – 05:19
Vì vậy, hãy kết nối thành phần văn bản giao diện người dùng
05:19 – 05:21
để hiển thị giá trị đếm của chúng tôi.
05:21 – 05:25
Bắt đầu bằng cách mở tập lệnh PlayerController để chỉnh sửa.
05:27 – 05:31
Trước khi chúng tôi có thể mã bất cứ điều gì liên quan đến bất kỳ yếu tố giao diện người dùng
05:31 – 05:33
chúng ta cần nói kịch bản của mình nhiều hơn về chúng.
05:34 – 05:37
Chi tiết về bộ công cụ giao diện người dùng
05:37 – 05:39
được tổ chức trong những gì được gọi là một không gian tên.
05:40 – 05:43
Chúng ta cần sử dụng không gian tên này
05:43 – 05:47
giống như chúng ta đang sử dụng UnityEngine và System.Collections.
05:47 – 05:51
Vì vậy, để làm điều này, ở trên cùng của kịch bản của chúng tôi viết
05:51 – 05:54
sử dụng UnityEngine.UI.
05:55 – 05:58
Với điều này tại chỗ chúng ta có thể viết mã của chúng tôi.
05:59 – 06:03
Đầu tiên tạo một biến văn bản công khai mới
06:03 – 06:05
được gọi là countText
06:05 – 06:07
để giữ tham chiếu đến văn bản giao diện người dùng
06:07 – 06:09
thành phần trên giao diện người dùng của chúng tôi
06:09 – 06:11
đối tượng trò chơi văn bản.
06:11 – 06:13
Chúng ta cần đặt giá trị bắt đầu của
06:13 – 06:15
Thuộc tính Văn bản của văn bản giao diện người dùng.
06:16 – 06:18
Chúng ta cũng có thể làm điều này trong Start.
06:19 – 06:27
Viết countText.Text = “Count:”
06:27 – 06:32
+ count.ToString và chúng ta cần dấu ngoặc đơn.
06:32 – 06:34
Bây giờ dòng mã này phải được viết
06:34 – 06:37
sau khi dòng thiết lập giá trị đếm của chúng tôi.
06:37 – 06:41
Đếm phải có một số giá trị để chúng tôi đặt văn bản.
06:42 – 06:44
Bây giờ chúng tôi cũng cần cập nhật thuộc tính văn bản này
06:44 – 06:47
mỗi khi chúng tôi chọn một bộ sưu tập mới
06:47 – 06:50
vì vậy trong OnTriggerEnter sau khi chúng tôi tăng số lượng của chúng tôi
06:50 – 06:52
giá trị hãy viết lại
06:52 – 06:59
countText.Text = ‘Count:’ + count.ToString ();
07:00 – 07:03
Hmm, giờ chúng ta đã viết cùng một dòng mã
07:03 – 07:05
hai lần trong cùng một tập lệnh.
07:05 – 07:07
Đây thường là hình thức xấu.
07:08 – 07:10
Một cách để làm điều này một chút thanh lịch hơn
07:10 – 07:13
là tạo một hàm hoạt động ở một nơi
07:13 – 07:16
và chúng ta chỉ cần gọi hàm này mỗi lần chúng ta cần nó.
07:17 – 07:21
Hãy tạo một hàm mới với void SetCountText
07:21 – 07:24
và sau đó là một tập hợp dấu ngoặc đơn và dấu ngoặc đơn trống.
07:25 – 07:28
Bây giờ hãy di chuyển một thể hiện của dòng mã này
07:28 – 07:30
vào chức năng bằng cách cắt và dán nó.
07:32 – 07:34
Và ở vị trí của nó, hãy đặt một dòng mã
07:34 – 07:35
chỉ cần gọi hàm.
07:37 – 07:39
Cuối cùng, hãy thay thế dòng khác bằng
07:39 – 07:41
chức năng gọi là tốt.
07:43 – 07:47
Xuất sắc. Lưu và trao đổi lại thành Unity.
07:49 – 07:51
Bây giờ chúng ta thấy kịch bản PlayerController của chúng ta đã
07:51 – 07:53
một thuộc tính văn bản mới.
07:54 – 07:56
Chúng tôi có thể liên kết tham chiếu đến văn bản Đếm
07:56 – 07:58
đơn giản bằng cách kéo và thả
07:58 – 08:01
Đếm trò chơi đối tượng CountText vào khe.
08:02 – 08:04
Unity sẽ tìm thấy thành phần văn bản
08:04 – 08:09
trên đối tượng trò chơi và liên kết chính xác tham chiếu.
08:10 – 08:13
Bây giờ hãy lưu, vào chế độ chơi và kiểm tra.
08:17 – 08:19
Ah-ha! Chúng tôi không chỉ thu thập
08:19 – 08:21
những đối tượng này nhưng chúng tôi đếm chúng ngay bây giờ.
08:22 – 08:24
Hãy thoát khỏi chế độ chơi.
08:26 – 08:28
Chúng tôi cần hiển thị thông báo khi chúng tôi có
08:28 – 08:30
thu thập tất cả các hình khối.
08:30 – 08:34
Để làm điều này, chúng ta sẽ cần một đối tượng văn bản giao diện người dùng khác.
08:35 – 08:37
Một lần nữa, bằng cách sử dụng trình đơn Tạo của hệ thống phân cấp
08:37 – 08:39
tạo một đối tượng trò chơi văn bản giao diện người dùng mới.
08:42 – 08:44
Đổi tên nó Win Text.
08:45 – 08:47
Lưu ý cách phần tử văn bản giao diện người dùng mới
08:47 – 08:49
được tự động thêm vào canvas của chúng tôi.
08:50 – 08:54
Một lần nữa, như trước đây, chúng ta hãy tùy chỉnh các giá trị trên thành phần.
08:55 – 08:58
Hãy tô màu chữ trắng để dễ nhìn hơn.
08:59 – 09:01
Hãy làm cho văn bản lớn hơn một chút,
09:01 – 09:03
hãy thử khoảng 24.
09:05 – 09:09
Cuối cùng, chúng ta hãy điều chỉnh căn chỉnh đến giữa và giữa.
09:10 – 09:12
Và một lần nữa, hãy thêm văn bản trình giữ chỗ
09:12 – 09:14
Win Text.
09:17 – 09:21
Chúng tôi muốn văn bản này hiển thị ở chính giữa màn hình trò chơi
09:21 – 09:24
nhưng lên một chút để nó không bao gồm đối tượng trò chơi người chơi.
09:25 – 09:28
Để làm điều này chỉ cần điều chỉnh các biến đổi của rect
09:28 – 09:32
Giá trị Pos Y theo mặc định là thành phần văn bản giao diện người dùng này
09:32 – 09:35
được neo vào giữa khung hình.
09:36 – 09:39
Một giá trị khoảng 75 cảm thấy tốt.
09:39 – 09:42
Lưu cảnh và trao đổi lại cho trình chỉnh sửa tập lệnh của chúng tôi.
09:43 – 09:47
Chúng tôi cần thêm tham chiếu cho phần tử văn bản giao diện người dùng này.
09:47 – 09:52
Tạo biến văn bản công khai mới
09:53 – 09:56
và gọi nó là winText.
09:56 – 09:59
Bây giờ hãy đặt giá trị bắt đầu cho
09:59 – 10:01
Thuộc tính văn bản của văn bản giao diện người dùng.
10:02 – 10:05
Điều này được đặt thành một chuỗi rỗng hoặc hai
10:05 – 10:08
dấu ngoặc kép không có nội dung.
10:08 – 10:10
Thuộc tính văn bản này sẽ bắt đầu trống.
10:10 – 10:13
Sau đó, trong hàm SetCountText, hãy viết
10:13 – 10:18
nếu Đếm lớn hơn hoặc bằng 12,
10:18 – 10:20
đó là tổng số đối tượng chúng ta có trong
10:20 – 10:28
trò chơi để thu thập, sau đó winText.Text của chúng tôi bằng You Win.
10:28 – 10:31
Lưu tập lệnh này và trở về Unity.
10:33 – 10:35
Một lần nữa trên trình phát của chúng tôi,
10:35 – 10:39
PlayerController của chúng tôi có thuộc tính văn bản giao diện người dùng mới.
10:39 – 10:41
Chúng ta có thể kết hợp thành phần
10:41 – 10:46
một lần nữa bằng cách kéo đối tượng trò chơi WinText vào khe.
10:47 – 10:49
Lưu cảnh và chơi.
10:55 – 10:57
Vì vậy, chúng tôi đang chọn các đối tượng trò chơi của mình,
10:59 – 11:01
chúng tôi đang đếm tập hợp của chúng tôi,
11:02 – 11:02
11:03 – 11:04
chúng ta thắng rồi!
11:04 – 11:07
Và như chúng ta có thể thấy khi chúng ta thu thập được 12 vật thể
11:07 – 11:10
chúng tôi hiển thị văn bản ‘Bạn thắng’.
11:11 – 11:14
Trong bài tập tiếp theo và cuối cùng của loạt bài này
11:14 – 11:18
chúng tôi sẽ xây dựng trò chơi và triển khai trò chơi bằng trình phát độc lập.

PlayerController

Expand view

Copy code
using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class PlayerController : MonoBehaviour {

public float speed;
public Text countText;
public Text winText;

private Rigidbody rb;
private int count;

void Start ()
{
rb = GetComponent<Rigidbody>();
count = 0;
SetCountText ();
winText.text = "";
}

void FixedUpdate ()
{
float moveHorizontal = Input.GetAxis ("Horizontal");
float moveVertical = Input.GetAxis ("Vertical");

Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);

rb.AddForce (movement * speed);
}

void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag ( "Pick Up"))
{
other.gameObject.SetActive (false);
count = count + 1;
SetCountText ();
}
}

void SetCountText ()
{
countText.text = "Count: " + count.ToString ();
if (count >= 12)
{
winText.text = "You Win!";
}
}
}


1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18


19


20


21


22


23


24


25


26


27


28


29


30


31


32


33


34


35


36


37


38


39


40


41


42


43


44


45


46


47


48


49


50


About lbtmicr06

Check Also

Lời dịch bài hát Happy New Year

No more champagneKhông còn rượu sâm panh nữaAnd the fireworks are throughVà pháo hoa cũng …

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *