Make AI with State Design Pattern
Hôm nay đang trong thời gian chạy deadline nhập môn kỹ thuật phần mềm , cụ thể là con game "The Walker" của team tụi mình , mình cần phải làm một con AI cụ thể là con zombie với các chức năng : tìm đường , tự động tấn công trong phạm vi cố định , chuyển sang trạng thái đứng yên khi ông có người chơi đứng gần , vân vân mây mây. Đây có lẽ là một tính năng rất bình thường , mọi chuyện vẫn suôn sẻ cho đến khi mình thêm 1 state mới và cứ như vậy code của mình hầu như phải sửa đi sửa lại nhìn rất không được clean theo phong cách OOP mà mình hướng đến Trong phạm vi bài viết này mình sẽ nói cách làm ban đầu của mình và sự cải tiến khi dùng State Design Pattern Cách giải quyết ban đầu Mình nghĩ mọi người đều sẽ nghĩ rằng : tạo 1 enum cho zombie , và dùng if else để thay đổi trạng thái của nó ví dụ : enum Status { Idle, Chase, } IEnumerator AIZombie() { float dis = Vector3.Distance(transform.position, player.transform.position); switch (W...