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
'Project > 전투 시스템' 카테고리의 다른 글
[전투 시스템] Unity: 게임 매니저 만들기 (0) | 2020.06.10 |
---|---|
[전투 시스템] Unity: 적 컨트롤러 만들기 (2) (0) | 2020.06.09 |
[전투 시스템] Unity: 적 컨트롤러 만들기 (1) (0) | 2020.06.08 |
[전투 시스템] Unity: 플레이어 컨트롤러 만들기 (0) | 2020.06.06 |
[전투 시스템] Unity: 게임 구조 (0) | 2020.06.04 |