/ / Giải thích chuyển động của người chơi trong sự thống nhất: Thân máy cứng nhắc và Máy va chạm

Giải thích chuyển động của người chơi trong sự thống nhất: Thân máy cứng nhắc và Máy va chạm

Bạn là người mới sử dụng Unity? Bạn đang muốn tìm hiểu cách lấy thông tin đầu vào từ người chơi và di chuyển nhân vật xung quanh màn hình? Chúng tôi đã tạo hướng dẫn này để giới thiệu ba cách khác nhau mà bạn có thể kiểm soát chuyển động của người chơi trong Unity.

Cho dù bạn là người mới viết mã hay đã có một số kinh nghiệm, thì hướng dẫn C # này sẽ giúp bạn vững bước và các nhân vật của bạn cũng như của họ.

Bắt đầu nào.

Chuyển động của người chơi trong sự thống nhất: Thu thập thông tin đầu vào

Điều đầu tiên, bạn cần biết cách nắm bắt thông tin đầu vào từ người dùng và biến chúng thành chuyển động trong trò chơi. Unity làm cho điều này khá dễ dàng miễn là bạn biết nơi để tìm.


Cài đặt dự án thống nhất

Với Unity đang mở, hãy nhấp vào Biên tập ở thanh công cụ trên cùng. Bây giờ chọn Thiết lập dự án. Từ danh sách bên trái, hãy chọn Quản lý đầu vào. Lựa chọn Axes, điền danh sách các giá trị đầu vào. Bạn sẽ muốn nhìn vào Nằm ngangThẳng đứng cho chuyển động cơ bản.

Bạn sẽ sử dụng các trục này cùng với Input.GetAxisRaw (); cho chuyển động cơ bản trong phần tiếp theo.

Chuyển động của người chơi trong sự thống nhất bằng cách sử dụng thân cứng và máy va chạm

Bây giờ bạn đã biết tên của các trục, bạn có thể sử dụng chúng để điều khiển chuyển động của người chơi.

Trong dự án Unity của bạn Hệ thống cấp bậc xem, nhấp chuột phải và chọn Đối tượng 3D> Viên nang để tạo ra những gì bạn sẽ ban tặng cho chuyển động. Đảm bảo sử dụng cùng một chiến thuật để tạo mặt bằng chiếc máy bay để Capsule của bạn đứng vững.

Đảm bảo đặt lại Biến đổi giá trị của cả hai đối tượng và di chuyển Capsule của bạn để nó đứng trên Mặt phẳng. Đổi tên Capsule của bạn thành “Player” để dễ nhận dạng.

Liên quan: 5 ngôn ngữ phát triển game Unity: Bạn nên học ngôn ngữ nào?

Bấm vào Người chơi đối tượng và, trong Thanh tra xem, cuộn xuống Thêm thành phần. Thêm một Cơ thể cứng nhắcvà sau đó thêm một thành phần khác làm Capsule Collider thời gian này. Bạn sẽ cần các thành phần này để thêm vật lý và do đó chuyển động, vào Người chơi.

Sau đó, nhấp chuột phải vào Tập lệnh thư mục và Tạo ra một cái mới Tập lệnh C #. Đặt tên cho tập lệnh này dọc theo dòng “PlayerMovement”. Nếu bạn định thêm nhiều kiểu chuyển động cho các ký tự hoặc kiểu bộ điều khiển khác nhau, bạn sẽ muốn tạo nhiều tập lệnh khác nhau cho từng kiểu chuyển động. Hiện tại, chúng tôi sẽ tập trung vào những điều cơ bản và sử dụng một tập lệnh.

Xem thêm: Lập trình mô-đun trong Unity là gì và Tại sao nó lại quan trọng?

Bấm đúp vào tập lệnh của bạn để mở nó. Bạn sẽ gặp một tập lệnh Unity mặc định:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{

}
// Update is called once per frame
void Update()
{

}
}

Bạn có thể xóa sử dụng System.Collections;sử dụng System.Collections.Generic; vì chúng không cần thiết cho tập lệnh này.

Với điều đó, hãy tập trung vào

