Nếu mọi người đã quen với Event Begin Overlap hay Event Component Begin Overlap thì Event Particle Collide của particle cũng tương tự như thế, nó sẽ gọi khi 1 actor overlap vào particle.
Một ví dụ cho việc sử dụng On Particle Collide đó là lửa của molotov trong CS:GO
Trong ví dụ lần này mình sẽ sử dụng particle lửa trong Starter Content của Unreal Engine.
Để thuận tiện cho sử dụng, ta nên duplicate P_Fire thành P_FireCollision.
Mở P_FireCollision lên, và thêm module Actor Collision vào cái emitter.
- Damping factor: particle sẽ nhả emitter chậm lại bao nhiêu khi bị collide. Hiện tại mình để giá trị cố định là 1 cho đơn giản.
- Max Collisions: số lượng collision tối đa, mình để là 1 để tránh trigger quá nhiều event
- Collision Types: ObjectType là particle sẽ tương tác, mình set thành Pawn để tương tác với nhân vật điều khiển.
Ngoài ra để cho test, mình cũng tắt Collide Only if Visible đi và tăng Max Collision Distance lên 100m.
Như vậy đã xong phần setup của Particle, kế đến ta cần một actor để xử lí event overlap. Đơn giản tạo một actor mới và đặt tên là BP_FireActor. Actor sẽ có một component đó là ParticleSystem, được set Template thành P_FireCollision ta tạo trên.
Ở mục Events của ParticleSystem, click chọn On Particle Collide.
Mình setup cho nó sẽ in ra màn hình Burning để test nhé. Sau đó compile và thả actor vào level.
Kết quả:
Lưu ý: particle sẽ trigger collide liên tục do emitter được chạy liên tục, để tránh xử lí event quá nhiều các bạn có thể thêm delay hoặc timer nhé.
Comments