public void GenerateNextPlatform(float distance, float width) { var lastPlatform = _platformsOnScreen[_platformsOnScreen.Count - 1]; lastPlatform.IsActive = true; LevelPlatform platfom = ObjectCreator.CreateObject(_platformPrefab, transform).GetComponent <LevelPlatform>(); platfom.Init(width); _platformsOnScreen.Add(platfom); float newXCoordinate = lastPlatform.Width * 0.5f + lastPlatform.transform.localPosition.x + distance + width * 0.5f; platfom.transform.localPosition = new Vector3(newXCoordinate, platfom.transform.localPosition.y, platfom.transform.localPosition.z); if (_platformsOnScreen.Count > 2) { _platformsOnScreen[0].gameObject.ReturnToPool(); _platformsOnScreen.Remove(_platformsOnScreen[0]); } float bonusPosition = _platformsOnScreen[_platformsOnScreen.Count - 2].RightPosition.x + (_platformsOnScreen[_platformsOnScreen.Count - 1].RightPosition - _platformsOnScreen[_platformsOnScreen.Count - 2].LeftPosition).x; BonusManager.Instance.SpawnBonus(new Vector3(bonusPosition, 100f, 100f)); }
private void GenerateFirstPlatform() { float width = 200; LevelPlatform platfom = ObjectCreator.CreateObject(_platformPrefab, transform).GetComponent <LevelPlatform>(); platfom.Init(width); platfom.IsActive = true; _platformsOnScreen.Add(platfom); }