반응형
유닛 구성
유닛을 구성하려면 3가지가 필요합니다.
- 유닛 이미지 리소스
- 유닛 스테이터스(Status) 데이터
- 유닛 움직임을 심어줄 Monobehaviour 클래스
1. 유닛 이미지 리소스
이전 게시물에서 다룬 아래와 같은 형태로 먼저 구성을 해줍니다.
Sprite Renderer로 오브젝트의 이름을 "(Order in Layer 값).Sprite - Name" 형식으로 가시적으로 구성해주었습니다. 위의 이미지를 참고하여 구성합니다.
2. 유닛 스테이터스(Status) 데이터
우리가 사용할 수 있는 원시적인 데이터(Raw Data)가 필요합니다. 여기서 말하는 데이터는 단순하게 말하자면 "체력, 공격력, 방어력"과 같은 순수한 데이터를 의미합니다. 이러한 데이터 형식은 유니티의 ScriptableObject 클래스를 사용하여 제작합니다.
ScriptableObject 게시물: Unity, ScriptableObject 사용 예제
1. 먼저 아래와 같이 분류해주어 "BaseStatusData" 스크립트를 생성합니다.
2. 스크립트를 아래와 같이 작성해줍니다.
BaseStatusData.cs
using UnityEngine;
[CreateAssetMenu(fileName = "BaseStatusData", menuName = "ScriptableObjects/BaseStatusData", order = 1)]
public class BaseStatusData : ScriptableObject
{
/// <summary>
/// 공격력
/// </summary>
public float damage;
/// <summary>
/// 체력
/// </summary>
public float maxHp;
/// <summary>
/// 방어력
/// </summary>
public float defence;
/// <summary>
/// 공격 속도
/// </summary>
public float attackSpeed;
/// <summary>
/// 이동 속도
/// </summary>
public float moveSpeed;
}
3. BaseStatusData를 생성해준다.
아래와 같은 느낌으로 대응하여 제작해주면 됩니다. 앞으로 유닛이 하나씩 새로 생길 때마다, 대응되는 데이터를 생성해주면 되겠습니다.
3. 유닛 움직임을 심어줄 Monobehaviour 클래스
이제까지 작업한 이미지 리소스와 데이터를 사용하게 해줄 클래스를 만들어줍시다.
1. 스크립트를 아래와 같은 경로에 생성을 줍니다.
2. 스크립트 작성을 해줍니다.
Unit.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Unit : MonoBehaviour
{
#region Inspector
public BaseStatusData baseStatusData;
#endregion
private void Awake()
{
}
private void Update()
{
}
}
3. 유닛 프리팹을 아래와 같이 구성해준다.
완성
마무리
유닛 형태 구성을 위해 조금 복잡한 과정들이었지만, 이렇게 구성을 해둔다면 추후 새로운 유닛을 쉽게 만들 수 있습니다. 이렇게 구조를 잘 만들어둔다면 앞으로의 과정들이 수월해집니다. 😁
반응형
'Projects > RTS Craft' 카테고리의 다른 글
RTS-Craft, 2. 유닛(Unit)와 맵(Tile) 구성하기 (0) | 2022.09.22 |
---|---|
RTS-Craft, 1. 프로젝트 생성 (0) | 2022.09.17 |
유니티로 스타크래프트 만들기(RTS Craft) (0) | 2022.09.17 |
댓글