コード例 #1
0
    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));
    }
コード例 #2
0
    private void GenerateFirstPlatform()
    {
        float         width   = 200;
        LevelPlatform platfom = ObjectCreator.CreateObject(_platformPrefab, transform).GetComponent <LevelPlatform>();

        platfom.Init(width);
        platfom.IsActive = true;
        _platformsOnScreen.Add(platfom);
    }