コード例 #1
0
    public void Start()
    {
        onAnimationEvent += (RodAnimationEvent e) => {
            switch (e)
            {
            case RodAnimationEvent.CastStart:
                currentState = RodState.Casting;
                bobberAnimator.SetTrigger("Reset");
                break;

            case RodAnimationEvent.CastEnd:
                currentState = RodState.WaitingForBite;
                bobberAnimator.SetTrigger("HitWater");
                break;

            case RodAnimationEvent.BiteStart:
                break;

            case RodAnimationEvent.BiteEnd:
                break;

            case RodAnimationEvent.ReelStart:
                currentState = RodState.Reeling;
                bobberAnimator.SetTrigger("Reel");
                bobberBehaviour.isInWater = false;
                break;

            case RodAnimationEvent.ReelEnd:
                currentState = RodState.Idle;
                break;
            }
        };
    }
コード例 #2
0
    private void startReel()
    {
        if (cursorOnUI())
        {
            return;
        }

        bobber.enabled = false;
        state          = RodState.Reeling;
        StartCoroutine(reelRoutine());
    }
コード例 #3
0
    private void startCast()
    {
        Vector2 point = Camera.main.ScreenToWorldPoint(Input.mousePosition);

        if (cursorOnUI())
        {
            return;
        }

        state = RodState.Casting;
        StartCoroutine(castRoutine(point));
    }
コード例 #4
0
    // Use this for initialization
    void Start()
    {
        state = RodState.LineIn;
        bobber.transform.position = transform.position;
        bobber.transform.parent   = transform;
        bobber.enabled            = false;

        pointerData = new PointerEventData(EventSystem.current);
        results     = new List <RaycastResult>();

        game = FindObjectOfType <GameState>();
    }
コード例 #5
0
    private IEnumerator castRoutine(Vector2 target)
    {
        bobber.transform.parent = null;

        while (Vector2.Distance(bobber.transform.position, target) > tolerance)
        {
            bobber.transform.position = Vector3.MoveTowards(bobber.transform.position, target, reelSpeed * Time.deltaTime);

            yield return(null);
        }

        state          = RodState.LineOut;
        bobber.enabled = true;
    }
コード例 #6
0
    private IEnumerator reelRoutine()
    {
        while (Vector2.Distance(bobber.transform.position, transform.position) > tolerance)
        {
            bobber.transform.position = Vector3.MoveTowards(bobber.transform.position, transform.position, reelSpeed * Time.deltaTime);

            yield return(null);
        }

        state = RodState.LineIn;
        bobber.transform.parent = transform;

        game.AddFish(bobber.TakeFish());
    }
コード例 #7
0
 void OnEnable()
 {
     currentState = RodState.Idle;
     HandleInput(RodAction.Idle);
 }