Global Game Jam 2023
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
1.9 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class TileManager : MonoBehaviour
  5. {
  6. [SerializeField]
  7. private List<TileData> m_tileList = new List<TileData>();
  8. [SerializeField]
  9. private Transform m_camTransform;
  10. private int m_bendProfile = 0;
  11. private TileController m_previousTile;
  12. private TileController m_currentTile;
  13. public enum TileTypes
  14. {
  15. BEND_LEFT = -1,
  16. STRAIGHT = 0,
  17. BEND_RIGHT = 1,
  18. };
  19. private void Start()
  20. {
  21. m_currentTile = FindObjectOfType<TileController>();
  22. }
  23. // Update is called once per frame
  24. void Update()
  25. {
  26. /*
  27. if (m_previousTile != null)
  28. {
  29. if (Vector3.Distance(m_previousTile.transform.position, Camera.main.transform.position) > m_exitCullDistance)
  30. {
  31. Destroy(m_previousTile);
  32. m_previousTile = null;
  33. }
  34. }
  35. */
  36. if(Input.GetKeyDown(KeyCode.Space))
  37. {
  38. SpawnRandomTile();
  39. }
  40. }
  41. void SpawnRandomTile()
  42. {
  43. var _startBendProfile = m_bendProfile;
  44. TileData _selectedTile = new TileData();
  45. do
  46. {
  47. _selectedTile = m_tileList[Random.Range(0, m_tileList.Count - 1)];
  48. }
  49. while (Mathf.Abs(m_bendProfile + (int)_selectedTile.tileType) >= 2);
  50. m_bendProfile += (int)_selectedTile.tileType;
  51. var _newTileObj = Instantiate(_selectedTile.prefab);
  52. _newTileObj.transform.forward = m_currentTile.exitAnchor.transform.forward;
  53. var _newTileController = _newTileObj.GetComponent<TileController>();
  54. Vector3 _offset = m_currentTile.exitAnchor.position - _newTileController.entryAnchor.position;
  55. _newTileObj.transform.position += _offset;
  56. m_previousTile = m_currentTile;
  57. m_currentTile = _newTileController;
  58. }
  59. }