묻고 답해요
148만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
마지막 챕터를 클리어했을때 예외처리 질문입니다.
UserPlayData클래스에 MaxClearedChapter 변수가 있습니다.아래 2군데에서 예외처리가 고민입니다.로비에 표시하는 챕터정보ChapterClearUI의 earnReward의 조건 로비의 챕터정보를 표시하려면 MaxClearedChapter를 증가시키면 안될것같고, 그렇다고 그대로 두자니 클리어보상을 매번 받게되어서, MaxClearedChapter를 증가시켜야할것같고...고민입니다.
-
해결됨[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스
빈 공간 이동에서 에러발생
안녕하세요 빈 공간 이동에서 에러가 발생해서요. 영웅 소환을 할 경우 client쪽에서 아래쪽 가운데에 계속 소환이 됩니다.원인은 클라이언트가 시작 시 홀더가 생성될 때 모두 아래쪽 가운데에서 생성되고 있었습니다.강의를 세번이나 보고 확인했는데 틀린 곳을 찾지 못하겠어요. 깃헙 주소도 부탁드려요.
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
TextProMesh에서 그라디언트 활성화 방법
if (critical) Text.GetComponent<TMP_Text>().enableVertexGradient = true; 도 가능하던데 참고 부탁드리겠습니다.
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
오타 제보합니다
string glovesJson = PlayerPrefs.GetString("EquippedBootsData"); if (!string.IsNullOrEmpty(glovesJson)) { EquippedBootsData = JsonUtility.FromJson<UserItemData>(glovesJson); Logger.Log($"EquippedBootsData: SN:{EquippedBootsData.SerialNumber} ItemId:{EquippedBootsData.ItemId}"); }UserInventoryData.cs파일에서, 오타가 보여 제보합니다.Gloves를 가져와야할텐데, Boots를 가져오고 있습니다.
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
섹션4 유저 데이터 저장 보충된 강의 부분에서...
안녕하세요 이번에 unity 처음 배우고 있는 학생입니다. PlayerPrefs를 한번에 저장하는 것에서 각 Class에서 저장하는 것으로 바꾸었는데 PlayerPrefs가 내부적으로 값이 변경되었는지 여부를 확인하여 저장을 하나요??만약 내부적으로 확인하지 않고 계속 저장한다면 오히려 디스크에 무리가 갈 것 같아 질문을 드립니다!
-
해결됨[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스
몬스터 스폰 관련 질문
안녕하세요 강사님.강의 잘 보고 있습니다.지금 섹션 4. Multiplay의 몬스터 스폰 영상을 보고 있는데, Spawner 로직과 관련하여 궁금한 점이 있어 글을 남기게 되었습니다.영상 중에 강사님께서 “상대방의 몬스터는 위쪽에, 자신의 몬스터는 아래쪽에 나오는 것을 볼 수 있다.”라고 설명해주셨는데요,제가 직접 클라이언트 쪽 스폰 로직을 수정하여 테스트해본 결과, 호스트와 클라이언트 각각에서 상대방이 요청한 몬스터가 화면의 하단에 표시되는 것으로 확인되었습니다.물론 제가 아직 섹션 4. Multiplay의 몬스터 스폰 영상까지만 본 상태이므로, 이후 강사님께서 정정해주셨을 수도 있습니다. 다만 혹시라도 같은 부분에서 궁금증을 가지실 수강생들을 위해, 가능하시다면 이 내용을 한 번 확인해주시면 감사하겠습니다.제가 잘못 이해한 부분이 있다면 언제든 말씀 부탁드립니다.항상 좋은 강의 제공해주셔서 감사합니다.좋은 하루 되세요![Spawner에서 수정한 부분][클라이언트에서 본 각각의 몬스터]Client 0 즉, 호스트의 요청으로 스폰된 몬스터가 상대방인 클라이언트의 입장에서 아래쪽에 보이는 모습.Client 1 즉, 클라이언트 자신의 요청으로 인해 스폰된 몬스터가 상단에 위치한 모습 [호스트에서 본 각각의 몬스터]
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
MMORPG라면 서버가 어떤 기능들을 가져가야 할까요?
클라가 모든 걸 다하고 서버는 판정만 해야할지 아니면 이동(구르기 같은), 데미지, 차징, State관리, Effect 등도 서버가 처리해야 할지 궁금합니다
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
Layer1> "HIT_TEXT" 풀에 반환시
Parent of RectTransform is being set with parent property. Consider using the SetParent method instead, with the worldPositionStays argument set to false. This will retain local orientation and scale rather than world orientation and scale, which can prevent common UI scaling issues.UnityEngine.Transform:set_parent (UnityEngine.Transform)Object_Pool:Return (UnityEngine.GameObject,System.Action`1<UnityEngine.GameObject>) (at Assets/00_Scripts/Mng/Pool_Mng.cs:66)Base_Mng/<Return_Pool_Coroutine>d__8:MoveNext () (at Assets/00_Scripts/Mng/Base_Mng.cs:69)UnityEngine.SetupCoroutine:InvokeMoveNext (System.Collections.IEnumerator,intptr) public void Return(GameObject obj, Action<GameObject> action = null) { pool.Enqueue(obj); //풀안으로 새로운 오브젝트가 들어감. obj.transform.parent = parentTransform; //obj.transform.parent.SetParent(parentTransform, false); //이거는 오류가나타남 //obj.transform.parent.SetParent(parentTransform, true); //true이든 false이든.. 오류발생 obj.SetActive(false); if(action != null) { action?.Invoke(obj); } } transform의 parent 속성대신에 SetParent 를 쓰라고 경고메세지가 나타나는데요Parent of RectTransform is being set with parent property. Consider using the SetParent method instead, with the worldPositionStays argument set to false. This will retain local orientation and scale rather than world orientation and scale, which can prevent common UI scaling issues.근데 /obj.transform.parent.SetParent(parentTransform, false)이런식으로 사용했더니, HIT_TEXT가 풀로 반환되면서 부모인 Layer1도 같이 반환되어서 UnityException: Transform child out of bounds Base_Canvas.Holder_Layer (System.Int32 value) (at Assets/00_Scripts/Base_Canvas.cs:28) HIT_TEXT.Init (UnityEngine.Vector3 pos, System.Double dmg, System.Boolean Critical) (at Assets/00_Scripts/HIT_TEXT.cs:76) Monster+<>c__DisplayClass6_0.<GetDamage>b__0 (UnityEngine.GameObject value) (at Assets/00_Scripts/Monster.cs:113) Object_Pool.Get (System.Action1[T] action) (at Assets/00_Scripts/Mng/Pool_Mng.cs:58) Monster.GetDamage (System.Double dmg) (at Assets/00_Scripts/Monster.cs:111) Bullet.Update () (at Assets/00_Scripts/Bullet.cs:83)-------------------------------Layers의 자식이 Layer3밖에 남지않아서Base_Canvas 스크립트의 public Transform Holder_Layer(int value) { return LAYER.GetChild(value);함수 호출시에 에러가 나더라구요결국에는 그냥 transform.parent = parentTransform.로 사용하고있는데 SetParent를 사용하라고 계속 경고메세지가 뜹니다. ㅠㅠSetParent(parentTransform, ture) 이던, false이던 Canvas>Layer1>HitText, 에서 Pool로 반환될때 Layer1도 같이 반환됩니다.Layer0>"COIN_PARENT"도 마찬가지로 Layer0도 같이 반환됩니다.그냥 경고메세지를 띄울수밖에없는건가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
맵 이동 관련해서 질문드립니다.
맵이 여러개인경우 맵이 각자의 Scene을 가지도록 구현하고 케릭터를 스폰하는 방식을 사용하나요?아니면 scene과 케릭터를 그대로 두고 맵을 바꿔주는 방식을 사용하나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Unity6에 대하여
새해 복 많이 받으세요. 현재는 Unreal을 실제 업무에서 사용하고 있지만 개인 포폴? 취미?로 Unity 게임을 작게 만들어서 스팀에 올리기까지를 도전해보려고 하고 있습니다. 그래서 오랜만에 Unity를 켜보니 모르던 사이에 Unity 6가 나왔더라구요. 새로 다운 받아서 켜보니까 뭔가 바뀐듯 안바뀐듯 한데 추후 관련 강의 계획이 있으신가 궁금해서 질문 남겨봅니다.
-
해결됨[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스
영웅 랜덤 소환
안녕하세요 영웅 랜덤 소환에 대해서 궁금한 게 있어서 질문 드립니다사용하려는 히어로 에셋들이 다 프리팹으로 되어있고 스프라이트가 없어서 강의처럼 애니메이션을 갈아끼우는 방식이 적용되지 않습니다. 그래서 Hero_Database 스크립터블 오브젝트에 프리팹들을 저장하고 HeroSpawn함수 호출 시 database에 가져와서 생성하는 방식을 이용했습니다var data = Hero_Database.GetHero_Random();var go = Instantiate(data);이런 식으로 하면 사용하려는 모든 프리팹에 NetworkObject 컴포넌트를 달아야하는데 이 부분에 문제가 있을까요??..... 아니면 더 좋은 방법이 있을까요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Q 눌러 씬 변환할 때 UnityChan 오브젝트 말인데요.
로그인 씬에서 게임 씬으로 넘어갈 때 @Pool_Root가 가지고 있던 UnityChan 오브젝트들이 GameScene에 활성 상태로 존재하게 되는 부분이 되게 의아한데 질문이 없는 게 신기하군요.Q를 누르면 씬이 전환되면서 Managers.Clear();를 호출하니까, PoolManager.Clear()도 호출됩니다.public void Clear() { foreach (Transform child in _root.transform) { // child 밑에 child tree가 있어도 가장 상위 child를 해제하면 // 하위 child도 전부 해제된다 Object.Destroy(child.gameObject); } _pool.Clear(); } 위와 같이 DontDestroyOnLoad에 속한 오브젝트들을 전부 해제합니다. 참고로 풀링하는 UnityChan 객체들은 생성 이후에 바로 Managers.Resource.Destroy(go)를 호출해 PoolManager로 돌려보내는, 강의 마지막 부분을 따르고 있습니다.이렇게 DontDestroyOnLoad로 돌려 보낸(Pool_Root가 DontDestroyOnLoad에 있으므로) UnityChan 객체들을 게임 씬으로 전환하면서 Clear() 하면서 Object.Destroy()를 호출하는데, UnityChan 객체가 죽지 않고 살아나서 Game 씬에 올라가 있는 이유가 무엇인지 궁금합니다. 질문 취소합니다!!게임 씬에 UnityChan을 생성하는 부분이 있었네요!졸려서 정신이 없는가 봅니다. 자러 가겠습니다.
-
미해결유니티 2D RPG 게임 만들기
Session11의 3강의 질문
10:17 부터 저장하기 버튼이 작동되지 않는 현상이 일어납니다. 저장하기 버튼을 눌렀을 때 깜박이는 표시는 뜨나 강의에 있는 것처럼 저장하기 버튼 누른 후 해당 UI가 사라지지 않습니다. 그래서 해당 강의 처음부터 다시 보고 진행을 하는데도 오류가 해결되지 않습니다. 그렇다고 Console창에서 오류가 뜨는 것도 아니라 난감합니다. 인터넷에 있는 방법들은 전부 시도를 해봤음에도 안되서 질문을 남깁니다. 어떻게 해결해야되나요?10장_저장 및 불러오기_3 << 해당 강의에 대한 질문입니다.10장_저장 및 불러오기_3https://www.inflearn.com/courses/lecture?courseId=331732&unitId=177277&tab=community
-
해결됨[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스
게임출시 관련
안녕하세요. 저는 이 게임을 조금만 변형하여 출시해 보고 싶은데요. 만약 이 게임을 출시한다면 제가 바꿔야 하는 것들이 어떤 것일까요? 제가 생각해보자면 각종 캐릭터 및 이미지 자료정도로 생각이 되는데요. 게임에 스토리와 흐름을 조금만 변형해서 가져가도 되는 것인지 궁금합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
PoolManager에서 Clear() 질문입니다
@Pool_Root인 최상위 오브젝트의 자식들을 foreach로 해제하는 부분 말인데요. foreach (Transform child in _root.transform) { Object.Destroy(child.gameObject); }자식 안에 자식 트리가 생길 수 있는데 가장 최상위 자식만 해제해도 문제가 없는 건지 궁금합니다
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
공격할 때마다 일정 확률로 추가 투사체 발사
특정 아이템 효과로 기본 공격할 때마다 일정 확률로 추가 투사체를 발사하도록 하고 싶습니다.패시브 스킬을 만들어 아이템 장착/해제시 스킬을 등록/해제하도록 만들려고 하는데, 기능을 어떻게 만드는 것이 좋을지 고민이 됩니다. 제가 생각해 본 방법으로는, UseCondition에 IsRunningSkillCondition으로 특정 스킬을 사용하고 있는지 검사하고, IsPassRandomValueCondition으로 일정 확률을 통과했는지 검사한 후에 SpawnProjectileAction으로 투사체를 타겟에게 발사하도록 하면 될 것 같습니다.근데 이 방법으로 아마 동작은 될 것 같은데, 스킬의 UseCondition을 계속 체크해야해서 괜찮을지 의문이 생겼습니다. 마음같아선 OnDealDamage 이벤트에 일정 확률로 추가 투사체를 발사하는 메소드를 등록시키고 싶은데, 이를 스킬 시스템으로 어떻게 구현해야할지 잘 모르겠습니다. 어떤 방식으로 하는 것이 좋을 것 같은지 강사님의 생각이 궁금합니다. 추가로, 특정 아이템 장착시 기본 공격에 넉백이나 스턴 등 특정 이펙트를 추가하려면 어떻게 하는 것이 좋을지도 궁금합니다.
-
해결됨[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스
캐릭터 판매 38분 질문
CheckGetPosition과 같은 경우에는 ServerRpc에서 해도 되는 부분 같은데요. 이것은 ServerRpc에서 할지 clientRpc에서 할 지 당사자가 결정하면 되는 부분일까요?
-
해결됨[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스
강사님. 감사합니다.
혹시나 3D방치형 게임은 혹시 할인 프로모션이 계획돼 있을까요? 항상 결제하면 할인이 되는 경우가 많았어서요.
-
해결됨[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
Data관리 관련해서 질문드립니다.
혹시 Data를 json으로 직접 입력해줘서 관리하시는 이유가 따로있을까요?ScriptableObject를 활용해서 관리하는 것은 별로 좋은 방법이 아닐까요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
안녕하세요 도저히 알 수 없는 오류가 나와서 질문드려요,,
강의를 들으면서 응용하면서 저만의 프로젝트를 만들고 있습니다. 우선 저는 3d게임에서 이동 동기화를 진행중입니다.패킷은 이렇게 만들었습니다.보내는부분 MoveDir을 세팅하는부분에서 이런 오류가 나와요.. ㅜㅜ브레이크포인트를 찍고 호출스택을봐도 엉뚱한데서 크래시가 나고 있어서 어떤문제인지 도저히 감이 안잡힙니다. 구글에 검색해도 정보가 없고, GPT도 정확한 답변이 없어요... 혹시 제가 뭔가 놓친게 있는걸까요..?