public void SetSplinePointActivationState(bool state) { if (!ControlPointLeft.IsEndPoint) { SetLeftControlPointActiveState(state); } if (!ControlPointRight.IsEndPoint) { SetRightControlPointActiveState(state); } anchorPoint.gameObject.SetActive(state); anchorPoint.GetComponent <SpriteRenderer>().enabled = state; }
private void OnEnable() { lineRenderer = GetComponent <LineRenderer>(); anchorPoint = transform.GetChild(0).GetComponent <AnchorPoint>(); ControlPointLeft = transform.GetChild(1).GetComponent <ControlPoint>(); ControlPointRight = transform.GetChild(2).GetComponent <ControlPoint>(); anchorPointSpriteRenderer = anchorPoint.GetComponent <SpriteRenderer>(); controlPointLeftSpriteRenderer = ControlPointLeft.GetComponent <SpriteRenderer>(); controlPointRightSpriteRenderer = ControlPointRight.GetComponent <SpriteRenderer>(); anchorPointSpriteRenderer.color = anchorPointColor; controlPointLeftSpriteRenderer.color = controlPointColor; controlPointRightSpriteRenderer.color = controlPointColor; }
public void CreateItemsList() { for (int i = 0; i < anchorPoints.Length; i++) { anchorPoints[i].ResetAnchor(); } for (int i = 0; i < lostItemPool.Length; i++) { if (!lostItemPool[i].isStatic) { lostItemPool[i].transform.SetParent(lostItemPoolParent, false); lostItemPool[i].gameObject.SetActive(false); } lostItemPool[i].correct.SetActive(false); } itemIdsToDisplay = new List <int>(); List <LostItemObject> lostItemPoolCopy = lostItemPool.ToList(); int count = lostItemPoolCopy.Count; //add all static items first for (int i = count - 1; i >= 0; i--) { if (lostItemPoolCopy[i].isStatic) { itemIdsToDisplay.Add(lostItemPoolCopy[i].itemId); lostItemPoolCopy.RemoveAt(i); } } //add random items for (int i = 0; i < numAdditionalItemsToDisplay; i++) { int randomIndex = Random.Range(0, lostItemPoolCopy.Count); itemIdsToDisplay.Add(lostItemPoolCopy[randomIndex].itemId); AnchorPoint anchorPoint = null; while (anchorPoint == null) { AnchorPoint x = lostItemPoolCopy[randomIndex].possibleAnchorPoints[Random.Range(0, lostItemPoolCopy[randomIndex].possibleAnchorPoints.Length)]; if (!x.taken) { anchorPoint = x; x.taken = true; } } lostItemPoolCopy[randomIndex].transform.SetParent(anchorPoint.transform, false); lostItemPoolCopy[randomIndex].transform.localPosition = Vector3.zero; lostItemPoolCopy[randomIndex].GetComponent <SpriteRenderer>().color = new Color(anchorPoint.GetComponent <SpriteRenderer>().color.r, anchorPoint.GetComponent <SpriteRenderer>().color.g, anchorPoint.GetComponent <SpriteRenderer>().color.b, 1); lostItemPoolCopy[randomIndex].GetComponent <SpriteRenderer>().sortingOrder = anchorPoint.GetComponent <SpriteRenderer>().sortingOrder; lostItemPoolCopy[randomIndex].gameObject.SetActive(true); anchorPoint.frame.dynamicEntities.Add(lostItemPoolCopy[randomIndex].GetComponent <SpriteRenderer>()); lostItemPoolCopy.RemoveAt(randomIndex); } //generate list of items to find itemIdsToFind = new List <int>(); List <int> itemIdsToDisplayCopy = itemIdsToDisplay.ToArray().ToList(); for (int i = 0; i < numItemsToFind; i++) { int randomIndex = Random.Range(0, itemIdsToDisplayCopy.Count); itemIdsToFind.Add(itemIdsToDisplayCopy[randomIndex]); itemIdsToDisplayCopy.RemoveAt(randomIndex); } if (lostItemTexts != null) { for (int i = lostItemTexts.Count - 1; i >= 0; i--) { CacheManager.Store("LostItemText", lostItemTexts[i].gameObject); } } lostItemTexts = new List <LostItemText>(); foreach (var itemId in itemIdsToFind) { var itemName = lostItemPool.Single(x => x.itemId == itemId).itemName; GameObject lostItemText = CacheManager.ActivateRandom("LostItemText"); lostItemText.transform.SetParent(lostItemListParent, false); lostItemText.transform.position = lostItemListParent.position; lostItemText.transform.localScale = Vector3.one; lostItemText.GetComponent <LostItemText>().AssignInfo(itemId, itemName); lostItemTexts.Add(lostItemText.GetComponent <LostItemText>()); } ItemsFound = 0; }