Exemplo n.º 1
0
        private IEnumerator ReDrawRoutes()
        {
            while (true)
            {
                RouteSet.HighLightAll(false);
                GizmosDrawer.Clear();
                RouteSet.HighLightAll(true);

                yield return(new WaitForSeconds(2));
            }
        }
Exemplo n.º 2
0
        public static IEnumerator CheckRoutes()
        {
            while (checking)
            {
                if (routes.Count > 0)
                {
                    Timer timer = new Timer();
                    timer.Start();

                    for (int i = 0; i < routes.Count; i++)
                    {
                        Route route = routes[i];

                        int curr = 0, last = route.Count - 1;

                        while (curr != last)
                        {
                            if (route[curr] == null)
                            {
                                Timer t = new Timer();
                                t.Start();

                                route.UpdateTempStartWP();

                                var newRoute = RouteCreator.CreatePathWP(route.startWP, route.endWP, !route.IsTemp);

                                route.Set(newRoute);

                                Debug.Log("<color=orange>Coroutine route " + route.RouteID + " recalculation:</color><color=green> " + t.ElapsedTime(Timer.Units.Milliseconds) + " ms.</color>");

                                break;
                                //yield return null;
                            }
                            else
                            {
                                curr++;
                            }
                        }
                    }

                    Debug.Log("Coroutine routes recalculation:<color=green> " + timer.ElapsedTime(Timer.Units.Milliseconds) + " ms.</color>");
                }

                HighLightAll(false);
                GizmosDrawer.Clear();
                HighLightAll(true);

                yield return(new WaitUntil(() => { return Time.frameCount % 10 == 0; }));
            }
        }