Beispiel #1
0
    //public void DoUpdate()
    // decide what to do based on state and vars
    // update fsm state
    //
    //}
    private void Update()
    {
        //if (stopFrames-- > 0) {
        //    moverController.MoveSpeed = 0;
        //}

        if (trackTarget && stopFrames-- <= 0)
        {
            moverController.Speed     = moveSpeed;
            moverController.Direction = Vector2.zero;

            if (followTarget != null)
            {
                var followVector = (followTarget.transform.position - transform.position);
                if (followVector.magnitude <= proximityStop)
                {
                    moverController.Speed = 0f;
                    //Face(moverController.MoveDirection);
                    //moverController.MoveDirection = Vector2.zero;
                    moverController.Direction = followVector;
                }
                else
                {
                    moverController.Direction = followVector;
                }
            }
            Face(moverController.Direction);
        }
        else
        {
            moverController.Speed     = 0;
            moverController.Direction = Vector2.zero;
        }
        moverController.UpdateVelocity();

        if (moverController.Speed > 0)
        {
            fsm.SetBool(AnimParams.ISMOVING, true);
        }
        else
        {
            fsm.SetBool(AnimParams.ISMOVING, false);
        }
        fsm.SetFloat(AnimParams.FACEDIRX, faceDir.x);
        fsm.SetFloat(AnimParams.FACEDIRY, faceDir.y);

        //enemy.DoUpdate(state, c, ref frameInfo);
        enemyAnimator.DoUpdate(enemy, ref frameInfo);
        enemyAudio.DoUpdate(enemy, ref frameInfo);

        frameInfo.Reset();
    }