private void MakeGridChecks() { List <GameObject> markerList = new List <GameObject>(markers.Keys); foreach (GameObject markerObj in markerList) { Marker marker = markerObj.GetComponent <Marker>(); int check = treeGrid.CheckNeighbors(markers[markerObj], marker); if (check != 0) { animationLock.Dec(); markers.Remove(markerObj); Destroy(markerObj); if (!keyboardLock) { keyboardLock = true; if (!isFreeFall || stoppingFall) { stoppingFall = false; isFreeFall = true; freeFallStartTime = Time.time; freeFallStartHeight = currentHeight; } } } } }
private void DeleteAnimate(float time) { if (isWaiting) { if (time > endTime) { deleteCounter.Dec(); Destroy(gameObject); } } else { float maxDepth = 0; foreach (GridSpline deletingBranch in branchesToDepths.Keys) { maxDepth = Mathf.Max(maxDepth, GetDepth(deletingBranch)); } foreach (GridSpline deletingBranch in branchesToDepths.Keys) { float deleteStartTime = time + (maxDepth - GetDepth(deletingBranch)) / deleteSpeed; float deleteEndTime = deleteStartTime + deletingBranch.cumulativeLengths[deletingBranch.cumulativeLengths.Count - 1] / deleteSpeed; deletingBranch.Delete(deleteStartTime, deleteEndTime); endTime = Mathf.Max(endTime, deleteEndTime); } isWaiting = true; } }