수업내용 관련해서 몇가지 질문이 있습니다
안녕하세요 강의 수강중 질문이 몇가지 생겨서 질문드립니다
강의에서 제가 놓친걸수도 있는데 변수명앞에 m_의 의미는 뭔가요?
유니티에서 게임 실행시에 PlayerPrefs의 Sound값이 True임에도 불구하고 시작할 때 노래가 안나오는 현상이 계속 발생합니다..!
디버깅해보니 AudioManager의 Start가 TitleManager의 Start보다 빨리 시행돼서 LoadUserData를 하기 전에 AudioManager의 해당 코드에서 Mute()를 호출하는거 같습니다 (디버깅 해보면 이 시점엔 userSettingsData.Sound 값이 false 입니다)private void Start() { var userSettingsData = UserDataManager.Instance.GetUserData<UserSettingsData>(); if(userSettingsData != null) { if(!userSettingsData.Sound) { Mute(); } } }전체 코드와도 비교해봤을 때 틀린 부분이 없었고 뭔가 될때도 있고 안될때도 있고 이러다보니 원인을 잘 모르겠습니다..!
답변 1
3
안녕하세요! BurningCarrot입니다.
문의해 주신 내용에 답변 드립니다.
변수명 앞의 m_의 의미
m_은 멤버변수라는 의미로 저는 private 멤버변수명 앞에 m_을 붙여 public 멤버변수(m_없이 대문자로 시작)와 구분해 주고 있습니다. 유니티에서 c# 사용 시 명확한 코딩 규약이 존재하지 않기에 현업에서는 프로젝트 마다 각자의 규약을 정해 변수명을 지정해주고 있습니다. 이 강의에서는 private 멤버변수는 m_VariableName, public 멤버변수는 VariableName, 지역변수는 variableName의 규약으로 명명해주고 있습니다. 이런 코딩 규약은 수강생 여러분의 각자의 규칙에 따라 진행하셔도 상관없습니다.
PlayerPrefs의 Sound값이 True임에도 불구하고 시작할 때 노래가 안 나오는 현상
이 부분은 제가 실수가 있었습니다. AudioManager의 Start 함수와 TitleManager의 Start 함수의 실행 순서는 일정하게 보장되지 않습니다. 즉 AudioManager의 Start 함수가 먼저 실행될 수도 있고 TitleManager의 Start 함수가 먼저 실행될 수도 있다는 뜻입니다. 때문에 AudioManager의 Start 함수에 해당 코드를 넣으면 버그가 발생할 수 있습니다. 따라서 AudioManager의 Start 함수에 있던 내용을 새로운 OnLoadUserData 함수를 작성하여 그 안으로 이동하였고, TitleManager의 Start 함수에서 유저 데이터를 로드한 후에 AudioManager의 OnLoadUserData 함수를 호출하는 방식으로 수정했습니다. 강의와 업로드 자료 모두 수정했으니 확인 부탁 드립니다.
//AudioManager.cs
public void OnLoadUserData()
{
var userSettingsData = UserDataManager.Instance.GetUserData<UserSettingsData>();
if(userSettingsData != null)
{
if(!userSettingsData.Sound)
{
Mute();
}
}
}//TitleManager.cs
private void Start()
{
//유저 데이터 로드
UserDataManager.Instance.LoadUserData();
//저장된 유저 데이터가 없으면 기본값으로 세팅 후 저장
if(!UserDataManager.Instance.ExistsSavedData)
{
UserDataManager.Instance.SetDefaultUserData();
UserDataManager.Instance.SaveUserData();
}
AudioManager.Instance.OnLoadUserData();
StartCoroutine(LoadGameCo());
}
추가로 궁금하신 점이 있으시다면 편하게 질문 부탁 드립니다. 🙂
제공해주신 자료에 스크립트들이 빠져있습니다
0
2
1
싱글턴패턴
0
22
2
LobbyUIController의 백키가 사라졌는데 왜그런건가요?
0
42
2
무조건 타이틀 씬부터 시작해야하나요?
0
41
1
BaseUI, UIManager
0
52
3
3d프로젝트에 적용해도 무방한가요?ㅁ
0
73
2
UserDataManager 코드 질문입니다.
0
89
2
업적/미션 Pt.3에서 OnClickClaimBtn 호출 시 Sort 부분 호출 동작
0
108
1
데이터 로드 관련 질문
0
89
2
16번 강의에서 ShowUI 함수부분 오타가 있는거 같습니다.
0
73
2
PlayerPrefs 에 대해서 문의드립니다.
0
107
2
다운 받은 자료 용량 관련 문의입니다.
0
94
2
userDataList Json으로 저장
0
101
2
Lobby 프리팹 구성 질문
0
100
3
씬로딩 관련한 질문드립니다.
0
104
2
보충강의를 들었는데도 불구하고 Confirm UI 창이 표시가 되지 않습니다.
0
144
2
Resources폴더의 로드에 대하여 궁금한 것이 있습니다.
1
157
2
LoadData함수가 호출되지 않습니다.
0
87
1
캔버스를 여러 장 사용하는 이유
0
151
1
인피티니스크롤 item의 rect Transform에 Nan값
0
112
2
아이템 필터 기능
0
146
1
[Title씬 구성 관련 질문 : 프리팹]
0
182
2
CSVReader 자세하게 설명 가능하신가요?
0
227
1
안녕하세요 일시정지부분
0
169
2





