public int Load(ArkanoidManager levelManager, System.Action callBack = null) { var totalBricks = 0; var spawnAnimation = (SpawnAnimation)Random.Range(0, 3); var sequence = DOTween.Sequence(); foreach (var brickPosition in levelBricks) { var brick = ((GameObject)Instantiate(Resources.Load("Bricks/" + brickPosition.prefabName))).GetComponent <Brick>(); brick.transform.parent = levelManager.Bricks; brick.transform.position = brickPosition.position; Tween brickTween = null; switch (spawnAnimation) { case SpawnAnimation.TopDown: brickTween = SpawnTopDown(brick.transform, brickPosition.position); break; case SpawnAnimation.LeftRight: brickTween = SpawnLeftRight(brick.transform, brickPosition.position); break; case SpawnAnimation.Scale: brickTween = SpawnScale(brick.transform); break; } sequence.Insert(0, brickTween); brick.OnBrickDestroyed += levelManager.OnBrickDestroyed; totalBricks = brick.brickType == Brick.BrickType.Destructible ? totalBricks + 1 : totalBricks; } sequence.OnComplete(() => callBack?.Invoke()); return(totalBricks); }
public static void Clean(ArkanoidManager levelManager) { foreach (Transform t in levelManager.Bricks) { var brick = t.GetComponent <Brick>(); brick.OnBrickDestroyed -= levelManager.OnBrickDestroyed; Destroy(brick.gameObject); } }
public LevelEditorTool(ArkanoidManager arkanoidManager) { _arkanoidManager = arkanoidManager; _grid = new LevelGrid(_arkanoidManager); _bricksPrefabs = Utils.GetPrefabsAtPath(Utils.BricksPath); _backGroundMaterials = Utils.GetBackGroundMaterialsAtPath(Utils.BackgroundMaterialsPath); _selectedPrefabIndex = EditorPrefs.GetInt("_selectedPrefabIndex", -1); _selectedBackgroundMaterialIndex = EditorPrefs.GetInt("_selectedBackgroundMaterialIndex", -1); LoadEditor(); }
private void OnEnable() { _target = (ArkanoidManager)target; InitEditorProperties(); _target.Bricks.ClearChildrens(); _paintTool = new LevelEditorTool(_target); _edit = EditorPrefs.GetBool("_edit", false); if (_edit) { SceneView.onSceneGUIDelegate += HandleMouseEvents; } }
public LevelGrid(ArkanoidManager levelManager) { _levelArkanoidManager = levelManager; }
private void Awake() { ArkanoidManager = FindObjectOfType <ArkanoidManager>(); }
private void Awake() { Instance = this; }