Đã kiểm tra với phiên bản: 5
- -
Khó khăn: Người mới bắt đầu
Thu thập các đối tượng pick-up; thảo luận về vật lý, va chạm và kích hoạt.Chúng tôi muốn có thể nhận trò chơi thu thập được
00:04 - 00:07
đối tượng khi đối tượng trò chơi người chơi của chúng tôi va chạm với chúng.
00:07 - 00:09
Để làm điều này, chúng ta cần phát hiện va chạm của chúng ta
00:09 - 00:11
giữa đối tượng trò chơi người chơi và
00:11 - 00:13
các đối tượng trò chơi PickUp.
00:13 - 00:15
Chúng ta sẽ cần phải có những va chạm này
00:15 - 00:17
kích hoạt một hành vi mới và chúng tôi sẽ cần
00:17 - 00:19
kiểm tra những va chạm này để đảm bảo chúng tôi
00:19 - 00:21
chọn đúng đối tượng.
00:21 - 00:23
Các đối tượng PickUp, hình cầu của người chơi,
00:23 - 00:25
mặt đất và các bức tường đều có
00:25 - 00:28
va chạm thông báo cho chúng tôi về va chạm.
00:29 - 00:30
Nếu chúng tôi không kiểm tra va chạm của chúng tôi để tìm hiểu
00:30 - 00:32
đối tượng nào chúng tôi đã va chạm với
00:32 - 00:34
chúng tôi có thể thu thập các đối tượng sai.
00:35 - 00:37
Chúng tôi có thể thu thập sàn nhà, hoặc các bức tường.
00:37 - 00:40
Như một vấn đề phải đối mặt nếu chúng tôi không kiểm tra va chạm của chúng tôi
00:40 - 00:42
trên khung hình đầu tiên của trò chơi, chúng tôi sẽ
00:42 - 00:44
tiếp xúc với máy bay mặt đất
00:44 - 00:45
và chúng tôi sẽ thu thập máy bay mặt đất
00:45 - 00:48
và sau đó chúng tôi sẽ rơi vào khoảng trống của không gian cảnh
00:48 - 00:50
và trò chơi về cơ bản sẽ kết thúc.
00:51 - 00:55
Đầu tiên, chúng tôi không cần người chơi của mình vẫn không hoạt động.
00:55 - 00:56
hãy đánh dấu vào ô Tích cực và
00:56 - 00:58
mang lại cho người chơi của chúng tôi.
01:00 - 01:02
Tiếp theo hãy chọn kịch bản PlayerController
01:02 - 01:04
và mở nó để chỉnh sửa.
01:04 - 01:06
Chỉ cần lưu ý, chúng tôi có thể chỉnh sửa
01:06 - 01:08
kịch bản bất kể trò chơi
01:08 - 01:09
đối tượng đang hoạt động hay không.
01:11 - 01:13
Bây giờ chúng ta đã mở tập lệnh,
01:13 - 01:14
chúng ta sẽ viết mã gì?
01:15 - 01:17
Chúng ta có thể viết máy va chạm
01:17 - 01:19
và sau đó tìm kiếm tài liệu bằng cách sử dụng
01:19 - 01:20
kết hợp phím nóng.
01:21 - 01:24
Nhưng có một cách khác mà chúng tôi có thể làm điều này là tốt.
01:25 - 01:27
Hãy quay lại Unity và xem chi tiết
01:27 - 01:29
đối tượng trò chơi người chơi của chúng tôi.
01:30 - 01:32
Những gì chúng tôi quan tâm ở đây là
01:32 - 01:34
thành phần va chạm hình cầu.
01:34 - 01:37
Trong tiêu đề của mỗi thành phần ở bên trái
01:37 - 01:39
là mũi tên hướng xuống của thành phần,
01:39 - 01:42
biểu tượng, hộp kiểm Bật
01:42 - 01:45
nếu nó có sẵn và loại thành phần.
01:46 - 01:49
Bên phải là thiết bị nhạy cảm ngữ cảnh gizmo
01:49 - 01:52
và một biểu tượng của một cuốn sách nhỏ với một dấu chấm hỏi.
01:53 - 01:54
Bây giờ đây là những gì chúng ta cần.
01:54 - 01:57
Đây là liên kết nhanh đến tham chiếu thành phần.
01:58 - 02:00
Nếu chúng ta chọn biểu tượng này, chúng ta sẽ lấy
02:00 - 02:02
không phải tham chiếu tập lệnh mà là
02:02 - 02:04
tham chiếu thành phần.
02:05 - 02:07
Chúng tôi sẽ đọc tài liệu này để tìm hiểu thêm
02:07 - 02:09
về cách sử dụng thành phần này trong ngữ cảnh
02:09 - 02:10
của trình chỉnh sửa.
02:10 - 02:13
Tuy nhiên, chúng tôi muốn tìm hiểu cách
02:13 - 02:15
kịch bản cho lớp của thành phần này.
02:15 - 02:18
Để làm điều này, chúng tôi chỉ cần chuyển sang tập lệnh
02:19 - 02:21
và chúng tôi được đưa đến tham chiếu tập lệnh
02:21 - 02:22
cho máy va chạm hình cầu.
02:23 - 02:26
Chúng tôi muốn phát hiện và kiểm tra va chạm của chúng tôi.
02:26 - 02:28
Đối với dự án này, chúng tôi sẽ sử dụng
02:28 - 02:30
OnTriggerEnter.
02:37 - 02:40
Cứ tưởng tượng nếu chúng ta nói, một thợ sửa ống nước táo bạo
02:40 - 02:43
và chúng tôi đã nhảy lên để thu thập một vòm tiền xu hoàn hảo
02:43 - 02:45
và bị trả lại lần đầu tiên khi chúng tôi
02:45 - 02:47
thu thập nó và rơi xuống đất.
02:48 - 02:49
Không phải rất thanh lịch.
02:50 - 02:52
Mã này sẽ cho chúng ta khả năng phát hiện
02:52 - 02:54
liên hệ giữa đối tượng trò chơi người chơi của chúng tôi
02:54 - 02:56
và đối tượng trò chơi PickUp của chúng tôi
02:56 - 02:59
mà không thực sự tạo ra một va chạm vật lý.
03:00 - 03:02
Ví dụ mã không chính xác
03:02 - 03:03
những gì chúng tôi đang tìm kiếm.
03:03 - 03:06
Nhưng không sao, chúng ta có thể thay đổi điều đó.
03:06 - 03:08
Đầu tiên, hãy sao chép mã,
03:09 - 03:11
và sau đó quay trở lại ứng dụng kịch bản của chúng tôi.
03:12 - 03:15
Bây giờ chúng ta quay lại kịch bản, hãy dán mã.
03:16 - 03:18
Vì chúng tôi đã sao chép mã này từ một trang web
03:18 - 03:20
hãy sửa lại indents.
03:20 - 03:21
Trong trường hợp này tôi sẽ đảm bảo
03:21 - 03:23
indents là các tab và tất cả các tab đều là
03:23 - 03:25
được căn chỉnh chính xác.
03:25 - 03:27
Tiếp theo, hãy xem mã này.
03:27 - 03:30
Chúng tôi đang sử dụng chức năng OnTriggerEnter.
03:30 - 03:32
OnTriggerEnter sẽ được Unity gọi
03:32 - 03:34
khi đối tượng trò chơi của chúng ta phản ứng đầu tiên
03:34 - 03:36
một máy va chạm kích hoạt.
03:36 - 03:38
Chúng tôi được đưa ra như một đối số
03:38 - 03:41
một tham chiếu đến bộ va chạm kích hoạt mà chúng ta đã chạm vào.
03:42 - 03:44
Đây là máy va chạm được gọi là Khác.
03:44 - 03:46
Tài liệu tham khảo này cho chúng ta một cách để có được một
03:46 - 03:48
giữ các va chạm mà chúng ta chạm vào.
03:49 - 03:51
Với mã này, khi chúng tôi chạm vào trình kích hoạt khác
03:51 - 03:54
va chạm chúng ta sẽ phá hủy đối tượng trò chơi
03:54 - 03:56
rằng máy va chạm kích hoạt được gắn vào
03:56 - 03:59
thông qua tham chiếu other.gameObject.
03:59 - 04:02
Bằng cách tiêu diệt đối tượng trò chơi đó, đối tượng trò chơi,
04:02 - 04:04
tất cả các thành phần của nó và tất cả
04:04 - 04:06
trẻ em và các thành phần của chúng được loại bỏ
04:06 - 04:08
từ hiện trường.
04:08 - 04:10
Vì lợi ích của ví dụ trong bài tập này
04:10 - 04:12
chúng tôi sẽ không phá hủy đối tượng trò chơi khác
04:12 - 04:14
chúng tôi sẽ hủy kích hoạt nó.
04:14 - 04:16
Giống như chúng ta đã hủy kích hoạt đối tượng trình phát
04:16 - 04:19
khi chúng tôi đang tạo ra các đối tượng PickUp của chúng tôi.
04:20 - 04:23
Đầu tiên, hãy loại bỏ Destroy (other.gameobject)
04:23 - 04:25
mã từ hàm.
04:25 - 04:27
Nhưng hãy dán nó xuống dưới kịch bản của chúng ta
04:27 - 04:29
như một bảng màu để làm việc.
04:30 - 04:33
Làm thế nào chúng ta sẽ hủy kích hoạt các đối tượng PickUp của chúng tôi?
04:34 - 04:35
Vâng, chúng ta có những manh mối nào?
04:36 - 04:38
Chúng ta có thể giải quyết trò chơi của người va chạm khác
04:38 - 04:41
đối tượng thông qua other.gameObject.
04:41 - 04:43
Chúng ta có thể thấy điều này ở đây trong mã mẫu.
04:43 - 04:45
Và chúng tôi muốn thử nghiệm đối tượng trò chơi khác
04:45 - 04:48
và nếu đó là đối tượng PickUp, chúng tôi muốn hủy kích hoạt
04:48 - 04:49
đối tượng trò chơi đó.
04:50 - 04:52
Vì vậy, hãy tìm kiếm GameObject
04:52 - 04:55
với sự kết hợp phím nóng của chúng tôi và xem những gì chúng tôi có thể tìm thấy.
04:56 - 04:59
Bây giờ chúng ta có trang trên GameObject.
04:59 - 05:01
Có hai mục quan trọng ở đây mà chúng tôi muốn.
05:02 - 05:04
Họ là tag,
05:04 - 05:06
cho phép chúng tôi xác định đối tượng trò chơi
05:06 - 05:09
bằng cách so sánh giá trị thẻ với chuỗi.
05:09 - 05:11
Và SetActive.
05:11 - 05:15
Đây là cách chúng tôi kích hoạt hoặc hủy kích hoạt đối tượng trò chơi thông qua mã.
05:16 - 05:18
Mục cuối cùng chúng ta cần biết là
05:18 - 05:20
So sánh thẻ.
05:20 - 05:22
So sánh thẻ cho phép chúng tôi hiệu quả
05:22 - 05:27
so sánh thẻ của bất kỳ đối tượng trò chơi nào với giá trị sting.
05:28 - 05:32
Hãy mở ba mục này, mỗi mục trong tab của riêng chúng.
05:35 - 05:39
Thẻ cho phép chúng tôi xác định đối tượng trò chơi theo giá trị thẻ.
05:40 - 05:45
Chúng tôi phải khai báo thẻ của chúng tôi trong Bảng điều khiển và Lớp trước khi sử dụng chúng.
05:46 - 05:49
Có thể kiểm tra thẻ trực tiếp với giá trị chuỗi
05:49 - 05:51
với mã như
05:51 - 05:57
nếu gameObject.tag giống như một số giá trị chuỗi.
05:57 - 06:01
Nhưng có một cách tích hợp hiệu quả hơn để làm điều này,
06:01 - 06:03
và đó là CompareTag
06:04 - 06:06
Với CompareTag chúng tôi có hiệu quả
06:06 - 06:10
so sánh thẻ của bất kỳ đối tượng trò chơi nào có giá trị chuỗi.
06:12 - 06:14
Hãy sao chép mã mẫu và
06:14 - 06:16
dán nó vào bảng làm việc của chúng tôi.
06:21 - 06:26
Bây giờ GameObject.SetActive.
06:27 - 06:30
Đây là cách chúng tôi kích hoạt hoặc hủy kích hoạt đối tượng trò chơi.
06:31 - 06:33
Đây là mã tương đương với cách nhấp
06:33 - 06:35
hộp kiểm hiện hoạt bên cạnh
06:35 - 06:37
Tên trường trong Trình kiểm tra.
06:40 - 06:42
Trong trường hợp của chúng tôi, giống như đoạn mã,
06:42 - 06:46
chúng ta sẽ gọi GameObject.SetActive (false)
06:46 - 06:48
để tắt các đối tượng trò chơi PickUp của chúng tôi.
06:50 - 06:55
Hãy sao chép mã này và quay lại trình chỉnh sửa tập lệnh của chúng tôi
06:55 - 06:57
dán nó vào bảng màu của chúng tôi.
06:59 - 07:01
Tôi cảm thấy chúng tôi có đủ phần để viết mã của chúng tôi
07:03 - 07:10
vì vậy hãy viết nếu (other.gameObject.CompareTag
07:11 - 07:13
với giá trị chuỗi của PickUp
07:14 - 07:18
và chúng tôi sẽ phải xác định thẻ này trong Unity sau.
07:19 - 07:24
other.gameObject.SetActive (false);
07:26 - 07:28
Bây giờ mã này sẽ được gọi mỗi lần
07:28 - 07:30
chúng tôi chạm vào một máy va chạm kích hoạt.
07:30 - 07:33
Chúng tôi được đưa ra một tham chiếu đến máy va chạm mà chúng tôi chạm vào,
07:33 - 07:34
chúng tôi kiểm tra thẻ của nó,
07:34 - 07:37
và nếu thẻ giống với giá trị chuỗi
07:37 - 07:40
PickUp chúng ta sẽ lấy đối tượng game khác
07:40 - 07:42
và chúng ta sẽ gọi SetActive (false),
07:42 - 07:45
sẽ hủy kích hoạt đối tượng trò chơi đó.
07:45 - 07:48
Bây giờ chúng tôi không cần mã này, chúng tôi đã tiết kiệm được nữa
07:48 - 07:51
và giữ nó sẽ chỉ gây nhầm lẫn cho trình biên dịch
07:51 - 07:52
vì vậy chúng tôi có thể xóa nó.
07:54 - 07:56
Hãy lưu tập lệnh này và quay lại Unity
07:56 - 07:57
và kiểm tra lỗi.
07:59 - 08:01
Điều đầu tiên chúng ta cần làm là thiết lập giá trị thẻ
08:01 - 08:03
cho các đối tượng PickUp.
08:03 - 08:06
Chọn nội dung prefab cho đối tượng PickUp.
08:06 - 08:08
Khi chúng tôi xem danh sách thẻ
08:08 - 08:10
chúng tôi không thấy bất kỳ thẻ nào được gọi là PickUp
08:10 - 08:12
vì vậy chúng tôi cần phải thêm một.
08:12 - 08:14
Chọn Thêm thẻ.
08:15 - 08:19
Thao tác này sẽ trả về Bảng điều khiển và Lớp.
08:19 - 08:21
Ở đây chúng ta có thể tùy chỉnh các thẻ và các lớp.
08:22 - 08:25
Lưu ý rằng danh sách này trống.
08:26 - 08:29
Để tạo thẻ tùy chỉnh mới, hãy chọn nút +
08:29 - 08:32
để thêm hàng mới vào danh sách thẻ.
08:33 - 08:37
Trong phần tử trống mới, trong thẻ trường hợp 0 của chúng tôi,
08:37 - 08:40
nhập Pickup và đây là trường hợp nhạy cảm
08:40 - 08:43
và cần phải chính xác cùng một chuỗi
08:43 - 08:45
mà chúng ta có trong kịch bản của mình.
08:45 - 08:47
Nếu nghi ngờ chúng ta có thể sao chép và dán
08:47 - 08:50
chuỗi này để có được giá trị chính xác.
08:52 - 08:54
Khi chúng ta nhìn lại tài sản prefab
08:54 - 08:57
lưu ý rằng nội dung vẫn chưa được gắn thẻ.
08:57 - 09:00
Bằng cách chọn Thêm thẻ, chúng tôi đã thay đổi tiêu điểm của mình
09:00 - 09:02
từ nội dung prefab đến Trình quản lý thẻ
09:02 - 09:05
và trong Trình quản lý thẻ, chúng tôi đã tạo thẻ của mình.
09:05 - 09:07
Bây giờ chúng ta cần áp dụng tag đó
09:07 - 09:08
vào nội dung prefab.
09:09 - 09:11
Chọn lại thả xuống Thẻ
09:11 - 09:14
và xem cách chúng tôi hiện có Pickup trong danh sách.
09:14 - 09:16
Chọn thẻ này từ danh sách và nội dung
09:16 - 09:17
hiện được gắn thẻ PickUp.
09:17 - 09:20
Và với sức mạnh của prefabs
09:20 - 09:23
tất cả các phiên bản hiện được gắn thẻ PickUp.
09:25 - 09:27
Bây giờ hãy thử trò chơi của chúng tôi.
09:27 - 09:29
Lưu cảnh và vào chế độ phát.
09:33 - 09:36
Hmm, được rồi, thẻ của chúng tôi được đặt thành PickUp
09:36 - 09:38
nhưng chúng tôi vẫn đang bật ra khỏi khối PickUp
09:38 - 09:41
giống như chúng ta đang dội lên tường.
09:41 - 09:43
Vì vậy, hãy thoát khỏi chế độ chơi.
09:43 - 09:45
Trước khi chúng ta thảo luận lý do tại sao chúng ta đang nảy ra
09:45 - 09:47
các khối Pickup thay vì chọn chúng
09:47 - 09:49
chúng ta cần có một cuộc thảo luận ngắn gọn về
09:49 - 09:50
Hệ thống vật lý của Unity.
09:51 - 09:54
Tôi sẽ vào chế độ chơi cho cuộc thảo luận này.
09:58 - 10:01
Hãy nhìn vào một trong những hình khối của chúng tôi và người chơi của chúng tôi.
10:01 - 10:03
Như một sang một bên, chúng ta có thể chọn hai hoặc
10:03 - 10:05
nhiều đối tượng trò chơi cùng một lúc
10:05 - 10:07
và kiểm tra tất cả.
10:07 - 10:09
Chúng tôi làm điều này bằng cách giữ phím lệnh
10:09 - 10:12
trên mac hoặc phím điều khiển trên PC,
10:12 - 10:13
và chọn các đối tượng trò chơi.
10:14 - 10:16
Khi chúng tôi chọn nhiều đối tượng trò chơi
10:16 - 10:18
lưu ý cách thanh tra thay đổi để hiển thị
10:18 - 10:20
các thành phần và thuộc tính phổ biến
10:20 - 10:22
giá trị của các đối tượng trò chơi đã chọn.
10:23 - 10:26
Thanh tra cũng cho phép chỉnh sửa đa đối tượng.
10:26 - 10:28
Sử dụng chỉnh sửa đa đối tượng tôi sẽ
10:28 - 10:30
vô hiệu hóa trình kết xuất lưới trên cả hai
10:30 - 10:33
cầu của người chơi và khối được chọn với một cú nhấp chuột.
10:34 - 10:36
Điều này khiến chúng tôi có hai đường viền màu xanh lá cây
10:36 - 10:39
khối lượng va chạm cho hai vật thể này.
10:40 - 10:43
Làm thế nào để va chạm làm việc trong động cơ vật lý của Unity?
10:44 - 10:46
Động cơ vật lý không cho phép hai máy va chạm
10:46 - 10:47
khối lượng để chồng lên nhau.
10:47 - 10:49
Khi công cụ vật lý phát hiện rằng bất kỳ hai
10:49 - 10:52
hoặc nhiều người va chạm sẽ chồng lên khung đó
10:52 - 10:54
công cụ vật lý sẽ xem xét các vật thể và
10:54 - 10:57
phân tích tốc độ và vòng quay và hình dạng của chúng
10:57 - 10:59
và tính toán một vụ va chạm.
10:59 - 11:01
Một trong những yếu tố chính trong tính toán này
11:01 - 11:03
liệu các va chạm có tĩnh không
11:03 - 11:05
hoặc năng động.
11:05 - 11:08
Máy va chạm tĩnh thường không di chuyển
11:08 - 11:10
các phần của cảnh của bạn, như tường, sàn nhà,
11:10 - 11:12
hoặc đài phun nước ở sân trong.
11:12 - 11:15
Máy va chạm động là những thứ di chuyển
11:15 - 11:17
giống như quả cầu của người chơi hoặc một chiếc xe hơi.
11:18 - 11:20
Khi tính toán va chạm hình học tĩnh
11:20 - 11:22
sẽ không bị ảnh hưởng bởi vụ va chạm.
11:23 - 11:25
Nhưng các đối tượng năng động sẽ được.
11:25 - 11:27
Trong trường hợp của chúng ta, cầu của người chơi là năng động,
11:27 - 11:29
hoặc di chuyển hình học, và nó đang nảy
11:29 - 11:31
tắt hình học tĩnh của các hình khối.
11:32 - 11:34
Ngay khi nó bật ra khỏi hình học tĩnh
11:34 - 11:36
của các bức tường.
11:36 - 11:38
Tuy nhiên, động cơ vật lý có thể cho phép
11:38 - 11:41
thâm nhập hoặc chồng chéo của khối lượng va chạm.
11:41 - 11:43
Khi nó thực hiện công cụ vật lý này
11:43 - 11:45
vẫn tính toán khối lượng va chạm và
11:45 - 11:47
theo dõi sự va chạm chồng lên nhau.
11:48 - 11:50
Nhưng nó không thể hiện hành động chồng chéo lên nhau
11:50 - 11:53
đối tượng, nó không gây ra va chạm.
11:53 - 11:56
Chúng tôi làm điều này bằng cách làm cho những người va chạm của chúng tôi
11:56 - 11:58
trình kích hoạt hoặc trình kích hoạt trình kích hoạt.
11:58 - 12:00
Khi chúng ta làm cho những người va chạm của chúng ta kích hoạt,
12:00 - 12:02
hoặc kích hoạt va chạm, chúng ta có thể phát hiện
12:02 - 12:05
liên lạc
12:05 - 12:07
Thông báo sự kiện OnTrigger.
12:07 - 12:09
Khi một va chạm là một kích hoạt bạn có thể làm
12:09 - 12:11
những thứ thông minh như đặt kích hoạt ở giữa
12:11 - 12:14
của một cánh cửa trong trò chơi phiêu lưu,
12:14 - 12:15
và khi người chơi vào trình kích hoạt
12:15 - 12:17
cập nhật bản đồ thu nhỏ và tin nhắn phát
12:17 - 12:19
'bạn đã phát hiện ra căn phòng này'.
12:20 - 12:22
Hoặc mỗi khi người chơi của bạn đi vòng quanh
12:22 - 12:24
nhện góc rơi từ trần nhà
12:24 - 12:26
bởi vì người chơi đã đi qua một cò súng.
12:27 - 12:30
Để biết thêm thông tin về OnCollision và bật
12:30 - 12:32
thông báo kích hoạt xem các bài học được liên kết bên dưới.
12:33 - 12:35
Chúng tôi đang sử dụng OnTriggerEnter trong mã của chúng tôi
12:35 - 12:37
thay vì OnCollisionEnter.
12:37 - 12:39
Vì vậy, chúng ta cần phải thay đổi khối lượng va chạm của chúng ta
12:39 - 12:41
để kích hoạt tập.
12:41 - 12:44
Để làm điều này, chúng ta phải ra khỏi chế độ chơi.
12:46 - 12:48
Hãy chọn nội dung prefab và xem xét
12:48 - 12:50
thành phần hộp va chạm.
12:50 - 12:52
Ở đây chúng tôi chọn Kích hoạt
12:52 - 12:54
và một lần nữa sức mạnh của prefabs
12:54 - 12:58
tất cả các đối tượng PickUp của chúng tôi hiện đang sử dụng trình kích hoạt trình kích hoạt.
12:58 - 13:02
Hãy lưu cảnh của chúng ta, vào chế độ chơi và thử nghiệm.
13:02 - 13:04
Và khi người chơi của chúng tôi vào trình kích hoạt
13:04 - 13:06
chúng tôi lấy đồ vật.
13:06 - 13:08
Xuất sắc.
13:09 - 13:11
Hãy thoát khỏi chế độ chơi.
13:12 - 13:14
Mọi thứ đều tuyệt vời.
13:14 - 13:16
Chúng tôi chỉ có một vấn đề.
13:16 - 13:19
Chúng tôi đã phạm một sai lầm nhỏ,
13:19 - 13:21
và điều này liên quan đến cách Unity
13:21 - 13:22
tối ưu hóa vật lý của nó.
13:23 - 13:25
Là một tối ưu hóa hiệu suất Unity
13:25 - 13:27
tính toán tất cả các tập
13:27 - 13:29
của tất cả các trình thu thập tĩnh trong một cảnh
13:29 - 13:32
và giữ thông tin này trong bộ nhớ cache.
13:32 - 13:34
Điều này có ý nghĩa như các va chạm tĩnh
13:34 - 13:37
không nên di chuyển và điều này giúp tính toán lại điều này
13:37 - 13:39
thông tin mỗi khung hình.
13:39 - 13:42
Nơi mà chúng tôi đã làm sai lầm của chúng tôi là bằng cách xoay hình khối của chúng tôi.
13:42 - 13:46
Bất cứ lúc nào chúng ta di chuyển, xoay hoặc co giãn một máy va chạm tĩnh
13:46 - 13:49
Unity sẽ tính toán lại tất cả các trình thu thập tĩnh một lần nữa
13:49 - 13:51
và cập nhật bộ nhớ cache collider tĩnh.
13:51 - 13:54
Để tính toán lại bộ đệm, hãy lấy tài nguyên.
13:55 - 13:57
Chúng ta có thể di chuyển, xoay hoặc mở rộng quy mô
13:57 - 14:00
những kẻ va chạm thường xuyên như chúng ta muốn và Unity sẽ không
14:00 - 14:02
recache bất kỳ khối lượng va chạm.
14:02 - 14:04
Unity hy vọng chúng ta di chuyển va chạm.
14:04 - 14:06
Chúng ta chỉ cần chỉ ra cho Unity
14:06 - 14:09
va chạm rất năng động trước khi chúng ta di chuyển chúng.
14:09 - 14:12
Chúng tôi làm điều này bằng cách sử dụng thành phần cơ thể cứng nhắc.
14:12 - 14:14
Bất kỳ đối tượng trò chơi nào có máy va chạm
14:14 - 14:17
và một cơ thể cứng nhắc được coi là năng động.
14:18 - 14:20
Bất kỳ đối tượng trò chơi nào có kèm theo máy va chạm
14:20 - 14:24
nhưng không có cơ thể vật lý cứng nhắc nào được mong đợi là tĩnh.
14:24 - 14:26
Hiện tại đối tượng trò chơi PickUp của chúng tôi có
14:26 - 14:29
hộp va chạm nhưng không có cơ thể cứng nhắc.
14:29 - 14:31
Vì vậy, Unity tính toán lại tĩnh của chúng tôi
14:31 - 14:33
collider cache mỗi frame.
14:34 - 14:36
Giải pháp là thêm một cơ thể cứng nhắc
14:36 - 14:38
cho các đối tượng PickUp.
14:38 - 14:41
Điều này sẽ di chuyển các khối không bị va chạm tĩnh
14:41 - 14:43
là người va chạm năng động.
14:43 - 14:45
Hãy lưu và chơi.
14:46 - 14:48
Và hình khối của chúng tôi rơi xuống sàn nhà.
14:48 - 14:51
Lực hấp dẫn kéo chúng xuống, và khi chúng được kích hoạt
14:51 - 14:53
chúng không va chạm với sàn nhà.
14:53 - 14:55
Hãy thoát khỏi chế độ chơi.
14:55 - 14:58
Nếu chúng ta nhìn vào thành phần cơ thể cứng nhắc
14:58 - 15:01
chúng ta chỉ có thể vô hiệu hóa Use Gravity,
15:01 - 15:04
mà sẽ ngăn chặn các khối được kéo xuống dưới.
15:04 - 15:06
Tuy nhiên, đây chỉ là một giải pháp một phần.
15:07 - 15:09
Nếu chúng tôi làm điều này, mặc dù hình khối của chúng tôi
15:09 - 15:11
sẽ không phản ứng với lực hấp dẫn mà họ vẫn sẽ
15:11 - 15:13
đáp ứng với lực lượng vật lý
15:13 - 15:15
Có một giải pháp tốt hơn.
15:15 - 15:18
Và đó là chọn Kinematic.
15:19 - 15:22
Khi chúng tôi làm điều này, chúng tôi thiết lập thành phần cơ thể cứng nhắc này
15:22 - 15:24
một cơ thể cứng nhắc động học.
15:24 - 15:26
Một cơ thể cứng nhắc động học sẽ không phản ứng
15:26 - 15:29
để lực lượng vật lý và nó có thể được hoạt hình
15:29 - 15:31
và di chuyển bởi nó biến đổi.
15:32 - 15:35
Điều này là rất tốt cho tất cả mọi thứ từ các đối tượng với va chạm
15:35 - 15:37
như thang máy và nền tảng di chuyển,
15:37 - 15:39
đối tượng có trình kích hoạt, như bộ sưu tập của chúng tôi
15:39 - 15:42
cần phải được làm động hoặc di chuyển bằng biến đổi của chúng.
15:42 - 15:44
Để biết thêm thông tin về cơ thể cứng nhắc
15:44 - 15:48
và là Kinematic xem các bài học liên kết dưới đây.
15:49 - 15:52
Hãy lưu cảnh của chúng tôi và vào chế độ chơi để kiểm tra.
15:52 - 15:56
Bây giờ hành vi của chúng ta giống hệt nhau và biểu diễn.
15:56 - 15:59
Vì vậy, người va chạm tĩnh không nên di chuyển,
15:59 - 16:01
như tường và sàn nhà.
16:01 - 16:03
Người va chạm động có thể di chuyển,
16:03 - 16:05
và có một cơ thể cứng nhắc kèm theo.
16:05 - 16:08
Cơ thể cứng nhắc tiêu chuẩn là
16:05 - 16:08
Các vật cứng cứng tiêu chuẩn được di chuyển bằng các lực vật lý.
16:08 - 16:10
Các vật cứng cứng được di chuyển bằng cách sử dụng
16:10 - 16:12
biến đổi của họ.
16:13 - 16:15
Trong bài tập tiếp theo, chúng tôi sẽ tính
16:15 - 16:17
đối tượng có thể sưu tập và tạo giao diện người dùng đơn giản
16:17 - 16:20
để hiển thị điểm số và tin nhắn của chúng tôi.
Mã này phản ánh trạng thái hiện tại của tập lệnh khi kết thúc bài học cụ thể này. Kịch bản này sẽ tiếp tục phát triển và trưởng thành khi chuỗi tiếp tục.
Mã này phản ánh trạng thái hiện tại của tập lệnh khi kết thúc bài học cụ thể này. Kịch bản này sẽ tiếp tục phát triển và trưởng thành khi chuỗi tiếp tục.
PlayerController
Expand view
Copy code
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour {
public float speed;
private Rigidbody rb;
void Start ()
{
rb = GetComponent<Rigidbody>();
}
No comments:
Post a Comment