public override IEnumerator Execute(GameObject target, IAction[] actions, int index)
        {
            animElement = canvasElement.GetComponent <RectTransform>();
            VariablesManager.SetLocal(canvasElement, "originalPosition", animElement.localPosition, true);


            AnimOutPositionTop    = new Vector3(animElement.localPosition.x, Screen.height, animElement.localPosition.z);
            AnimOutPositionBottom = new Vector3(animElement.localPosition.x, -Screen.height, animElement.localPosition.z);
            AnimOutPositionLeft   = new Vector3(-Screen.width, animElement.localPosition.y, animElement.localPosition.z);
            AnimOutPositionRight  = new Vector3(Screen.width, animElement.localPosition.y, animElement.localPosition.z);

            {
                switch (this.alignment)
                {
                case ALIGN.Top:

                    animElement.localPosition = AnimOutPositionTop;

                    break;

                case ALIGN.Bottom:

                    animElement.localPosition = AnimOutPositionBottom;

                    break;

                case ALIGN.Left:


                    animElement.localPosition = AnimOutPositionLeft;



                    break;

                case ALIGN.Right:

                    animElement.localPosition = AnimOutPositionRight;



                    break;
                }
            }


            yield return(0);
        }
        // Find actual waypoint and store it.
        private bool FindNextWp()
        {
            //select random number and select a waypoint from array with this number.
            _index      = Random.Range(0, SharedWPs.Length);
            _testTarget = SharedWPs[_index];

            // check if WP is in range of maxRange from npc
            if ((gameObject.transform.position - SharedWPs[_index].transform.position).magnitude < NxtTargetMaxRange)
            {
                // it is in range, now store it in GC next target variable.
                if (myDebug)
                {
                    Debug.Log("Range to target: " + (gameObject.transform.position - SharedWPs[_index].transform.position).magnitude);
                }

                VariablesManager.SetLocal(this.NextTarget.local.targetObject, this.NextTarget.local.ToString(), SharedWPs[_index]);
                return(true);
            }

            return(false);
        }
        private bool SelectWaypoint()
        {
            // find waypoint
            indexSelection     = Random.Range(0, AllWaypoints.Length);
            NextTargetSelected = AllWaypoints[indexSelection];

            // check if in range
            if ((gameObject.transform.position - AllWaypoints[indexSelection].transform.position).magnitude < SelectionRadius)
            {
                // VariablesManager.SetLocal(NextTarget, NextTarget, AllWaypoints[indexSelection].gameObject);
                if (useDebug)
                {
                    Debug.Log((gameObject.transform.position - AllWaypoints[indexSelection].transform.position).magnitude);
                }

                if (useDebug)
                {
                    Debug.Log("Storing wp in LocalVar");
                }
                VariablesManager.SetLocal(this.NextTarget.local.targetObject, this.NextTarget.local.ToString(), AllWaypoints[indexSelection]);
                return(true);
            }
            return(false);
        }