묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스
몬스터 스폰 관련 질문
안녕하세요 강사님.강의 잘 보고 있습니다.지금 섹션 4. Multiplay의 몬스터 스폰 영상을 보고 있는데, Spawner 로직과 관련하여 궁금한 점이 있어 글을 남기게 되었습니다.영상 중에 강사님께서 “상대방의 몬스터는 위쪽에, 자신의 몬스터는 아래쪽에 나오는 것을 볼 수 있다.”라고 설명해주셨는데요,제가 직접 클라이언트 쪽 스폰 로직을 수정하여 테스트해본 결과, 호스트와 클라이언트 각각에서 상대방이 요청한 몬스터가 화면의 하단에 표시되는 것으로 확인되었습니다.물론 제가 아직 섹션 4. Multiplay의 몬스터 스폰 영상까지만 본 상태이므로, 이후 강사님께서 정정해주셨을 수도 있습니다. 다만 혹시라도 같은 부분에서 궁금증을 가지실 수강생들을 위해, 가능하시다면 이 내용을 한 번 확인해주시면 감사하겠습니다.제가 잘못 이해한 부분이 있다면 언제든 말씀 부탁드립니다.항상 좋은 강의 제공해주셔서 감사합니다.좋은 하루 되세요![Spawner에서 수정한 부분][클라이언트에서 본 각각의 몬스터]Client 0 즉, 호스트의 요청으로 스폰된 몬스터가 상대방인 클라이언트의 입장에서 아래쪽에 보이는 모습.Client 1 즉, 클라이언트 자신의 요청으로 인해 스폰된 몬스터가 상단에 위치한 모습 [호스트에서 본 각각의 몬스터]
-
해결됨[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# 기초 강의
C#과 .NET 관련 질문
그냥 C#이랑 C#.NET은 다른건가요?
-
미해결[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을 생성하는 부분이 있었네요!졸려서 정신이 없는가 봅니다. 자러 가겠습니다.
-
해결됨[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스
게임출시 관련
안녕하세요. 저는 이 게임을 조금만 변형하여 출시해 보고 싶은데요. 만약 이 게임을 출시한다면 제가 바꿔야 하는 것들이 어떤 것일까요? 제가 생각해보자면 각종 캐릭터 및 이미지 자료정도로 생각이 되는데요. 게임에 스토리와 흐름을 조금만 변형해서 가져가도 되는 것인지 궁금합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
PoolManager에서 Clear() 질문입니다
@Pool_Root인 최상위 오브젝트의 자식들을 foreach로 해제하는 부분 말인데요. foreach (Transform child in _root.transform) { Object.Destroy(child.gameObject); }자식 안에 자식 트리가 생길 수 있는데 가장 최상위 자식만 해제해도 문제가 없는 건지 궁금합니다
-
해결됨[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스
캐릭터 판매 38분 질문
CheckGetPosition과 같은 경우에는 ServerRpc에서 해도 되는 부분 같은데요. 이것은 ServerRpc에서 할지 clientRpc에서 할 지 당사자가 결정하면 되는 부분일까요?
-
해결됨[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스
강사님. 감사합니다.
혹시나 3D방치형 게임은 혹시 할인 프로모션이 계획돼 있을까요? 항상 결제하면 할인이 되는 경우가 많았어서요.
-
해결됨[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
Data관리 관련해서 질문드립니다.
혹시 Data를 json으로 직접 입력해줘서 관리하시는 이유가 따로있을까요?ScriptableObject를 활용해서 관리하는 것은 별로 좋은 방법이 아닐까요??
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
DTO 여러개 대신 하나로
과정에서 보면 CreateUserDTOGetAllUserResponseDTOGetUserDTOGetUserRsponseDTO이렇게 생성을 했는데 그냥 UserDTO 하나만 생성해서 사용하면 안되는 건가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
안녕하세요 도저히 알 수 없는 오류가 나와서 질문드려요,,
강의를 들으면서 응용하면서 저만의 프로젝트를 만들고 있습니다. 우선 저는 3d게임에서 이동 동기화를 진행중입니다.패킷은 이렇게 만들었습니다.보내는부분 MoveDir을 세팅하는부분에서 이런 오류가 나와요.. ㅜㅜ브레이크포인트를 찍고 호출스택을봐도 엉뚱한데서 크래시가 나고 있어서 어떤문제인지 도저히 감이 안잡힙니다. 구글에 검색해도 정보가 없고, GPT도 정확한 답변이 없어요... 혹시 제가 뭔가 놓친게 있는걸까요..?
-
미해결레트로의 유니티 C# 게임 프로그래밍 에센스
레이캐스트 에셋 임포트하는방법을 모르겠어요.
이렇게 파일이 들어오는데 임포트 패키지 해도 안나오고 allfiles 로 해서 하나하나 임포트해야하나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
깃허브 관련 질문 있습니다.
해당 테스트 코드나, 이후 수업에서 제가 직접 작성하게 되는 코드를 깃허브에 업로드 해도 괜찮을까요?
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
오브젝트 풀링 파트에서 겟과 리턴을 만들때
안녕하세요 강의 너무 잘 보고 있는 지망생입니다 . 한가지 궁금한게 생겨서 여쭤봅니다 . 겟과 리턴을 만들 때 액션의 널 체크를 하잖아요 . 이 부분을 if로 널 체크를 한번 하고 ? 로 널 체크를 한번 더 하는데 이렇게 두번 해야하는 이유가 있을까 조심히 여쭤봅니다.
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
유저 인벤토리 Pt.3.
InventroyUI의 Scroll View하단의 Content에 아이템 슬롯들이 인스턴스화가 안 되네ㅔ요화인해야할 게 있을까요?
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
유저 재화 관리 및 커스텀 메뉴 강의 질문입니다.
별거 아닌 질문을 궁금해서 남겨봅니다.뒤로가기(ESC/BACK) 처리 강의에서작성한 코드인LobbyUIController > private void HandleInput() 함수가유저 재화 관리 및 커스템 메뉴 강의 12분 경에는 왜 없어졌는지 궁금하네요..
-
해결됨ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
CS0618 SqlConnection
11강 따라하다가 상단에 using System.Data.SqlClient; 설치도 잘 돼서 선언도 됐는데using (SqlConnection sqlConnection = new SqlConnection(connectionString)) 이부분에 경고 CS0618 'SqlConnection'은(는) 사용되지 않습니다. 'Use the Microsoft.Data.SqlClient package instead.' 이런 경고가 나옵니다.이것을 어떻게 수정해야 하나요?