public LS_Piece GetPiece(PieceType pt, int visualIndex) { LS_Piece p = pieces.Find(x => x.type == pt && x.visualIndex == visualIndex && !x.gameObject.activeSelf); if (p == null) { GameObject go = null; if (pt == PieceType.ramp) { go = ramps[visualIndex].gameObject; } else if (pt == PieceType.longblock) { go = longblocks[visualIndex].gameObject; } else if (pt == PieceType.jump) { go = jumps[visualIndex].gameObject; } go = Instantiate(go); p = go.GetComponent <LS_Piece>(); pieces.Add(p); } return(p); }
public void Spawn() { int amtObj = 0; switch (type) { case PieceType.jump: amtObj = LS_LevelManager.instance.jumps.Count; break; case PieceType.longblock: amtObj = LS_LevelManager.instance.longblocks.Count; break; case PieceType.ramp: amtObj = LS_LevelManager.instance.ramps.Count; break; } currentPiece = LS_LevelManager.instance.GetPiece(type, Random.Range(0, amtObj)); currentPiece.gameObject.SetActive(true); currentPiece.transform.SetParent(transform, false); }