Trang chủ » Blog » Lập trình Game Unity » Bí kíp sử dụng Unity Interface C#

Bí kíp sử dụng Unity Interface C#

bởi CodeGym | 22/11/2024 15:07 | Blog | Lập trình Game Unity

Unity Interface C# là chìa khóa mở cánh cửa cho sự sáng tạo trong phát triển game. Unity Interface C# cung cấp một bộ công cụ mạnh mẽ cho các nhà phát triển, từ việc quản lý GameObject đến tùy chỉnh các thuộc tính và phương thức. Bài viết này sẽ chia sẻ những bí kíp sử dụng Unity Interface C# hiệu quả.

Tổng quan về Unity Inteface C#

Giao diện là một hợp đồng mà các lớp có thể triển khai. Khi một lớp triển khai một giao diện, một thể hiện của lớp có thể được coi là một thể hiện của giao diện đó. Các lớp và cấu trúc triển khai giao diện có các phương thức và thuộc tính có thể được gọi theo cách giống hệt nhau. Điều đó có nghĩa là chúng có thể được gọi mà không cần biết trước về lớp hoặc kiểu của cấu trúc.

Tất cả các lớp kế thừa từ giao diện sẽ có các phương thức là bắt buộc giống như giao diện. Giao diện là tập hợp các thuộc tính của phương thức. Bạn có thể viết một lớp hoặc cấu trúc để triển khai một giao diện bằng cách sử dụng các phương thức và thuộc tính khớp với các phần được khai báo bởi giao diện.

Thực hiện code Unity Interface C#

Trong giao diện, các phương thức và thuộc tính có chữ ký được khai báo nhưng không có định nghĩa. Bạn có thể khai báo một giao diện giống như khai báo lớp hoặc cấu trúc, nhưng sử dụng từ khóa Interface. Ví dụ dưới đây khai báo 1 giao diện trong đó giao diện được gọi là IDamageable.

Lưu ý: Tên bắt đầu bằng chữ I là quy ước để bạn dễ dàng nhận biết các giao diện. Điều này không bắt buộc nhưng chúng tôi khuyên bạn nên tuân theo quy ước này để có sự thống nhất.

using UnityEngine;

public interface IDamageable

{

   Vector3 Position { get; }

   void Damage (float damage);

}

Trong đó, lý giải mã như sau: dòng đầu tiên của giao diện khai báo thuộc tính “Vị trí”, loại Vector3. Thuộc tính có ít nhất một getter công khai và có thể có một bộ cài đặt tùy chọn. Dòng thứ hai khai báo phương thức “Damage” với một tham số float và kiểu trả về void. Chỉ có khai báo, không có phần thân. Nếu có người chơi gắn mã “PlayerHealth”, dưới đây là một ví dụ triển khai giao diện IDamageable.

public class PlayerHealth : MonoBehaviour, IDamageable
{
   public float startingHealth = 100f;
   float m_CurrentHealth;
   Vector3 Position
   {
       get
       {
           return transform.position;
       }
   }
   void Start ()
   {
       m_CurrentHealth = startingHealth;
   }
   public void Damage (float damage)
   {
       m_CurrentHealth -= damage;
   }
}

PlayerHealth triển khai giao diện IDamageable, kế thừa các phương thức. Lớp này tuyên bố rằng nó triển khai giao diện sau khi kế thừa MonoBehaviour. PlayerHealth khai báo phương thức Thiệt hại, khớp với chữ ký trong IDamageable.

Nếu có hiệu ứng vụ nổ với mã Explosion, nó phá hủy mọi thứ gần đó. Nếu các đối tượng gây sát thương khác nhau, mã của vụ nổ sẽ tìm và gọi từng phương thức của chúng.

using System.Collections.Generic;
using UnityEngine;
public class Explosion : MonoBehaviour
{
   public float range = 10f;
   public float damage = 35f;
   List<IDamageable> m_AllDamageables = new List<IDamageable>();
   void Start()
   {
       MonoBehaviour[] allScripts = FindObjectsOfType<MonoBehaviour>();
       for (int i = 0; i < allScripts.Length; i++)
       {
           if(allScripts[i] is IDamageable)
               m_AllDamageables.Add(allScripts[i] as IDamageable);
       }
   }
   public void Explode ()
   {
       for(int i = 0; i < m_AllDamageables.Count; i++)
       {
           if(Vector3.Distance(m_AllDamageables[i].Position, transform.position) < range)
               m_AllDamageables[i].Damage (damage);
       }
   }

}

Khi Start được gọi, lớp Explosion tìm tất cả MonoBehaviours và thêm những thứ triển khai IDamageable vào danh sách.
Khi Explode được gọi, lớp lặp qua các đối tượng triển khai IDamageable, so sánh vị trí để xác định xem chúng có trong phạm vi không. Nếu có, phương thức Thiệt hại sẽ được gọi.

Tổng kết

Trong hướng dẫn này, bạn đã xem lại cách khai báo và triển khai một Unity Interface C#. Giao diện giúp làm việc hiệu quả hơn khi phát triển trò chơi hoặc ứng dụng của bạn.

Tags: game

0 Lời bình

Gửi Lời bình

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

BÀI VIẾT LIÊN QUAN

BẠN MUỐN HỌC LẬP TRÌNH?

GỌI NGAY

098 953 44 58

Đăng ký tư vấn lộ trình học lập trình

Đăng ký tư vấn, định hướng lộ trình học và giải đáp các thắc mắc về ngành nghề – Miễn phí – Online.

1 + 10 =

TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM
TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM