function – Jake Tee https://jakesto.com Game Dev Blog Wed, 23 Mar 2022 12:59:49 +0000 en-US hourly 1 https://wordpress.org/?v=6.8.1 https://jakesto.com/wp-content/uploads/2022/07/cropped-pngwing.com_-32x32.png function – Jake Tee https://jakesto.com 32 32 194548219 101 Tips – Macro https://jakesto.com/101-tips-macro/?utm_source=rss&utm_medium=rss&utm_campaign=101-tips-macro Wed, 23 Mar 2022 12:59:45 +0000 https://jakesto.com/?p=864 Nếu các bạn đã từng thấy một node Blueprint như:

kèm với biểu tượng bánh răng ở góc thì đó chính là một Macro. Công dụng của node trên đó là kiểm tra quyền network của dòng logic đi qua.

Vậy Macro là gì, Macro có thể hiểu đơn giản là một node cho phép người dùng kiểm soát dòng di chuyển logic một cách gọn hơn. Nếu như Function hay Custom Event chỉ có một chiều di chuyển thì Macro có thể có một hoặc nhiều chiều.

Nếu chung ta đúp chuột vào node Switch Has Authority, nó sẽ trông như sau:

Về lí thuyết ta có thể kéo giá trị trả lại từ Has Authority và nối vào Branch để kiểm tra quyền network nhưng nếu phải lặp lại nhiều lần như vậy thì đống dây nối của ta sẽ bị dư thừa nhiều hơn.

Để tạo một Macro, click dấu + trong vùng Macro ở MyBlueprint

Trong ví dụ này mình sẽ làm một Macro kiểm tra xem đầu vào có phải số chẵn hay không.

Trong vùng InputsDetails, lần lượt thêm tham số đầu vào FloatExec. Định dạng Exec chính là một dạng đặc biệt cho phép dòng logic đi qua (hay còn thấy ở mỗi đầu node Blueprint).

Trong vùng Outputs, lần lượt thêm tham số đầu ra Exec cho số chẵn và số lẻ.

Logic thì chỉ đơn giản là kiểm tra số dư khi chia 2, nếu dư thì ta cho dòng logic đi vào nối Even Number và lẻ thì vào Odd Number.

Sau đó chỉ việc kéo ra sử dụng và kết quả khi truyền số 11 vào:

]]>
864
101 Tips – Thay đổi biến trong sequencer https://jakesto.com/101-tips-thay-doi-bien-trong-sequencer/?utm_source=rss&utm_medium=rss&utm_campaign=101-tips-thay-doi-bien-trong-sequencer Tue, 15 Jun 2021 17:19:14 +0000 https://jakesto.com/?p=788 Chúng ta có một actor, với một biến là số tiền (Money) trong tài khoản (dạng integer) như sau

và được set Instance Editable để có thể sửa đổi giá trị trên các instance đã được đặt trong world.

Giả sử ta muốn rằng, trong Sequencer, ta muốn thay đổi giá trị đó theo các khung thời gian cụ thể. Thông thường cách nhanh nhất đó là ta tìm kiếm các kí hiệu + để thêm key vào sequencer:

Tuy nhiên, trong trường hợp của Money, ta không thể thay đổi được.

Cách để có thể làm xuất hiện dấu + đó là:

Blueprints

Tạo một hàm với tên theo cú pháp “Set” + tên của biến, trong trường hợp này là SetMoney, nhận đầu vào như trên

Như vậy ta đã có thể thêm key vào Sequencer được rồi

C++

Với C++, trong thông số trong UPROPERTY, ta chỉ cần thêm tham biến Interp

UPROPERTY(EditAnywhere, BlueprintReadWrite, Interp)
int32 Money

Như vậy đã xong!

]]>
788