Skip to content

Hướng dẫn tích hợp animation, sự kiện trên animation – Unity 3D – Bài 2

  • by

Tiếp tục bài trước , ở bài này , chúng ta sẽ tiến hành thêm các hành động khác của nhân vật và tiến hành bắt sự kiện khi nhân vật đấm, đá, hay skill …

Như giới thiệu ở bài trước, 1 model từ Mixamo có hàng chục Animation khác nhau nên trong ví dụ này thầy chỉ chọn 6 Animation cơ bản như : Đấm, đá, chém , ngồi , nằm

Bước 1 : Mở Tab Animator :

1 : thêm trạng thái Attack dạng Trigger đặt tên là Attack

2 : Kéo Animation lên Base Layer , đổi tên cho dễ nhớ

3 : Thiết lập mũi tên từ Idle Walk Run Blender -> Animation vừa kéo vào , đặt điều kiện xảy ra là Attack

Lặp lại với các Animation khác

Bước 2 : Thêm sự kiện các nút như F , G để gọi Animation và bắt sự kiện va chạm như : Bấm F , đấm -> nếu chạm Quái hay Cây thì làm gì

Mở file : StarterAssets → InputSystem → PlayerControls.inputactions

  1. Click mở thiết lập thêm nút
  2. Bấm dấu + thêm Action : Đặt tên Attack
  3. Bấm dấu cộng tiếp thêm Binding , chọn Path là F KeyBoard : tức là bấm phím F trên bàn phím đó

Bấm Save để lưu

Bước 3 : Mở file cs : Assets/StarterAssets/InputSystem/StarterAssetsInputs.cs

Thêm code sau :

		public bool attack;

		
		public void OnAttack(InputValue value)
		{
			attack = value.isPressed;
		}

Bước 4 : Mở file : StarterAssets/ThirdPersonController.cs

Thêm sự kiện trong hàm Update

if (_input.attack)
{
    _animator.SetTrigger("Attack");
    _input.attack = false; // reset
}

Lưu ý : cần tạo biến trigger trong Animator là Attack trước đó rồi nhé

Cuối cùng : Chạy thử Game xem kết quả , khi bấm F thì Animation chạy 1 lần sau đó tự về trạng thái mặc định ( do chọn dạng Trigger )

Chú ý : Sau khi hoàn thành cần 1 số tùy chỉnh để game mượt mà như

  1. Khi bấm F – Attack thì cần có biến isAttacking để tắt các sự kiện khác như di chuyển, nhảy
  2. Dùng liên kết Transition trong Animator để ràng buộc điều kiện chuyển Animation cho phù hợp

Ví dụ thêm mũi tên từ Attack về Default Không có condition để Attack Animation kết thúc thì nhân vật di chuyển , nhảy bình thường

Leave a Reply

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