묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결유니티 시스템 프로그래밍 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) 문만 가지고는 안되는지 궁금합니다. 강의 잘 듣고 있습니다. 감사합니다!
-
해결됨【2025年版】Unity×C#入門講座|2Dタワーディフェンスゲーム開発マスター|クリック&バトルシステムの作り方
수업 자료 링크를 어디서 볼 수 있나요?
쩝.. 일본 강의를 번역한 거였군요.좀 표시해 두시지.수업 자료 링크만 알려주십시오.한번 공부해 보겠습니다.
-
미해결【2025年】Unity × C#で作る本格2D戦略型タワーディフェンスゲーム開発講座
녹음 확인 해주세요
4분50초경에 이상한 목소리가 녹음이 되어 있는것 같습니다
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
업적/미션 Pt.3에서 OnClickClaimBtn 호출 시 Sort 부분 호출 동작
public void OnClickClaimBtn() { if(!m_AchievementItemData.IsAchieved || m_AchievementItemData.IsRewardClaimed) { return; } var userAchievementData = UserDataManager.Instance.GetUserData<UserAchievementData>(); if(userAchievementData == null) { Logger.LogError("UserAchievementData does not exist."); return; } var achievementData = DataTableManager.Instance.GetAchievementData(m_AchievementItemData.AchievementType); if(achievementData == null) { Logger.LogError("AchievementData does not exist."); return; } var userAchievedData = userAchievementData.GetUserAchievementProgressData(m_AchievementItemData.AchievementType); if(userAchievedData != null) { var userGoodsData = UserDataManager.Instance.GetUserData<UserGoodsData>(); if(userGoodsData != null) { userAchievedData.IsRewardClaimed = true; userAchievementData.SaveData(); m_AchievementItemData.IsRewardClaimed = true; switch (achievementData.AchievementRewardType) { case GlobalDefine.RewardType.Gold: userGoodsData.Gold += achievementData.AchievementRewardAmount; var goldUpdateMsg = new GoldUpdateMsg(); goldUpdateMsg.isAdd = true; Messenger.Default.Publish(goldUpdateMsg); userAchievementData.ProgressAchievement(AchievementType.CollectGold, achievementData.AchievementRewardAmount); break; case GlobalDefine.RewardType.Gem: userGoodsData.Gem += achievementData.AchievementRewardAmount; var gemUpdateMsg = new GemUpdateMsg(); gemUpdateMsg.isAdd = true; Messenger.Default.Publish(gemUpdateMsg); break; default: break; } userGoodsData.SaveData(); } } }이 부분에서 8:17초 부분 보시면 보상 받고 바로 UI Sort가 호출되는게 OnAchievementProgressed가 호출 돼서 그런거 같은데 저 OnClickClaimBtn 함수 내에선 찾아봐도 OnAchievementProgressed가 호출 될 수 있는 부분이 안보여서 질문드립니다. 제 동작 역시 보상을 받고 Sort는 일어나지 않습니다.저 userGoodsData.SaveData(); 밑에var achievementProgressMsg = new AchievementProgressMsg(); Messenger.Default.Publish(achievementProgressMsg); 를 호출해야하나요..? 다시 확인해보니 골드업적이 깨지기 전이면 골드 업적 갱신부분에서 Sort가 호출되서 그러는거 같은데 이미 골드 업적을 깬 상태면 Sort가 발생하지 않습니다.