예제 #1
0
    public override void AttackMelee()
    {
        if (_isMeleeAttackReady == false && isAttacking == true)
        {
            return;
        }
        _isMeleeAttackReady = false;

        myAction             = Action.Attack;
        isAttacking          = true;
        myAttackCase         = AttackCase.Melee;
        aiMoveScript.enabled = false;
        myMeleeAttackRange.SetActive(false);


        // Setting collider size and offset by its direction
        switch (myLookingDirection)
        {
        case LookingDirection.Top:

            attackColliderSize   = new Vector2((float)myColliderSet[0]["Size_x"], (float)myColliderSet[0]["Size_y"]);
            attackColliderOffset = new Vector2((float)myColliderSet[0]["Offset_x"], (float)myColliderSet[0]["Offset_y"]);

            break;

        case LookingDirection.Down:

            attackColliderSize   = new Vector2((float)myColliderSet[1]["Size_x"], (float)myColliderSet[1]["Size_y"]);
            attackColliderOffset = new Vector2((float)myColliderSet[1]["Offset_x"], (float)myColliderSet[1]["Offset_y"]);

            break;

        case LookingDirection.Left:

            attackColliderSize   = new Vector2((float)myColliderSet[2]["Size_x"], (float)myColliderSet[2]["Size_y"]);
            attackColliderOffset = new Vector2((float)myColliderSet[2]["Offset_x"], (float)myColliderSet[2]["Offset_y"]);

            break;

        case LookingDirection.Right:

            attackColliderSize   = new Vector2((float)myColliderSet[3]["Size_x"], (float)myColliderSet[3]["Size_y"]);
            attackColliderOffset = new Vector2((float)myColliderSet[3]["Offset_x"], (float)myColliderSet[3]["Offset_y"]);

            break;
        }

        myAnimator.SetInteger("actionNum", 2);
        myAnimator.SetTrigger("isMelee");
        myAnimator.SetFloat("actionX", myDirection.x);
        myAnimator.SetFloat("actionY", myDirection.y);

        attackCollider.SetActive(true);
        attackColliderScript.size   = attackColliderSize;
        attackColliderScript.offset = attackColliderOffset;

        StartCoroutine(WaitAnimationFinish());
        StartCoroutine(CoolDownMelee());
    }
예제 #2
0
 public override void EndAttackSkill2()
 {
     myAction     = Action.Move;
     myAttackCase = AttackCase.None;
     myAnimator.SetInteger("actionNum", 1);
     myAnimator.ResetTrigger("isSkill2");
     myAnimator.SetFloat("moveX", myDirection.x);
     myAnimator.SetFloat("moveY", myDirection.y);
     isAttacking          = false;
     aiMoveScript.enabled = true;
 }
예제 #3
0
    private void OnEnable()
    {
        myAction     = Action.Idle;
        myAttackCase = AttackCase.None;



        Initialize();

        aiMoveScript.enabled = false;

        StartCoroutine(myBase.FindLookingDirection());

        PlayerEnteredRoom();
    }
예제 #4
0
    public override void AttackSkill2()
    {
        if (_isSkill2AttackReady == false && isAttacking == true)
        {
            return;
        }
        _isSkill2AttackReady = false;

        myAction             = Action.Attack;
        isAttacking          = true;
        myAttackCase         = AttackCase.Skill2;
        aiMoveScript.enabled = false;
        mySkill2AttackRange.SetActive(false);

        myAnimator.SetInteger("actionNum", 2);
        myAnimator.SetTrigger("isSkill2");
        myAnimator.SetFloat("actionX", myDirection.x);
        myAnimator.SetFloat("actionY", myDirection.y);

        StartCoroutine(WaitAnimationFinish());
        StartCoroutine(CoolDownSkill2());
    }