묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
ResourceManager에서 Multiple Sprite를 로드하는 방법
안녕하십니까? ResourceManager.cs 코드의 어드레서블 에셋 로드 부분에서 스프라이트 로드 관련 질문입니다. 현재 코드는 single sprite에 대한 방식만 제공하고 있는데요. 혹시 Multiple Sprite를 로드하는 방법에 대해 따로 추가로 연구하신 방법이 있는지 궁금합니다. 검색을 해보니 인프런 AI답변으로 Single 스프라이트로 로드 하는걸 추천한다고 했습니다.개인적인 프로젝트라면 개별 스프라이트로 분리해서 추가하는 것도 가능한데, 실제 현업에서는 Multiple Sprite로 작업이 많을 거 같기도 하고 궁금한 부분이라 질문드립니다. 감사합니다.
-
미해결[Unity] 함께 만들어가는 방치형 게임 개발
Dice Prefab
이미 질문에 있는 것처럼 Dice prefab이 없는데 저도 똑같이 메일로 받아야하나요?
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
State Pattern #6 (Dead) 챕터의 Spawner.m_Players.Add(this); 문의드립니다.
안녕하세요?State Pattern #6 (Dead) 챕터의 (24분:53초) Player.cs 파일입니다.Spawner.m_Players.Add(this); 문의드립니다. 간략하게 코드를 정리해봤는데요. protected override void Start() {Spawner.m_Players.Add(this);}private void OnReady() {Spawner.m_Players.Add(this);}private void OnDead() {Spawner.m_Players.Add(this);}private void OnDungeon(int value) {Spawner.m_Players.Add(this); }public void DeadEvent() {Spawner.m_Players.Remove(this);} 이상황에서 빌드후 메인씬에 진입하면 예상으로 Start, OnReady 가 호출되고나서 m_Players 에 주 캐릭터가 배열에 2번 들어 갈것같은데요. 죽었을때 제거되고 m_Players에 추가되는것은 이해되나적스폰이 되기전에 m_Players의 배열길이가 2개가되지않을까 싶어서요. HashSet 으로 처리하면 해결되지않을까싶기도하고..영상을 더봐야 이해되는부분인지.. 이해가 잘안되서 그러니 이해부탁드립니다~
-
미해결[유니티 실전 프로젝트] Burger Please 모작
NullReferenceException 에러
안녕하세요. 튜토리얼과 세이브 파일 강의 수강하고 코드를 그대로 작성했는데 해당 널 에러가 발생합니다. NullReferenceException: Object reference not set to an instance of an objectGameManager+<CoInitialize>d__12.MoveNext () (at Assets/@Scripts/Manager/GameManager.cs:46)UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <28bc61a429714536ab08181feb5cfb97>:0)UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&) public IEnumerator CoInitialize() { yield return new WaitForEndOfFrame(); Player = FindAnyObjectByType<PlayerController>(); Restaurant = FindAnyObjectByType<Restaurant>(); int index = Restaurant.StageNum; Restaurant.SetInfo(SaveData.Restaurants[index]); //26번째 줄 StartCoroutine(CoSaveData()); }널 체크를 해봤는데도 Player와 Restaurant 모두 널이 아닙니다.그래서 Restaurant의 SetInfo() 함수 부분을 봤더니 Restaurant의Restaurant Systems와 Props들이 전부 비어있습니다.근데 코드 상으로 널 체크해서 디버그를 출력하도록 해도 디버그가 찍히지 않습니다. 필요한 Props들 전부 UnlockableBase를 상속하였고 RestaurantSystemes도 SystemBase 상속하고 자식 오브젝트에 위치하고 있고 코드도 전부 동일합니다. SetInfo 함수의 호출 순서의 문제 일까요? 어디의 문제인지 어딜 수정해야하는지 모르겠습니다 ㅠㅠ
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
혹시 섹션별 스크립트 소스 있으신지요?
안녕하세요? 선생님구매해놓고 인제서야 틈틈히 보고있습니다.다름이 아니고 소스분석을 하면서 강좌를 보고싶은데 (완성형 소스는 질문 게시판 답변에 링크를 통해서 받았습니다.) 완성형 소스로는 섹션별 영상을 보면서 분석하기 어렵겠더라고요. 유데미를 보면 섹션별로 소스가 제공되는경우가 있는데있으시다면 공유 해주실수있으실까요?(일일이 타이핑하면서 따라가는것보다 영상에 맞는 소스를 같이 보면서 진행해야 직관적으로이해하기가 수월하고 편하더라고요.) 만약 없다면 제공할 계획은 있으신지 궁금합니다. 수고하세요!
-
해결됨새싹부터 시작하는 Unity 게임 개발
Dictionary 관련 메소드 사용 질문 드립니다.
에러가 발생하는 경우 public Dictionary<string, int> c = new Dictionary<string, int>(); c.Add("A", 5); 에러가 발생하지 않는 경우 public Dictionary<string, int> c = new Dictionary<string, int>(); private void Start() { c.Add("A", 5); }왜 Start() 메서드 안에 있으면 에러가 발생하지 않고 dictionary 선언 후 바로 Add를 하면 에러가 발생하는지 궁금합니다.
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
스킬 관련 질문입니다
불덩이를 날리고 불덩이에 맞으면 데미지를 주고 화상이 1스택 쌓는 스킬이 있는데만약 다른 스킬을 획득하면 불덩이 스킬로 맞추어 데미지를 주었을 때폭발이 일어나 불덩이와 다른 데미지를 추가로 주고 화상을 2스택 쌓는 스킬을 붙이고 싶은데스킬에 스킬로 스킬에 달린 카테고리별로 이펙트를 추가하는 구현해 내었는데스킬에 스킬로 스킬을 추가하는 방법을 알고 싶습니다
-
해결됨새싹부터 시작하는 Unity 게임 개발
8:56초 b.Remove(3) 부분 설명에 대해 질문드립니다.
b.Remove(3); // b리스트의 세 번째 값을 제거안녕하세요! 위처럼 설명해주셨는데, 세 번째 값 제거는 세 번째 인덱스인덱스처럼 보여져값이 3인 것을 제거하는 것으로 설명해주시는 것이 좀 더 명확한 설명이지 않나 싶어서 글 남깁니다.직접 코드를 b.Remove(300);을 해보니 값이 300인 요소가 지워졌습니다.
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
Firebase 웹에서 값 변경 후
웹에서 값을 변경 후 ReadData를 하면 변경된 값이 반영이 안되고 0으로 나오는데 왜그럴까요?코드 변경없이 가끔가다가는 반영된 값이 나옵니다..
-
미해결유니티 Addressable 을 이용한 패치 시스템 구현
카탈로그 다운로드 주소를 런타임에서 변경할 수 있을까요?
여러가지 이슈를 대비해 런타임중 서버로 부터 카탈로그 다운로드 주소를 받아와해당주소에서 카탈로그를 다운로드해서 업데이트하고 에셋을 로드하는 방식을 사용하려고해요 런타임중 리모트 카탈로그 주소를 변경하는 방법이 있다면알려주시면 감사하겠습니다
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
Material 파일이 깨지는거 같아요
쉐이더 ui default로 하면 정상적으로 보이는데 기본으로 하면 분홍색으로만 나옵니다
-
미해결[유니티 실전 프로젝트] Burger Please 모작
10강 애니메이션 강의에서 enum EState부분 질문있습니다.
Define에서 enum EState를 정의하셨는데State앞에 E를 붙인 특별한 이유가 있나요?그리고 PlayerController에서 EState 변수 선언을 했는데 Define.Estate라고 안하고 바로 EState 라고 하셨는데 이게 어떻게 가능한건가요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
SendBuffer 클래스를 만드는 이유
매번 패킷을 보낼 때마다 byte 배열을 할당해서 그 참조를 Session의 Send 함수로 전달하면 굳이 SendBuffer로 값을 한번 더 복사하는 과정 없이도 동작할 것 같습니다.그런데도 SendBuffer라는 클래스를 만들어서 관리하는 이유는 잦은 배열 할당으로 인한 Memory Fragmentation를 최소화하기 위함인가요?
-
해결됨책 3권을 영상으로 만든 Unity 게임 개발
섹션5-11
유저데이터로드와 유저레지스터를 이렇게 수정했는데 상관없나요?수업에 나온 그대로 코드를 입력했는데 유닛 123도 같이 비활성화되서요ㅠㅠ일단은 123활성화 45비활성화는 되는데 코드가 너무 달라진 것 같아서 질문드립니다.using UnityEngine; using UnityEngine.UI; public class UserDataLoad : MonoBehaviour { [SerializeField] Text UserNickNameText; [SerializeField] Button[] CharBtns; int[] CharNum; void Start() { CharNum = new int[5]; // 유닛 데이터 불러오기 (Unit1~Unit3 기본값 1, Unit4~Unit5 기본값 0) for (int i = 0; i < 5; i++) { CharNum[i] = PlayerPrefs.GetInt("Unit" + (i + 1), (i < 3 ? 1 : 0)); // Unit1~Unit3 기본값 1, Unit4~Unit5 기본값 0 } // 버튼 활성화 상태 설정 UpdateButtonStates(); } void Update() { // 닉네임 업데이트 UserNickNameText.text = PlayerPrefs.GetString("UserNickName"); } void UpdateButtonStates() { for (int i = 0; i < 5; i++) { CharBtns[i].interactable = (CharNum[i] == 1); } } } using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class UserRegister : MonoBehaviour { [SerializeField] InputField NickNameInput; string NickName; public void OnClickRegister() { NickName = NickNameInput.text; // 사용자 정보 저장 PlayerPrefs.SetString("UserNickName", NickName); PlayerPrefs.SetInt("Coin", 1000); PlayerPrefs.SetInt("Level", 1); PlayerPrefs.SetInt("WinCount", 0); // 유닛 활성화 상태 저장 PlayerPrefs.SetInt("Unit1", 1); PlayerPrefs.SetInt("Unit2", 1); PlayerPrefs.SetInt("Unit3", 1); PlayerPrefs.SetInt("Unit4", 0); PlayerPrefs.SetInt("Unit5", 0); PlayerPrefs.Save(); // 다음 씬으로 이동 SceneManager.LoadScene("User Scene"); } }
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
Resources폴더의 로드에 대하여 궁금한 것이 있습니다.
아직 초반 강의 부분을 보고 있지만 일부 리소들에 대해서 리소스 폴더에서 로드하는 내용들이 제법 있는 것 같은데 제가 알기로는 리소스 폴더에서 로드하는 방식의 경우 빌드 시 전부 포함이 되기 때문에 무거워져 비선호한다로 알고 있습니다.현업에서 정말로 이렇게 쓰이는지가 궁금합니다. 추가적인 질문으로는 요즘 결합도 관련해서 경험이 많이 부족했어서 이것저것 고민을 하고 있는 상황입니다. 챗지피티를 통해 인스턴스를 통한 다른 클래스에서의 사용이 결합도를 높이는 좋지 않은 것으로 챗지피티에서 알려주고 있는데 싱글톤을 통한 인스턴스들을 또 사용이 제법 나오는데 이또한 현업에서도 허용범위인가요??
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
M2는 업데이트가 끝난건가요?
안녕하세요! M2 업데이트 끝날 때 몰아서 듣고 싶어서 기다리고 있는데공지사항과 일정 변동?을 보면 업데이트가 끝났다는 뉘앙스로 말씀하셨지만본 강의 커리큘럼을 보면 아직 챕터 이름?이 살아 있어서 업데이트가 끝난건지 업데이트 예정인지 궁금합니다!
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
절전모드 카메라 끄는 것
절전모드에서 성능을 더 좋게 하기 위해 카메라를 끄면 Bathes, Tris, Verts 등이 줄어들어 성능이 좋아지는데 그것말고 다른 방법들은 어떤게 있나요?
-
미해결절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part 1)
피격 오류
더미는 피격이 되는데요. 상대탱크는 그냥 캐논이 뚫고 지나갑니다.
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
Quest System의 확장성에 대한 질문
안녕하세요.Quest System을 보고 참고하면서 구현을 하다가 확장성과 유연성에 대한 궁금증이 생겨 의견을 물어보고 싶어서 질문드립니다. Quest의 경우 다양한 조건이 있을 수 있는데예를 들면, 제한 시간 안에 clear를 했는가, 특정 스킬을 사용하지 않았는가, 특정 아이템을 보유하고 있는 상태로 완료했는가 등등 이런 경우에 가능하면 관리하기 쉬우면서 의존성도 낮추는 방향으로 계속 고민해 보고 있는데 어떤 방식으로 구현하는 게 좋을까요??해봤을 때 Task 단위로 요구사항이 달라지니 Task에서 event를 연결하는게 직관적이긴한데 너무 하드코딩 방식인 것 같고(하드 코딩이 나쁘다는 것은 아니고 필요하면 해야 겠지만 좀 더 좋은 방법이 있을 것 같아서 일단은 스킵하고 찾아보고 있습니다), Event Hub 같은 기능을 만들어서 관리해보려고도 해봤는데 DynamicInvoke나 object를 쓰게 되서 프레임마다 update하는 경우도 생기는데 성능이 부담되는 것 같습니다..
-
미해결C#과 유니티, 실전 게임으로 제대로 시작하기 (저자 직강)
총알발사 Vector3
총알 발사를 위해 Vector3을 왜 쓰신걸까요? Vector2로도 구현 가능하지 않나요?