public void SetBookmarkMode()
    {
        canceledMovement = false;

        if (navAgent.isOnNavMesh)
        {
            navAgent.Stop();
        }

        if (mode != WanderMode.Bookmark)
        {
            prevMode = mode;
        }

        mode = WanderMode.Bookmark;
        CalcDestination();
        StartMovement();
    }
    void Update()
    {
        if (navAgent.remainingDistance < .5f && !canceledMovement && !navAgent.pathPending && !IsInvoking())
        {
            if (navAgent.isOnNavMesh)
            {
                navAgent.Stop();
            }
            animator.SetFloat("Speed", 0f);
            animator.SetFloat("Direction", 0f);
            moving = false;

            if (mode == WanderMode.Bookmark)
            {
                poiDestination    = -1;
                mode              = prevMode;
                localWanderCenter = transform.position;
            }

            Invoke("SetWanderMode", idleTime);
        }
    }
Exemplo n.º 3
0
        public Rectangle rect; // If mode = Rectangle, this defines the wanderable tile region

        #endregion Fields

        #region Constructors

        public WanderState(Entity entity)
        {
            ent = entity;
            mode = WanderMode.Scripted;
            delay = 0;
            rect = default(Rectangle);
        }