Exemplo n.º 1
0
        public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
        {
            myMonster.IsAttacking = true;

            float dir = (myMonster.Target.position - myMonster.transform.position).normalized.x;

            dir = Mathf.Clamp01(dir) == 0f ? -1f : 1f;

            //TODO: 개선
            if (dir < 0f && myMonster.transform.lossyScale.x > 0f)
            {
                myMonster.SetTurn();
            }
            else if (dir > 0f && myMonster.transform.lossyScale.x < 0f)
            {
                myMonster.SetTurn();
            }

            if (isOn == false && (stateInfo.normalizedTime % 1) >= AttackActivation.minValue)
            {
                myMonster.AttackTrigger(AttackTrigger);
                isOn = true;
            }
            if (isOff == false && (stateInfo.normalizedTime % 1) >= AttackActivation.maxValue)
            {
                myMonster.AttackTrigger(0);
                isOff = true;
            }
        }
Exemplo n.º 2
0
        public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
        {
            float dir = (myMonster.Target.position - myMonster.transform.position).normalized.x;

            dir = Mathf.Clamp01(dir) == 0f ? -1f : 1f;

            //TODO: 개선
            if (dir < 0f && myMonster.transform.lossyScale.x > 0f)
            {
                myMonster.SetTurn();
            }
            else if (dir > 0f && myMonster.transform.lossyScale.x < 0f)
            {
                myMonster.SetTurn();
            }

            _Rigidbody2D.velocity = new Vector2(dir * speed * Time.deltaTime, _Rigidbody2D.velocity.y);
        }