Skip to content

develop Enemy Data

Jeon-YJ1004 edited this page Feb 20, 2023 · 2 revisions
  1. script>Enemy> EnemyScriptableObject 파일 생성
[CreateAssetMenu(fileName = "EnemyData", menuName = "ScriptableObjects/Enemy")]
public class EnemyScriptableObject : ScriptableObject
{
    public int speed; //몬스터의 이동 속도
    public float power; //몬스터의 공격력
    public float knockback; //몬스터 피격 시 넉백(밀리는) 정도에 대한 수치
    public float maxKnockback; //몬스터 넉백 정도는 증가할 수 있는데 그 정도의 상한
    public float deathKB; //몬스터 사망 시 넉백(밀리는) 정도에 대한 수치
    public int xp; //드랍되는 경험치의 양(수치) 이다.
    public int end; //레벨 업 상한선
    public int level; //초기 레벨 수치
    public float maxHP;
}

createAssetMenu를 하면

image

Prefabs>Scriptable Object 폴더에 적 데이터인 scriptalbe 파일들 프리펩. 아래와 같이 정보 저장

image

  1. Enemy.cs의 적 관련 변수들(속도, 넉백 등..)을 데이터에 맞게 변환하기 위하여 코드 수정.
~
public EnemyScriptableObject enemyData;
~
 public void Init(EnemyScriptableObject data)
    {
        enemyData = data;
        Debug.Log("몬스터 생성");
        anim.runtimeAnimatorController = animcon[enemyData.spriteType];
        

    }
~
Vector2 nextVec = direction * enemyData.speed * Time.fixedDeltaTime;
  1. EnemySpawner.cs 코드 수정.
public EnemyScriptableObject[] spawnData;
Clone this wiki locally