‫Xin chào và chào mừng.
‫Trong bài giảng này, chúng ta sẽ xem xét các vectơ và nói chung là những thứ phức tạp hơn
‫như cấu trúc trong C ++ và cách chúng ta có thể truy cập các phần riêng lẻ để đặt và lấy chúng từ một cấu trúc.
‫Hãy đi sâu vào.
‫Vì vậy, chúng ta đã học cách xử lý các kiểu dữ liệu cơ bản trong C ++ và tạo các biến và gán cho chúng và thậm chí thực
‫hiện một số phép tính cơ bản với chúng.
‫Nhưng nếu chúng ta muốn xử lý các kiểu phức tạp hơn như vectơ và phép biến đổi thì sao?
‫Chà, quá trình này thực sự rất giống nhau.
‫Hãy bắt đầu bằng cách xóa một số mã thử nghiệm mà chúng ta đã có.
‫Tôi sẽ xóa tất cả tài sản của mình.
‫Đối với tôi, đó là dòng 26 xuống 51.
‫Và tôi cũng sẽ đi qua tệp C ++ và xóa các dòng từ 19 đến 23, đó là nơi tôi đang thực hiện tất cả công
‫việc với các biến mà tôi vừa xóa.
‫Vì vậy, bây giờ Begin Play hoàn toàn trống và chúng ta trở lại hình vuông về cơ bản.
‫Vì vậy, bây giờ những gì tôi muốn làm là thêm một thuộc tính mới của bạn.
‫Vì vậy, tất cả các chữ hoa một lần nữa chỉnh sửa ở bất kỳ đâu và tôi sẽ cung cấp cho loại véc tơ F này thông báo viết hoa F, viết
‫hoa V và đây là cách chúng ta xử lý các vectơ mà chúng ta đã xử lý trong Blueprint.
‫Chúng là các vectơ giống nhau dưới bề mặt, nhưng đây là cách chúng ta gõ nó trong C ++.
‫Chữ F đứng trước nó chỉ cho chúng ta biết rằng đây là một cấu trúc giống như chữ A tiến hành nền tảng
‫di chuyển cho chúng ta biết rằng đó là một tác nhân.
‫Đó không phải là một thứ C ++.
‫Đó là một quy ước đặt tên không thực để đặt tên cho các lớp, cấu trúc và kiểu khác nhau.
‫Vì vậy, những gì chúng ta sẽ làm là đặt tên cho biến này và nó hoạt động giống hệt như
‫khi nó là một float hoặc int.
‫Ví dụ, chúng ta có thể gọi nó là phao của tôi.
‫Nó cần phải không có khoảng trắng.
‫Và nếu chúng ta đặt dấu chấm phẩy ở cuối dòng ở đây, thì đó là nó.
‫Chúng tôi đã khai báo một biến mới sẽ hiển thị trong ngăn chi tiết của chúng tôi trong trình chỉnh sửa, nhưng điều đó là chưa đủ
‫đối với tôi.
‫Tôi thực sự muốn đặt giá trị mặc định này khác với giá trị mặc định 000.
‫Để làm được điều đó, chúng tôi cần cập nhật bảng thuật ngữ của mình với một thuật ngữ mới.
‫Chúng ta cần một hàm tạo, về cơ bản là một thứ gì đó trong C ++ tạo ra một cấu trúc hoặc giá trị lớp mới.
‫Vì vậy, nếu chúng ta tạo một hàm tạo cho vectơ, thì cách thức hoạt động của nó là chúng ta muốn gán một giá trị
‫để chúng ta nhấn bằng.
‫Và thông thường, khi chúng ta xử lý số nguyên hoặc số float, chúng ta chỉ có thể sử dụng một cái gì đó giống như một hoặc một
‫giá trị đúng.
‫Đã có các giá trị được tạo sẵn cho phép chúng tôi đặt giá trị của các loại cơ bản đó.
‫Nhưng khi chúng ta có nhiều kiểu phức tạp hơn như struct, chúng ta cần sử dụng hàm tạo và hàm tạo
‫sẽ luôn có cùng tên với kiểu dữ liệu.
‫Vì vậy, nó sẽ được đánh vần chính xác như vectơ f, sau đó bạn mở một số dấu ngoặc đơn và bên trong
‫dấu ngoặc đơn, bạn cung cấp các giá trị mà bạn muốn.
‫Vì vậy X, Y và Z là những gì tạo nên một vectơ.
‫Vì vậy, chúng ta có thể có một, hai và ba tất cả được phân tách bằng dấu phẩy, sau đó chúng ta đóng dấu ngoặc đơn
‫và đặt dấu chấm phẩy ở cuối dòng.
‫Và điều đó sẽ cung cấp giá trị mặc định là một, hai và ba trong X, Y và Z cho vectơ này.
‫Hãy thử nó ra.
‫Quay lại Unreal và nhấn nút biên dịch.
‫Và sau khi hoàn tất thành công, chúng tôi có thể đảm bảo rằng chúng tôi đã chọn tác nhân nền tảng chuyển động trong phần ngoại vi của
‫chúng tôi và xem bảng chi tiết và thấy rằng thực sự chúng tôi đã có một thuộc tính mới có tên
‫My Float.
‫Những cái khác đã bị lấy đi và các giá trị ở các vị trí khác nhau của nó X, Y và Z là một, hai
‫và ba, giống như chúng ta mong đợi.
‫Vì vậy, điều đó thật tuyệt.
‫Nhưng điều gì sẽ xảy ra nếu tôi muốn nắm giữ những giá trị này và gắn chúng vào một tài sản khác?
‫Vì vậy, nếu tôi có một thuộc tính khác được đánh dấu là chỉnh sửa ở bất kỳ đâu để chúng tôi có thể thấy nó trong
‫trình kiểm tra của loại float được gọi là x của tôi và chúng tôi sẽ mặc định điều này bằng 0 để chúng tôi có thể thấy rằng chúng tôi đang thay đổi
‫nó.
‫Và những gì tôi muốn làm là lấy giá trị x từ phao của tôi khi bắt đầu chơi và tôi muốn đặt nó
‫trong biến x của tôi.
‫Vì vậy, chúng ta hãy chuyển sang tệp C ++ và bắt đầu chơi sau dòng của chúng tôi nói rằng siêu lớn đang chơi,
‫chúng tôi sẽ đặt x của tôi bằng với những gì chúng tôi muốn lấy thứ gì đó từ vectơ của tôi, nhưng chúng tôi không muốn toàn bộ
‫vectơ của tôi.
‫Đó sẽ là một lỗi.
‫Chúng ta không thể đặt một vectơ thành một float, chúng tôi chỉ muốn phần x của vectơ đó.
‫Để hiểu được điều đó, chúng ta cần hiểu khái niệm về toán tử.
‫Các toán tử là các ký hiệu trong C ++ có tác dụng gì đó.
‫Chúng tôi đã thấy một số.
‫Chúng ta đã thấy toán tử dấu cộng, toán tử này cộng hai thứ lại với nhau.
‫Cũng có một toán tử trừ.
‫Có toán tử bình đẳng, toán tử bằng, gán.
‫Nhiều thứ.
‫Vì vậy, chúng tôi đang sử dụng điều này ngay tại đây trên dòng 19.
‫Đó là một toán tử đang gán giá trị của vectơ cho X của tôi.
‫Và sau đó chúng ta có thêm một toán tử nữa, mà chúng ta cần biết đó là toán tử DOT.
‫Nó là một toán tử lấy một cái gì đó từ bên trong một cấu trúc hoặc một lớp.
‫Vì vậy, chúng tôi muốn lấy X từ bên trong vectơ của tôi.
‫Vì vậy, chúng tôi sử dụng một toán tử dấu chấm, chúng tôi thực hiện dấu chấm x bây giờ chúng tôi không sử dụng dấu cách ở đây giữa vectơ của tôi và x.
‫Chúng tôi chỉ để những thứ này chạy cùng nhau như vậy, đó là cách chúng tôi thường để lại mọi thứ mặc dù không nhất
‫thiết là lỗi khi đặt khoảng trắng.
‫Vì vậy, chúng tôi đã có véc tơ x của tôi nên nhận giá trị x của véc tơ và đặt nó vào float x của tôi.
‫Vì vậy, chúng tôi đặt dấu chấm phẩy ở cuối dòng ở đó và như thường lệ, tôi bỏ qua các ô vuông màu đỏ vì đôi khi chúng
‫mất nhiều thời gian để cập nhật và đôi khi chúng không chính xác.
‫Và sau đó chúng ta sẽ bắt đầu viết mã trực tiếp và nhấn vào nút biên dịch lại và chỉ cần kiểm tra xem chúng ta có nhận
‫được kết quả thành công hay không.
‫Và không, bạn thấy đấy, chúng tôi đã gặp sự cố trong quá trình xây dựng.
‫Và nếu bạn nhìn vào lỗi, nó nói rằng vectơ của tôi là một số nhận dạng không được khai báo và đó là do
‫tôi đã mắc lỗi chính tả.
‫Tôi đã gọi vectơ F là phao của mình và bạn có thể đang la hét trước màn hình của mình, nhưng thật tốt khi cho
‫bạn thấy rằng ngay cả những lập trình viên có kinh nghiệm cũng mắc lỗi.
‫Chúng tôi muốn gọi đó là vectơ của tôi, vì vậy tôi sẽ quay lại tệp tiêu đề
‫và đổi tên nó thành vectơ của tôi, điều này sẽ loại bỏ vấn đề trong bộ não của tôi.
‫Hãy tiếp tục và nhấp lại vào nút biên dịch.
‫Và điều đó chỉ cho bạn biết cảm giác khi bạn mắc lỗi, bạn gặp lỗi biên dịch.
‫Lúc nào chả vậy.
‫Trên thực tế, rất hiếm khi không mắc sai lầm.
‫Lần đầu tiên bạn làm điều gì đó, sau đó chúng tôi sẽ tiếp tục và nhấn chơi và chúng tôi sẽ xem giá trị mà chúng tôi
‫nhận được trong ngăn chi tiết.
‫Bạn có thể thấy bây giờ x của tôi đã được đặt thành một vì đó là giá trị trong thành phần x của biến vectơ
‫của tôi.
‫Vì vậy, tôi muốn thách thức bạn đặt giá trị vectơ.
‫Chúng tôi đã nhận được các giá trị từ vectơ.
‫Bây giờ chúng ta hãy thử thiết lập chúng.
‫Về cơ bản, hãy thử sử dụng toán tử dấu chấm để đặt giá trị.
‫Hãy thử lật hai cạnh của nó bằng để chúng ta có chữ X của tôi ở bên phải và vectơ của tôi
‫ở bên trái.
‫Và điều gì sẽ xảy ra nếu bạn thay đổi nó thành Y hoặc Z?
‫Có sự khác biệt nào ở đó không?
‫Tạm dừng video và tiếp tục.
‫Được chứ.
‫Chào mừng trở lại.
‫Vì vậy, tôi sẽ thử lật ngược hai thứ này xung quanh.
‫Hãy chuyển sang C ++ và trong Begin Play thay vào đó điều tôi sẽ nói là dấu chấm vectơ y của tôi bằng với x
‫của tôi và sau đó đặt dấu chấm phẩy ở cuối dòng.
‫Và đây là cách chúng ta có thể đặt các giá trị trong một cấu trúc.
‫Vì vậy, chúng ta hãy quay trở lại Unreal và biên dịch lại và sau đó chúng ta có thể tiếp tục và đặt một số giá trị trong X của tôi.
‫Vì vậy, tôi sẽ đặt giá trị của năm vào đây.
‫Sau đó, tôi sẽ tiếp tục chơi và xem bảng chi tiết cho nền tảng di chuyển.
‫Và chắc chắn, giá trị y của vectơ của tôi đã được cập nhật khi bắt đầu phát bằng giá trị trong x của tôi.
‫Vì vậy, xin chúc mừng.
‫Chúng ta đã thấy cách sử dụng các kiểu phức tạp hơn là kiểu phức hợp như cấu trúc trong C ++.
‫Hẹn gặp lại các bạn trong bài giảng tiếp theo.