public void SpawnNumber(int number, Color c) { GameObject damageNumber = pool.GetObject(); ((RectTransform)damageNumber.transform).anchoredPosition = new Vector2(0, 0); TextMeshProUGUI tmpugui = damageNumber.GetComponent <TextMeshProUGUI>(); tmpugui.SetText(number.ToString()); tmpugui.faceColor = c; Color outline = Color.black; UpdateTimer ut = timers.Get(); ut.Start(2, () => { // finish pool.Return(damageNumber); timers.Return(ut); }, (percentComplete) => { // update c.a = 1 - percentComplete; tmpugui.faceColor = c; outline.a = c.a; tmpugui.outlineColor = outline; }); }
private void ShowPopUpPrivate(Vector2 canvasSpaceStartPosition, string text, Color color, bool worldCoords) { var go = popUpPool.GetObject(); TextMeshProUGUI t = go.GetComponent <TextMeshProUGUI>(); t.text = text; t.color = color; RectTransform pos = go.GetComponent <RectTransform>(); if (!worldCoords) { pos.anchoredPosition = canvasSpaceStartPosition; } else { pos.position = canvasSpaceStartPosition; } LerpData data = new LerpData(); data.Time = 0; data.PopUpText = t; data.PopUpPosition = pos; data.StartY = pos.anchoredPosition.y; currentLerpers.Add(data); }
private void ResetFollowers() { FollowerPool.Reset(); for (int i = 0; i < ListOfCurrentFollowers.Value.Count; i++) { FollowerData fd = ListOfCurrentFollowers[i]; GameObject go = FollowerPool.GetObject(); FollowerDisplay d = go.GetComponent <FollowerDisplay>(); AddDisplay(d, fd); } FollowerLayoutController.Instance.ChangeLayout(); }
public void AddDeadEnemy(float x, float y, EnemyData s) { GameObject go = DeadEnemies.GetObject(); go.GetComponent <Image>().sprite = s.DeadSprite; RectTransform rt = ((RectTransform)go.transform); Vector2 r = rt.sizeDelta; r.x = s.SizeOfSprite.x; r.y = s.SizeOfSprite.y; rt.sizeDelta = r; Vector3 pos = rt.anchoredPosition; pos.x = x; pos.y = y; rt.anchoredPosition = pos; StartCoroutine(ScrollOff(go)); }
// Update is called once per frame void Update() { if (IsScrolling) { float scrollSpeed = ScrollSpeed; for (int i = 0; i < nextSpawnDistance.Count; i++) { nextSpawnDistance[i] -= scrollSpeed * Time.deltaTime; if (nextSpawnDistance[i] <= 0) { MiningPoint point = areaPoints[i]; GameObject go = Pool.GetObject(); Image im = go.GetComponent <Image>(); im.sprite = point.Image; im.SetNativeSize(); AddListener(go.GetComponent <ClickReceiver>(), point); Vector3 pos = go.transform.localPosition; pos.x = 79; go.transform.localPosition = pos; nextSpawnDistance[i] = Random.Range(point.MinDistanceBetween, point.MaxDistanceBetween); } } foreach (var point in Pool.InUse.ToArray()) { Vector3 pos = point.transform.localPosition; pos.x -= scrollSpeed * Time.deltaTime; if (pos.x <= ReturnToPoolXValue) { Pool.Return(point); } point.transform.localPosition = pos; } } }
private IEnumerator ShootItems(List <Item> items, Action onClick, Action onDone) { if (Pool.InUse.Count > 0) { Debug.LogError("Tried to add items to item dropper when there's still items"); } int count = items.Count; if (!items.Any()) { onDone?.Invoke(); yield break; } foreach (Item it in items) { yield return(new WaitForSeconds(SpawnDelay)); GameObject itemBubble = Pool.GetObject(); itemBubble.transform.localPosition = Vector3.zero; itemBubble.transform.rotation = Quaternion.identity; itemBubble.GetComponent <ItemDropBubble>().SetData(it, (i) => { count--; OnClick(i, onClick, onDone); if (count == 0) { onDone?.Invoke(); } }); itemBubble.GetComponent <ItemDropBubble>().Shoot(); } }