using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[System.Serializable]
public struct Stage
{
    public bool isBoss;
    public int stageNum;
    public int boardWidth;
    public int boardHeight;
    public bool isClear;
}

Stage 관리를 하기위해 Stage 구조체를 만들었다. 

 

public class DataManager : MonoBehaviour
{
    [SerializeField] private List<Stage> stages;
    private int curStage;

    public List<Stage> Stages { get { return stages; } }
    public int CurStage { set { curStage = value - 1; } }


    public Stage GetCurStgae()
    {
        return stages[curStage];
    }

    public void SetCurStgaeIsClear()
    {
    	//해당 코드는 문법상 오류 발생
        //stages[curStage].isClear = false;

        //구조체 변수를 새로 선언해서 초기화 해줘야함
        Stage stage = stages[curStage];
        stage.isClear = true;
        stages[curStage] = stage;
    }

Class 내에 Stage 구조체를 이용해 List를 만들어서 List[index]로 변수에 접근했으나 Stage의 변수에 접근하지 못했다. 

분명 List로 만들어서 배열처럼 접근했으나 이런식으로 답변이 나왔다.

 

다른 Stage 구조체를 선언해서 다시 넣어줘서  해결하였다.

 


해당 문제는 기초가 모자라 그런것 같다.. 다시 한번 기초를 다듬어봐야할것 같다.

 

+ Recent posts