示例#1
0
    protected void CreateRound()
    {
        var round = trackers.Count > 0 ? trackers.Last().round + 1 : 0;

        var roundItem = AnimatedItem.CreateInstance <AnimatedItem>();

        roundItem.prefab        = roundPrefab;
        roundItem.calculateSize = true;
        roundItem.createOnInit  = true;
        base.Add(roundItem);
        ValueReceiver.SendValue(roundItem.item.gameObject, round);

        var units = Game.rounds.GetEstimatedOrder(round - Game.rounds.round);

        trackers.Add(new() {
            round = round,
            index = items.Count,
            units = units,
        });

        foreach (var unit in units)
        {
            var unitItem = AnimatedItem.CreateInstance <AnimatedItem>();
            unitItem.prefab        = unitPrefab;
            unitItem.calculateSize = true;
            unitItem.createOnInit  = true;
            base.Add(unitItem);
            ValueReceiver.SendValue(unitItem.item.gameObject, unit);
            ValueReceiver.SendValue(unitItem.item.gameObject, round);
        }
    }
示例#2
0
    public virtual void OnCombatLog(string str)
    {
        var roundItem = AnimatedItem.CreateInstance <AnimatedItem>();

        roundItem.prefab        = logItem;
        roundItem.calculateSize = true;
        roundItem.createOnInit  = true;
        base.Insert(0, roundItem);
        roundItem.item.gameObject.GetComponentInChildren <TMPro.TMP_Text>().text = str;
    }
示例#3
0
        private static AnimatedItem GetOrCreateAnimatedItem(RectTransform rt)
        {
            AnimatedItem item;

            if (!rectToItem.TryGetValue(rt, out item))
            {
                item = rectToItem[rt] = new AnimatedItem(rt);
            }
            return(item);
        }
示例#4
0
        private static void LogItem(AnimatedItem item)
        {
            Debug.WriteLine("Trackee: " + item.Feature["Trackee"]);
            Debug.WriteLine("ID: " + item.Feature["ID"]);
            Debug.WriteLine("speed: " + item.Feature["Speed"]);
            Debug.WriteLine("Bps: " + item.Feature["Bps"]);
            Debug.WriteLine("DateGps: " + item.Feature["DateGps"]);
            Debug.WriteLine("DateReceived: " + item.Feature["DateReceived"]);
            Debug.WriteLine("Longitude: " + item.Feature["Longitude"]);
            Debug.WriteLine("Latitude: " + item.Feature["Latitude"]);

            Debug.WriteLine("X: " + item.CurrentPoint.X);
            Debug.WriteLine("Y: " + item.CurrentPoint.Y);
            Debug.WriteLine("Previous X: " + item.PreviousPoint.X);
            Debug.WriteLine("Previous Y: " + item.PreviousPoint.Y);
            Debug.WriteLine("-------------------------------------------------");
        }
示例#5
0
        private static List <AnimatedItem> ConvertToAnimatedItems(IEnumerable <IFeature> features,
                                                                  List <AnimatedItem> previousItems, string idField)
        {
            var result = new List <AnimatedItem>();

            foreach (var feature in features)
            {
                var animatedItem = new AnimatedItem
                {
                    Feature       = feature,
                    CurrentPoint  = CopyAsPoint(feature.Geometry),
                    PreviousPoint = CopyAsPoint(FindPreviousPoint(previousItems, feature, idField))
                };
                result.Add(animatedItem);
            }
            return(result);
        }
示例#6
0
        private static IEnumerator PlayCoroutine(AnimatedItem item, Animation anim, Action onDone = null, bool forcedStopPreviousAnimation = true, float timeScale = 1, int repeatCount = 1)
        {
            //wait finsh of prev animation
            while (item.CurrentAnimation != null)
            {
                if (forcedStopPreviousAnimation)
                {
                    item.CurrentAnimation.StopAndResetTransform();//forced stop prev animation
                }
                yield return(null);
            }

            //object disposed?
            if (!item.Transform)
            {
                yield break;
            }

            //activate object
            item.Transform.gameObject.SetActive(true);

            if (!item.Transform.gameObject.activeInHierarchy)
            {
                //can not play inactive...
                item.CurrentAnimation = null;
                onDone?.Invoke();
                yield break;
            }

            var animInstance = anim?.CreateInstance();

            item.CurrentAnimation = animInstance;
            try
            {
                if (animInstance != null)
                {
                    yield return(animInstance.Play(item.Transform, timeScale, repeatCount));
                }
            }
            finally
            {
                item.CurrentAnimation = null;
                onDone?.Invoke();
            }
        }
示例#7
0
        private static void LogItem(AnimatedItem item)
        {
            Debug.WriteLine("Trackee: " + item.Feature["Trackee"]);
            Debug.WriteLine("ID: " + item.Feature["ID"]);
            Debug.WriteLine("speed: " + item.Feature["Speed"]);
            Debug.WriteLine("Bps: " + item.Feature["Bps"]);
            Debug.WriteLine("DateGps: " + item.Feature["DateGps"]);
            Debug.WriteLine("DateReceived: " + item.Feature["DateReceived"]);
            Debug.WriteLine("Longitude: " + item.Feature["Longitude"]);
            Debug.WriteLine("Latitude: " + item.Feature["Latitude"]);

            Debug.WriteLine("X: " + item.CurrentPoint.X);
            Debug.WriteLine("Y: " + item.CurrentPoint.Y);
            Debug.WriteLine("Previous X: " + item.PreviousPoint.X);
            Debug.WriteLine("Previous Y: " + item.PreviousPoint.Y);
            Debug.WriteLine("-------------------------------------------------");
        }
示例#8
0
 private static List<AnimatedItem> ConvertToAnimatedItems(IEnumerable<IFeature> features,
     List<AnimatedItem> previousItems, string idField)
 {
     var result = new List<AnimatedItem>();
     foreach (var feature in features)
     {
         var animatedItem = new AnimatedItem
         {
             Feature = feature,
             CurrentPoint = CopyAsPoint(feature.Geometry),
             PreviousPoint = CopyAsPoint(FindPreviousPoint(previousItems, feature, idField))
         };
         result.Add(animatedItem);
     }
     return result;
 }