コード例 #1
0
ファイル: Healer.cs プロジェクト: Sophriel/The-Orb
    //  공격
    public override void Attack()
    {
        TargetEnemy.Damage(AttackDamage);

        if (!TargetEnemy.isAlive())
        {
            SetIdle();
        }


        //  스킬 카운트
        Count++;
    }
コード例 #2
0
ファイル: Healer.cs プロジェクト: Sophriel/The-Orb
    //  탐색 레이더. 나중에 부모클래스로 빼줘야하고 애니메이션 이름 통일
    public IEnumerator Rader()
    {
        AngleZ = 0.0f;

        while (true)
        {
            //  레이 쏘는 방향 뱅글뱅글
            AngleZ  += 1440.0f * Time.deltaTime;
            Detector = (Quaternion.Euler(0.0f, 0.0f, AngleZ) * Vector3.down * Range)
                       + transform.position;
            Debug.DrawLine(transform.position, Detector, Color.red, 0.1f);

            hit = Physics2D.Linecast(transform.position, Detector, 1 << LayerMask.NameToLayer("Enemy"));

            if (hit)
            {
                TargetEnemy = (IDamageable)hit.transform.GetComponent(typeof(IDamageable));

                //  유효한 타겟인가?
                if (TargetEnemy.isAlive())
                {
                    cStatus           = Status.Attack;
                    anm.AnimationName = "heal";
                    yield break;
                }

                else
                {
                    SetIdle();
                }
            }

            else
            {
                if (cStatus == Status.Attack)
                {
                    SetIdle();
                }
            }

            yield return(null);
        }
    }
コード例 #3
0
ファイル: Healer.cs プロジェクト: Sophriel/The-Orb
    //  콜백함수. 이벤트 발생시 호출됨
    void HandleEvent(Spine.TrackEntry trackEntry, Spine.Event e)
    {
        //  정확히 타격 판정이 발생하는 부분
        if (e.Data.Name == "hit" && !isAttacked)
        {
            print("event hitttttt");
            Attack();
            isAttacked = true;
        }

        //  공격 후
        if (e.Data.Name == "end attack" && isAttacked)
        {
            print("end Attack");

            //  적이 아직 사거리 내에 있는지 확인
            if (TargetEnemy.isAlive())
            {
                CheckDistance(transform.position, TargetEnemy.GetTransform().position, Range);
            }

            isAttacked = false;
        }
    }