본문 바로가기

Project/전투 시스템

[전투 시스템] Unity: 부모 스크립트 만들기

728x90

먼저 플레이어와 적 오브젝트가 상속받을 부모 스크립트부터 설명하겠습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
using UnityEngine;
 
public class CharacterStats : MonoBehaviour
{
    [SerializeField]
    public float health { get; private set; }
    public float maxHealth = 100;
 
    public int attackPower;
    public float moveSpeed;
 
    public float attackRadius;
    public float attackReload = 2;
    public float nextAttackTime;

 

5행의 [SerializeField]를 통해서 상속받은 자식 오브젝트에서도 인스펙터 창을 통해서 변수를 조정 가능하게 하였습니다.

 

health - 현재 체력을 저장할 변수로 {get; private set;} 으로 설정했습니다.

maxHealth - 최대 체력을 저장할 변수입니다.

attackPower - 공격력을 저장할 변수입니다.

moveSpeed - 움직이는 속도를 저장할 변수입니다.

attackRadius - 공격 반경을 저장할 변수입니다.

attackReload - 공격 지연 시간을 저장할 변수입니다.

nextAttackTime - 다음 공격 시간을 저장할 변수입니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    void Awake()
    {
        health = maxHealth;
    }
 
    public virtual void TakeDamage(int damage)
    {
        health -= damage;
 
        if(health <= 0)
        {
            Die();
        }
    }
    public virtual void Die() { }
}
 

 

Awake 함수를 통해서 최대 체력을 현재 체력으로 초기화해준다. 그리고 2개의 virtual 함수 TakeDamage와 Die를 생성하여 상속받은 오브젝트가 2가지의 함수를 구현할 수 있도록 해준다.

728x90