diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/MiniGame.unity b/popcorn/Assets/MyGame/Scenes/MiniGame/MiniGame.unity index 54630895..6723a2f4 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/MiniGame.unity +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/MiniGame.unity @@ -491,6 +491,11 @@ PrefabInstance: propertyPath: m_Name value: BackGround (6) objectReference: {fileID: 0} + - target: {fileID: 6693468020679260202, guid: 10a5596421a45564397efb765bcabb55, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 10a5596421a45564397efb765bcabb55, type: 3} --- !u!4 &480107652 stripped @@ -937,6 +942,11 @@ PrefabInstance: propertyPath: m_Name value: BackGround (9) objectReference: {fileID: 0} + - target: {fileID: 6693468020679260202, guid: 10a5596421a45564397efb765bcabb55, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 10a5596421a45564397efb765bcabb55, type: 3} --- !u!4 &930800256 stripped @@ -1024,6 +1034,11 @@ PrefabInstance: propertyPath: m_Name value: BackGround (5) objectReference: {fileID: 0} + - target: {fileID: 6693468020679260202, guid: 10a5596421a45564397efb765bcabb55, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 10a5596421a45564397efb765bcabb55, type: 3} --- !u!4 &931896957 stripped @@ -1111,6 +1126,11 @@ PrefabInstance: propertyPath: m_Name value: BackGround (4) objectReference: {fileID: 0} + - target: {fileID: 6693468020679260202, guid: 10a5596421a45564397efb765bcabb55, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 10a5596421a45564397efb765bcabb55, type: 3} --- !u!4 &962275291 stripped @@ -1769,6 +1789,11 @@ PrefabInstance: propertyPath: m_Name value: BackGround (7) objectReference: {fileID: 0} + - target: {fileID: 6693468020679260202, guid: 10a5596421a45564397efb765bcabb55, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 10a5596421a45564397efb765bcabb55, type: 3} --- !u!4 &1328382763 stripped @@ -1869,6 +1894,11 @@ PrefabInstance: propertyPath: m_Name value: BackGround (10) objectReference: {fileID: 0} + - target: {fileID: 6693468020679260202, guid: 10a5596421a45564397efb765bcabb55, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 10a5596421a45564397efb765bcabb55, type: 3} --- !u!4 &1363981461 stripped @@ -1943,6 +1973,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1471947211} + - component: {fileID: 1471947212} m_Layer: 0 m_Name: BG m_TagString: Untagged @@ -1976,6 +2007,26 @@ Transform: m_Father: {fileID: 1871342} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1471947212 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1471947210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 42c1f932a2ec462bb884344bfe785b04, type: 3} + m_Name: + m_EditorClassIdentifier: + bgArray: + - {fileID: 894575454} + - {fileID: 2044773546} + - {fileID: 184442867} + - {fileID: 628830308} + bgWidth: 17.66 + bgOffset: 0 + holeWidth: 0 --- !u!114 &1657044091 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2319,6 +2370,11 @@ PrefabInstance: propertyPath: m_Name value: BackGround (8) objectReference: {fileID: 0} + - target: {fileID: 6693468020679260202, guid: 10a5596421a45564397efb765bcabb55, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 10a5596421a45564397efb765bcabb55, type: 3} --- !u!4 &1862591112 stripped @@ -2376,6 +2432,7 @@ MonoBehaviour: stageSelectView: {fileID: 2071735749} footerManager: {fileID: 4559813503860727170} stageManager: {fileID: 1870432536} + bgManager: {fileID: 1471947212} resultManager: {fileID: 5034752974072861423} readyObject: {fileID: 978217474} tutorialPopupObject: {fileID: 7325523898178317160} diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/BGManager.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/BGManager.cs new file mode 100644 index 00000000..bad1d08e --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/BGManager.cs @@ -0,0 +1,36 @@ +using System; +using UnityEngine; + +namespace MyGame.Scenes.MiniGame.Scripts +{ + public class BGManager : MonoBehaviour + { + // [SerializeField] private int bgCount = 3; + [SerializeField] private Transform[] bgArray; + [SerializeField] private float bgWidth = 17.66f; + [SerializeField] private float bgOffset = 0f; + [SerializeField] private float holeWidth; + private int bgIndex = 0; + + public void ResetBg(float targetXPos) + { + bgIndex = 0; + for (var i = 0; i < bgArray.Length; i++) + { + var bg = bgArray[i]; + bg.SetPositionX(targetXPos + bgWidth / 2 + bgOffset + (i - 1) * bgWidth); + } + } + + public void UpdatePos(float targetXPos) + { + var bg = bgArray[bgIndex]; + if (targetXPos - bg.position.x + bgOffset >= bgWidth) + { + // 一番奥にセット + bg.SetPositionX(bgArray[(bgArray.Length + bgIndex - 1) % bgArray.Length].position.x + bgWidth); + bgIndex = (bgIndex + 1) % bgArray.Length; + } + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/BGManager.cs.meta b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/BGManager.cs.meta new file mode 100644 index 00000000..58f494e3 --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/BGManager.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 42c1f932a2ec462bb884344bfe785b04 +timeCreated: 1658451249 \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/GameManager.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/GameManager.cs index 6fa9da6b..857ee740 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/GameManager.cs +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/GameManager.cs @@ -31,6 +31,7 @@ namespace MyGame.Scenes.MiniGame.Scripts [SerializeField] private StageSelectView stageSelectView; [SerializeField] private FooterManager footerManager; [SerializeField] private StageManager stageManager; + [SerializeField] private BGManager bgManager; [SerializeField] private ResultManager resultManager; [SerializeField] private GameObject readyObject; [SerializeField] private GameObject tutorialPopupObject; @@ -201,9 +202,12 @@ namespace MyGame.Scenes.MiniGame.Scripts characterBeginPos = playerTransform.position; var cameraTransform = Camera.main.transform; var cameraOffset = cameraTransform.position - characterBeginPos.x * Vector3.right; - state.Where(x => x == GameState.Ready).Subscribe(_ => + state.Where(x => x is GameState.Ready).Subscribe(_ => { - cameraTransform.position = playerTransform.position.x * Vector3.right + cameraOffset; + var playerPosX = playerTransform.position.x; + // カメラ移動 + cameraTransform.position = playerPosX * Vector3.right + cameraOffset; + bgManager.ResetBg(playerPosX); }).AddTo(this); state.Where(x => x == GameState.Play) .Select(_ => this.UpdateAsObservable()) @@ -218,8 +222,10 @@ namespace MyGame.Scenes.MiniGame.Scripts } player.SetJumpHold(Input.GetMouseButton(0) || Input.GetKey(KeyCode.Space)); player.Move(); + var playerPosX = playerTransform.position.x; // カメラ移動 - cameraTransform.position = playerTransform.position.x * Vector3.right + cameraOffset; + cameraTransform.position = playerPosX * Vector3.right + cameraOffset; + bgManager.UpdatePos(playerPosX); }).AddTo(this); player.OnHitItem.Where(_ => state.Value == GameState.Play).Subscribe(x =>