ScrollableBackground.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. //------------------------------------------------------------
  2. // Game Framework
  3. // Copyright © 2013-2021 Jiang Yin. All rights reserved.
  4. // Homepage: https://gameframework.cn/
  5. // Feedback: mailto:ellan@gameframework.cn
  6. //------------------------------------------------------------
  7. using UnityEngine;
  8. namespace MetaClient
  9. {
  10. public class ScrollableBackground : MonoBehaviour
  11. {
  12. [SerializeField]
  13. private float m_ScrollSpeed = -0.25f;
  14. [SerializeField]
  15. private float m_TileSize = 30f;
  16. [SerializeField]
  17. private BoxCollider m_VisibleBoundary = null;
  18. [SerializeField]
  19. private BoxCollider m_PlayerMoveBoundary = null;
  20. [SerializeField]
  21. private BoxCollider m_EnemySpawnBoundary = null;
  22. private Transform m_CachedTransform = null;
  23. private Vector3 m_StartPosition = Vector3.zero;
  24. private void Start()
  25. {
  26. m_CachedTransform = transform;
  27. m_StartPosition = m_CachedTransform.position;
  28. }
  29. private void Update()
  30. {
  31. float newPosition = Mathf.Repeat(Time.time * m_ScrollSpeed, m_TileSize);
  32. m_CachedTransform.position = m_StartPosition + Vector3.forward * newPosition;
  33. }
  34. public BoxCollider VisibleBoundary
  35. {
  36. get
  37. {
  38. return m_VisibleBoundary;
  39. }
  40. }
  41. public BoxCollider PlayerMoveBoundary
  42. {
  43. get
  44. {
  45. return m_PlayerMoveBoundary;
  46. }
  47. }
  48. public BoxCollider EnemySpawnBoundary
  49. {
  50. get
  51. {
  52. return m_EnemySpawnBoundary;
  53. }
  54. }
  55. }
  56. }