背景ループ対応

This commit is contained in:
kimura 2022-07-22 13:00:05 +09:00
parent eb2d4b9db4
commit 3abe56ab3f
4 changed files with 105 additions and 3 deletions

View File

@ -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}

View File

@ -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;
}
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 42c1f932a2ec462bb884344bfe785b04
timeCreated: 1658451249

View File

@ -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 =>