Ôn tập: nhảy kép
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 43 trên 60.
Trong chương này, bạn đã tự di chuyển CharacterController: dùng Move để đi bộ, lưu trọng lực trong một trường và tính các cú nhảy dựa trên độ cao. Nhân vật chính có thêm một lần nhảy trên không.
Thử thách
Trung bìnhCho nhân vật nhảy và nhảy thêm một lần trên không. Phần đi bộ đã có sẵn.
- Đầu tiên, khi đang chạm đất:
airJumpUsed = false, và nếu đang rơi thìverticalSpeedchuyển thành-2f. - Khi
Input.GetButtonDown("Jump"): nếu đang chạm đất, đặtverticalSpeed = Mathf.Sqrt(jumpHeight * -2f * gravity);; nếu không, khi!airJumpUsed, làm tương tự vớiairJumpHeight, rồi đặtairJumpUsed. - Sau đó cộng
gravity * Time.deltaTimevàoverticalSpeed.
Nhấn Chơi rồi nhảy hai lần lên gờ. Sau đó nhấn Kiểm tra.
Tự làm thử
using UnityEngine;
public class Hero : MonoBehaviour
{
public float speed = 5f;
public float gravity = -25f;
public float jumpHeight = 2f;
public float airJumpHeight = 1.28f;
CharacterController controller;
float verticalSpeed;
bool airJumpUsed;
void Start()
{
controller = GetComponent<CharacterController>();
}
void Update()
{
// Đặt lại trạng thái khi chạm đất, nhấn Space để nhảy hoặc nhảy giữa không trung, rồi áp dụng trọng lực
Vector3 move = new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical")) * speed;
move.y = verticalSpeed;
controller.Move(move * Time.deltaTime);
}
}
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
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àng8Bộ điều khiển nhân vật
CharacterController.MoveTự xử lý trọng lựcNhảyĐẩy vật thểDi chuyển theo hướng nhìnÔn tập: nhảy képTự luyện tập: Playground Unity