public class PlayerMovement : MonoBehaviour {

cho bây giờ. Bên trong dấu ngoặc nhọn mở, tạo một phao công cộng biến có tên tốc độ hoặc một cái gì đó tương tự. Cái này tốc độ biến là một hệ số sẽ kiểm soát tốc độ Người chơi di chuyển sau một số chương trình khác. Còn bây giờ, hãy đặt tốc độ bằng một cái gì đó như 10f.

Bạn cũng cần cho Unity biết rằng có một Rigidbody thao tác trong tập lệnh này. Điều này được thực hiện với từ khóa Cơ thể cứng nhắc và một tên biến — chúng tôi sẽ chọn rb.

public class PlayerMovement : MonoBehaviour
{
public float speed = 10f; //Controls velocity multiplier

Rigidbody rb; //Tells script there is a rigidbody, we can use variable rb to reference it in further script

Đó là tất cả những gì bạn cần thêm trong phần này. Bây giờ, hãy chuyển sang void Start (). Khi bắt đầu trò chơi, bạn cần đặt rb biến bằng Cơ thể cứng nhắc trên Người chơi như vậy:

void Start()
{
rb = GetComponent<Rigidbody>(); //rb equals the rigidbody on the player
}

Bây giờ, hãy nhìn vào void Update () chức năng. Đây là chức năng bạn sẽ sử dụng để liên tục lấy đầu vào từ bàn phím, bộ điều khiển của người chơi, v.v. Hãy nhớ khi bạn chọn Thiết lập dự án Trục đầu vào? Bạn sẽ sử dụng chúng ở đây.

void Update()
{
float xMove = Input.GetAxisRaw("Horizontal"); // d key changes value to 1, a key changes value to -1
float zMove = Input.GetAxisRaw("Vertical"); // w key changes value to 1, s key changes value to -1
rb.velocity = new Vector3(xMove, rb.velocity.y, zMove) * speed; // Creates velocity in direction of value equal to keypress (WASD). rb.velocity.y deals with falling + jumping by setting velocity to y.

}

Đừng lo lắng nếu bạn đang cảm thấy choáng ngợp với bước nhảy mã; chúng tôi sẽ giải thích nó từng bước. Đầu tiên, hãy tạo một trôi nổi biến có tên như xMovevà đặt nó bằng Input.GetAxisRaw (“Ngang”);

Input.GetAxisRaw (); là cách Unity ghi lại các đầu vào của Trình phát từ Axes bạn tìm thấy trong Thiết lập dự án. Bạn có thể đọc thêm về nó trong tài liệu chính thức của Unity. “Nằm ngang” đến từ Trục ngang tên trong Unity. Trục này điều khiển chuyển động trái và phải bằng các phím “a” và “d”.

Như bạn có thể đoán bây giờ, float zMove = Input.GetAxisRaw("Vertical"); thực hiện điều tương tự nhưng đối với phím “w” và “s”.

Liên quan: Hướng dẫn Unity 3D tốt nhất cho người mới bắt đầu

Tiếp theo, bạn sẽ đặt nó tốc độ biến bạn đã tạo thành trò chơi và hoàn thành mảnh ghép cuối cùng cho chuyển động của người chơi trong Unity.

rb.velocity = new Vector3(xMove, rb.velocity.y, zMove) * speed; // Creates velocity in direction of value equal to keypress (WASD). rb.velocity.y deals with falling + jumping by setting velocity to y.

Quay trở lại Unity’s Thanh tra xem cho Người chơi vật. Hãy nhìn vào Cơ thể cứng nhắc-Dưới Thông tinbạn sẽ thấy một giá trị Vận tốc. Đây là giá trị mà bạn đang nhắm mục tiêu rb.velocity.

Vector3 mới (xMove, rb.velocity.y, zMove) * tốc độtạo một vectơ mới với các giá trị x, y và z đã cung cấp, sau đó nhân giá trị của vectơ với tốc độ.

Đảm bảo kéo PlayerMovement tập lệnh vào Người chơi đối tượng trong Unity, và đó là nó! Nhìn chung, bạn có một tập lệnh C # đang hoạt động lấy đầu vào từ trình phát và biến chúng thành chuyển động của nhân vật trong Unity.

Đây là mã đã hoàn thành:

using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float speed = 10f; //Controls velocity multiplier
Rigidbody rb; //Tells script there is a rigidbody, we can use variable rb to reference it in further script

// Start is called before the first frame update
void Start()
{
rb = GetComponent<Rigidbody>(); //rb equals the rigidbody on the player
}

// Update is called once per frame
void Update()
{
float xMove = Input.GetAxisRaw("Horizontal"); // d key changes value to 1, a key changes value to -1
float zMove = Input.GetAxisRaw("Vertical"); // w key changes value to 1, s key changes value to -1
rb.velocity = new Vector3(xMove, rb.velocity.y, zMove) * speed; // Creates velocity in direction of value equal to keypress (WASD). rb.velocity.y deals with falling + jumping by setting velocity to y.

}
}

Ghi chú: Nếu bạn thấy nhân vật của mình nhào lộn nhiều hơn bất cứ điều gì khác, hãy đảm bảo khóa vòng quay của Người chơi trong Thanh tra.

Học hỏi và Kiếm tiền nhiều hơn trong Unity

Bây giờ bạn đã biết cách lập trình chuyển động của người chơi trong Unity với các thành phần Rigidbody và Collider, bạn sẽ học gì tiếp theo? Có lẽ việc mở rộng bộ điều khiển chuyển động của bạn để thêm những thứ như trượt, nhảy hai lần, v.v. sẽ chứng tỏ tính giải trí và hấp dẫn.

Unity Learn có đầy đủ các chủ đề thú vị để nâng cao kỹ năng phát triển trò chơi của bạn. Chúng tôi tin rằng một trong những yếu tố quan trọng nhất trong việc mở rộng kiến ​​thức về lập trình của bạn là học điều gì đó mới mỗi ngày. Luôn tò mò và vui vẻ hack!


đoàn kết-học hỏi
Unity Learn là cách dễ nhất để phát triển thành thạo trò chơi

Bạn muốn bắt đầu phát triển trò chơi của riêng mình? Unity Learn là cách tốt nhất và dễ nhất để học và nắm vững những gì bạn cần biết.

Đọc tiếp


Thông tin về các Tác giả

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *