Với trình bao bọc này, bạn có thể truy cập vào SDK YouTube Playables trong Godot bằng .gd
được cung cấp. Trình bao bọc có trình kết nối SDK .js và tệp .gd
để giúp bạn đẩy nhanh quá trình phát triển. Ngoài ra, còn có một dự án mẫu cho biết cách bạn có thể sử dụng các tập lệnh này trong dự án của mình.
Bạn có thể tải Gói zip Godot xuống từ kho lưu trữ mẫu của Playables.
Cách sử dụng
- Giải nén
GoogleYTGameWrapper-godot.zip
trong thư mục dự án mà bạn muốn các tập lệnh này nằm trong đó. Tệp zip này chứa hai tệp:YTGameWrapper.gd
: dùng làm cầu nối đến SDK JavaScript của YT Playables, cho phép một đường dẫn gọi SDK từ trong trò chơi.YTGameSDK.js
: dùng để kết nối với SDK YT Playables. Trong ví dụ này, chúng ta sẽ đặt tệp này vào thư mục gốc của dự án. Bạn có thể thay đổi điều này, nhưng cần cập nhật vị trí của Head Include.- Bạn cũng có thể tải phiên bản mẫu dự án đầy đủ xuống từ kho lưu trữ mẫu của chúng tôi dành cho nội dung có thể chơi. Đối với phiên bản này, hãy sử dụng tệp zip có tên
GoogleYTGameWrapper-godot-with-sample.zip
.
- Thêm một Autoload Global mới cho tập lệnh
YTGameWrapper.gd
đã giải nén. Bạn có thể thiết lập giá trị này trongProject
->Project Settings...
->Globals
. Chọn tệpYTGameWrapper.gd
trong hộp nhậpPath
và thêmYTGameWrapper
vào hộp nhậpNode Name
. Cuối cùng, hãy chọn+ Add
.- Thao tác này sẽ giúp tập lệnh có sẵn trên toàn bộ mã, cho phép bạn gọi
YTGameWrapper
nếu cần.
- Thao tác này sẽ giúp tập lệnh có sẵn trên toàn bộ mã, cho phép bạn gọi
- Xác minh rằng Nền tảng dự án Godot của bạn được đặt thành xuất cho
Web
. Bạn có thể tìm thấy chế độ cài đặt này trong thẻ Xuất, hãy chọnProject
rồi chọnExport...
. - Trong bảng điều khiển Xuất, hãy thêm một Giá trị đặt trước mới bằng cách chọn
Add...
, sau đó chọnWeb
. Sau khi tạo, hãy thêm mã này vào hộp cài đặtHead Include
.
<script src="https://www.youtube.com/game_api/v1">// Load YT Game API code</script>
<script src="YTGameSDK.js"></script>
- Xuất dự án web trong bảng điều khiển
Export
bằng cách chọnExport Project...
rồi chọn vị trí bản dựng. - Sau khi tạo dự án, hãy chuyển đến thư mục bản dựng và sao chép tệp
YTGameSDK.js
vào thư mục này. Hãy nhớ đưa tệp này vào khi bạn gửi bản dựng. - Xác minh rằng bạn đang tuân thủ các yêu cầu kỹ thuật cho dự án và nhớ sử dụng bộ kiểm thử Playables.
Ví dụ
Phần này có một số ví dụ về cách sử dụng trình bao bọc .gd
, đây không phải là danh sách đầy đủ các API có sẵn. Để xem danh sách đầy đủ các API hiện có, hãy tham khảo SDK YouTube Playables. Điều này cũng giả định rằng dự án của bạn được thiết lập như mô tả trong phần Sử dụng.
sendScore
Ví dụ này cho thấy cách triển khai sendScore(int points)
trong .gd
:
var current_game_score: int = 0
...
func add_score(scoreAdded: int):
current_game_score += scoreAdded
YTGameWrapper.send_score(current_game_score)
onPause
Đây là ví dụ về cách một trò chơi có thể nghe các sự kiện Pause
đến từ YT Playables để tạm dừng công cụ của trò chơi khi cần:
func _ready() -> void:
# hook up on game paused
YTGameWrapper.game_paused.connect(self._on_game_paused)
# hook up on game resumed and game save data received events
YTGameWrapper.game_resumed.connect(self._on_game_resumed)
func _on_game_paused():
# Pause your game logic, audio, etc.
get_tree().paused = true
func _on_game_resumed():
# Resume your game logic, audio, etc.
get_tree().paused = false
saveData
Đây là ví dụ về cách sử dụng saveData
, gửi saveData
đến SDK YT Playables:
var current_game_score: int = 0
var time_elapsed: float = 0.0
...
func save_game_data():
YTGameWrapper.save_data('{"BestScore": "' + str(current_game_score) + '","BestTime": "' +str(time_elapsed)+ '"}')
loadData
Đây là ví dụ về cách sử dụng loadData
, gửi loadData
đến SDK YT Playables:
func _ready() -> void:
# hook up game load data received event
YTGameWrapper.load_data_received.connect(self._on_load_data)
# Request to load data when the game starts
YTGameWrapper.load_data()
func _on_load_data(save_data_string: String):
if not save_data_string.is_empty():
# Add logic to parse the save_data_string and restore game state
print("Loaded data: ", save_data_string)
requestInterstitialAd
Đây là ví dụ về cách sử dụng requestInterstitialAd
, cho biết đây là thời điểm thích hợp để hiển thị Quảng cáo xen kẽ (nếu có). Để có kết quả tốt nhất, hãy thực hiện lệnh gọi này trong thời gian nghỉ chơi, chẳng hạn như khi kết thúc một cấp độ.
func set_game_over(didWin: bool):
YTGameWrapper.request_interstitial_ad()
# logic for game over
Cách chia nhỏ tài sản trong dự án Godot (Tải lười)
Một trong những vấn đề chính mà các nhà phát triển đã nêu bật khi sử dụng Godot là tuân thủ các yêu cầu về kích thước tệp riêng lẻ và tổng kích thước gói.
Tải lười các thành phần là một cách tối ưu hoá hiệu quả mà bạn có thể thực hiện cho dự án của mình vì bạn có thể tải các thành phần, cấp và dữ liệu khi cần. Nhóm chứng nhận của chúng tôi có thể miễn các quy định hạn chế về tổng kích thước tệp nếu bạn thực hiện đúng cách, vì trò chơi đầy đủ sẽ không được tải trước mà sẽ được tải khi người dùng điều hướng trong sản phẩm của bạn.
Để giúp tải đúng cách, Godot cung cấp tính năng Xuất gói, bản vá và bản sửa đổi (đường liên kết tiếng Anh). Bạn nên tạo các tệp .pck
được tải khi cần.
Xem tài liệu tham khảo đầy đủ về API Nội dung có thể phát trên YouTube.