묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
UserDataManager 클래스 hasSaveError 처리
public void SaveUserData() { bool hasSaveError = false; for (int i = 0; i < UserDataList.Count; i++) { bool isSaveSuccess = UserDataList[i].SaveData(); if(!isSaveSuccess) { hasSaveError = true; } } if(!hasSaveError) { ExistsSavedData = true; PlayerPrefs.SetInt("ExistsSavedData", 1); PlayerPrefs.Save(); } }여기로직에서 hasSaveError가 실패로 발생하면 개발자 입장에서는 어떻게 버그를 알 수 있을까요?그리고 개발자는 어떻게 대처를 해야 될까요??
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
제공해주신 자료에 스크립트들이 빠져있습니다
Scripts폴더에 InGame폴더가 빈 폴더입니다 확인부탁드립니다
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
싱글턴패턴
Init 함수에서 m_Instance가 null이 아니면 왜 gameobject를 Destroy하나요? OnDestroy 함수 호출되면 m_Instance 을 null로 만드는데 그럼 문제가 되지않은 객체도 m_Instance가 null이니 사용못하는거 아닌가요?using UnityEngine; public class SingletonBehaviour<T> : MonoBehaviour where T : SingletonBehaviour<T> { //씬 전환 시 삭제할지 여부 protected bool m_IsDestroyOnLoad = false; //이 클래스의 스태틱 인스턴스 변수 protected static T m_Instance; public static T Instance { get { return m_Instance; } } private void Awake() { Init(); } protected virtual void Init() { if(m_Instance == null) { m_Instance = (T)this; if(!m_IsDestroyOnLoad) { DontDestroyOnLoad(this); } } else { Destroy(gameObject); } } //삭제 시 실행되는 함수 protected virtual void OnDestroy() { Dispose(); } //삭제 시 추가로 처리해 주어야할 작업을 여기서 처리 protected virtual void Dispose() { m_Instance = null; } }
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
LobbyUIController의 백키가 사라졌는데 왜그런건가요?
갑자기 빽키가 안되서 코드를 봤더니업적부터인지 언제부터인지 자료를 받은 코드에서 보니코드가 사라졌는데 왜 그런가요? 없어도 되야하는건가요? private void Update() { HandleInput(); } private void HandleInput() { if (Input.GetKeyUp(KeyCode.Escape)) { AudioManager.Instance.PlaySFX(SFX.ui_button_click); var frontUI = UIManager.Instance.GetCurrentFrontUI(); if (frontUI) { frontUI.CloseUI(); } else { var uiData = new ConfirmUIData(); uiData.ConfirmType = ConfirmType.OK_CANCEL; uiData.TitleTxt = "Quit"; uiData.DescTxt = "Do you want to quit game?"; uiData.OKBtnTxt = "Quit"; uiData.CancelBtnTxt = "Cancel"; uiData.OnClickOKBtn = () => { Application.Quit(); }; UIManager.Instance.OpenUI<ConfirmUI>(uiData); } } }
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
무조건 타이틀 씬부터 시작해야하나요?
게임을 테스트 및 개발할때마다 순차적으로 타이틀씬에서 시작하면로딩도 기다려야되고 항상 씬도 계속 바꿔야되는 무제가 있는데로비씬이나, 인게임 씬부터 시작하면 UIManager를 찾을 수 없다고 나오기도하고다른에러들도 나오는데 이 부분에 대해서는 어떻게 처리하나요?아니면 강사님이 올려주신 프레임워크는 플레이 하라면 타이틀 씬부터 하게만 설계가 되어있나요?
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
BaseUI, UIManager
BaseUI, UIManager에 처리에 대한 구분이제가 명확하게 이해가 잘안되고 헷갈려 질문드립니다. 1. BaseUI에서 처리하는 함수 및 기능에 대한 기준이 무엇인가? 2.UIManager에서 처리하는 함수 및 기능에 대한 기준이 무엇인가? OpenUI를 할때는 SetParent를 BaeUI안의 Init함수에서 하고 CloseUI를 할때는SetParent UIManager에서 하는데 어떤 기준이나 지향점으로 하신건가 궁금합니다.CloseUI에서도 부모의 설정을 매니저에서 해줬으니 OpenUI도 매니저에서 설정해주면통일성이 있지 않을까? 그런데 강사님은 어떤기준으로 하셨을까 궁금합니다.var siblingIndex = UICanvasTrs.childCount; ui.Init(UICanvasTrs); ui.transform.SetParent(UICanvasTrs); // 이런식? ui.transform.SetSiblingIndex(siblingIndex); ui.gameObject.SetActive(true); ui.SetInfo(uiData); ui.ShowUI(); 마지막으로 코드가 이해가 잘 안되는게BaseUI에서의 CloseUI함수에서는 UIManager.Instance.CloseUI(this);호출하는데 BaseUI에서의 ShowUI는 매지저 호출에 처리가 없어서 이것도한 2개가 달라 많이 헷갈리네요. ㅠ코드가 작성되는 방식은 여러가지겠지만강사님의 코드의 작성의 의도와 목적을 잘 이해하고 싶어서 질문드립니다. ~
-
해결됨【2025年版】Unity×C#入門講座|2Dタワーディフェンスゲーム開発マスター|クリック&バトルシステムの作り方
프로젝트 완성본 문의
안녕하세요프로젝트 완성본 파일은 받는 곳이 어디있나요?소스코드만 올라와 있길래 문의드립니다.감사합니다.
-
미해결[빡센 챌린지 4기] 네트워크 게임 개발자 5주 트랙
사전학습 강의
안녕하세요, 강사님 !다름이 아니고챌린지 사전 신청 완료했는데,Git & Github 사전 학습강의가 지급되지 않은 것 같아서이렇게 문의를 남기게 되었습니다 !인프런 아이디는 jkjk950입니다 !감사합니다.
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
3d프로젝트에 적용해도 무방한가요?ㅁ
학습 관련 질문을 남겨주세요.먼저 유사한 질문이 있는지 검색 부탁 드립니다.질문 내용이 상세할수록 명확한 답변을 드릴 수 있습니다.추후 3d프로젝트 제작 예전인데,3d프로젝트에 적용해도 무방한가요?
-
미해결[빡센 챌린지 2기] 네트워크 게임 개발자 5주 트랙
발사체 동기화 부분 질문입니다!
1번 플레이어에서 포탄을 쏘면 2번 플레이어에서만 보이고 반대도 마찬가지인데 맞게 잘 따라한건지 궁금합니다
-
미해결초보자를 위한 고도엔진 게임 개발 입문
이 오류는 무슨 오류일까요?
-
미해결초보자를 위한 고도엔진 게임 개발 입문
강의 내용과 제 실습이 다릅니다.
29강에서 노드를 크릭하면 나타나는 상태가 강의와 다릅니다.
-
미해결초보자를 위한 고도엔진 게임 개발 입문
강의 내용과 제 실습이 다름
25강에서 @export를 코딩하면 인스펙터가 강의에서는 바뀌는데 나는 왜 자동으로 바뀌지 않지요? 여기에서 진도가 안나갑니다.도와주세요.
-
미해결[빡센 챌린지 2기] 네트워크 게임 개발자 5주 트랙
슬랙 초대장을 받지 못하였습니다 ㅠ
구글 메일 스토리지 이슈로 슬랙 초대장을 받지 못했습니다.. 다시 보내주실 수 있으실까요?
-
미해결[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스
안녕하세요 강사님
강의 잘보고있습니다 ! 혹시 현재 깃에는 소스코드만 되어있는데전체적인 프로젝트를 받을순 없을까요?? 소스코드를 받고 여기서 패키지를 받은다음 적용하는게 너무 불편함이있어서요!
-
해결됨[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스
소스 코드 요청
안녕하세요혹시 소스 코드 따로 제공 받을 수 있을까요?매번 동영상에서 필요한 내용 찾는 게 조금 힘드네요.가능하시면 아래 메일로 보내주셔도 되고, 다른 링크가 있으면 공유 부탁드립니다.mungchi1992@gmail.com
-
미해결[파이썬 게임개발] 초보자도 따라하는 지뢰찾기 만들기
입문자 입장에서는
전 강의에서 그러던데애초부터 모듈로 작성하면 안 헷갈린데main 작성 하고 그걸 또 중간에 모듈로 빼 버리면 입문자 입장에서 헷갈림.즉흥적으로 하는 느낌이 들음,. 전 강의에서부터최소한 정리를 하고 입문자 눈높이에서 설명해주면 좋겠음.실전에서는 강사의 방식이 맞을지 몰라도 배우는 사람입장에서는 왔다갔다하니 헷갈림.
-
해결됨게임 엔진 만들기 - Directx11와 imgui를 이용하여 기반 구조 만들기 (PART1)
혹시 영상이 안되는 이유가 있을까요?
혹시 영상이 안되는 이유가 있을까요? Members-Only Contents 라고 뜨네요
-
해결됨온라인 게임 개발을 위한 socket 프로그래밍
수업자료 문의의 건
안녕하세요. 평소 메가유치님의 영상을 자주 보는 수강생입니다. 게임 업계는 아니지만 삶에 도움이 되고자 수강 중인데 혹시 소스코드도 스터디 용으로 볼 수 있을까요?
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
UserDataManager 코드 질문입니다.
using System.Collections; using System.Collections.Generic; using UnityEngine; public class UserDataManager : SingletonBehaviour<UserDataManager> { public bool ExistsSavedData { get; private set; } public List<IUserData> UserDataList { get; private set; } = new List<IUserData>(); protected override void Init() { base.Init(); UserDataList.Add(new UserSettingData()); UserDataList.Add(new UserGoodsData()); } public void SetDefaultUserData() { for(int i = 0; i < UserDataList.Count; i++) { UserDataList[i].SetDefaultData(); } } public void LoadUserData() { ExistsSavedData = PlayerPrefs.GetInt("ExistsSavedData") == 1 ? true : false; if(ExistsSavedData) { for (int i = 0; i < UserDataList.Count; i++) { UserDataList[i].LoadData(); } } } public void SaveUserData() { bool hasSaveError = false; for(int i =0; i < UserDataList.Count; i++) { bool isSaveSuccess = UserDataList[i].SaveData(); if(!isSaveSuccess) { hasSaveError = true; } } if(!hasSaveError) { ExistsSavedData = true; PlayerPrefs.SetInt("ExistsSavedData", 1); PlayerPrefs.Save(); } } }위 코드의if(!hasSaveError) { ExistsSavedData = true; PlayerPrefs.SetInt("ExistsSavedData", 1); PlayerPrefs.Save(); }이 부분에서 PlayerPrefs에 "ExistsSavedData"를 1로 저장해주는 이유가 있나요??제 짧은 생각으로는 ExistsSavedData가 어차피 true로 처리되기 때문에 필요가 없지 않을까라는 의견입니다이와 더불어 LoadUserData()에서도 PlayerPrefs.GetInt()를 안하고 if(ExistsSavedData) 문만 가지고는 안되는지 궁금합니다. 강의 잘 듣고 있습니다. 감사합니다!