ステージ選択対応

This commit is contained in:
kimura 2022-06-29 16:17:58 +09:00
parent 70ed5a22f3
commit ca4bc0e86b
3 changed files with 36 additions and 11 deletions

View File

@ -659,12 +659,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 160, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!4 &1448010325 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 2845075459559541233, guid: 417e2c534d3274ba1a973fe4284532bd,
type: 3}
m_PrefabInstance: {fileID: 2498033716723453584}
m_PrefabAsset: {fileID: 0}
--- !u!20 &1673325602 stripped
Camera:
m_CorrespondingSourceObject: {fileID: 9117079084301130544, guid: 021717b65b165374faa3fcffaafedfc2,
@ -821,7 +815,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 96c2b99ef2e6c42dd998b782def0bd0e, type: 3}
m_Name:
m_EditorClassIdentifier:
timeLimit: 6
timeLimit: 30
headerView: {fileID: 7328251774669809638}
player: {fileID: 787907554}
stageSelectView: {fileID: 2071735749}
@ -873,7 +867,13 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 92d8af3e7a454c858429c462d377f112, type: 3}
m_Name:
m_EditorClassIdentifier:
stage: {fileID: 1448010325}
stageTarget: {fileID: 1887289308}
--- !u!4 &1887289308 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 7269014383480657833, guid: 417e2c534d3274ba1a973fe4284532bd,
type: 3}
m_PrefabInstance: {fileID: 2498033716723453584}
m_PrefabAsset: {fileID: 0}
--- !u!1 &2055584752
GameObject:
m_ObjectHideFlags: 0

View File

@ -4,12 +4,19 @@ namespace MyGame.Scenes.MiniGame.Scripts
{
public class StageManager : MonoBehaviour
{
[SerializeField] private Transform stage;
[SerializeField] private Transform stageTarget;
private Transform[] stages;
public void SetBeginStages(Transform[] newStages)
{
stages = newStages;
stageTarget.DestroyAllChildrens();
stages = new Transform[newStages.Length];
var selectIndex = UnityEngine.Random.Range(0, stages.Length);
for (var i = 0; i < newStages.Length; i++)
{
stages[i] = Instantiate(newStages[i], stageTarget.position, Quaternion.identity, stageTarget);
stages[i].gameObject.SetActive(i == selectIndex);
}
}
public void GenerateStage()
@ -19,11 +26,16 @@ namespace MyGame.Scenes.MiniGame.Scripts
public void ResetStage()
{
stage.parent.FindAllChildrensComponent<Collider2D>(collider =>
stageTarget.FindAllChildrensComponent<Collider2D>(collider =>
{
transform.SetLocalScale(1f);
collider.enabled = true;
});
var selectIndex = UnityEngine.Random.Range(0, stages.Length);
for (var i = 0; i < stages.Length; i++)
{
stages[i].gameObject.SetActive(i == selectIndex);
}
}
}
}

View File

@ -556,4 +556,17 @@ public sealed class ScrollGameStageData
public string beginPrefabName;
public string randomPrefabName;
public ScrollGameDifficulty Difficulty => (ScrollGameDifficulty)difficulty;
private string[] BeginPrefabName => beginPrefabName.Split(',');
private string[] RandomPrefabName => randomPrefabName.Split(',');
public Transform[] GetBeginStagePrefabs()
{
Debug.Log($"{beginPrefabName}, {String.Join("x", BeginPrefabName)}");
return BeginPrefabName.Select(x => Resources.Load<Transform>($"ScrollGame/Stages/Stage{x}")).ToArray();
}
public Transform[] GetRandomStagePrefabs()
{
return BeginPrefabName.Select(x => Resources.Load<Transform>($"ScrollGame/Stages/Stage{x}")).ToArray();
}
}