Skip to content

develop Enemy Dead

Jeon-YJ1004 edited this page Feb 6, 2023 · 1 revision

적 사망

구현 로직

  1. onTriggerEnter2D 함수 안에서 health>0 false 이면 Dead()함수 실행 => 애니메이션 설정 후 제거(여기서 실행하면 애니메이션이 너무 짧음)
  2. Enemy Animator에 'Dead' state와 parameter 생성
  3. health>0 false 일때 바뀔 object 변수들 설정
  4. 재생성시 변수들 초기화가 필요하므로 onEnable 함수에 변수 초기화
  5. 사망 애니메이션 설정

5-1. 적 사망시 애니메이션을 1초까지 실행 구현
5-2. 1초 프레임에 add Event 선택 후, 인스펙터에서 Dead() 함수 연결 image

스크립트

//Enemy.cs
private void OnEnable()
    {
        //활성화 될때 변수 초기화
        isLive = true;
        health = maxHealth;
        coll.enabled=true;
        rb.simulated = true;
        spriter.sortingOrder = 2;
        anim.SetBool("Dead", false);
    }
void Dead()
    {
        // object 비활성화
        gameObject.SetActive(false);
    }

적 처치 후 데이터 관리

구현 로직

  1. GamManager에 level, kill, exp 변수 설정
  2. Charater.cs에서 GetExp()함수 연결
  3. 사망 로직이 연달아 실행되는 것을 방지하기 위해 Enemy.cs에 조건 추가
Clone this wiki locally