묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
Session Send 멀티스레드 관련
안녕하세요 Session쪽 Send 만들어 보고 있습니다.구현하면서 궁금한게 Send에서 lock을 잡고 RegisterSend쪽에서는 lock을 잡지 않는 상황인데RegisterSend에서 하나의 스레드가 들어와서 while문을 돌면서 sendQueue를 Dequeue하고 있는데 이 과정에서 다른 스레드가 Send에서 sendQueue Enqueue를 할 수 있지 않나 생각이 듭니다. 그래서 RegisterSend에서 적어도 while문에는 lock을 걸어줘야 공유자원 _sendQueue에 대해서 안전하게 처리 될 수 있지 않나라고 생각 하는데 만약 안전하다면 왜 안전한지에 대해서 듣고 싶습니다.감사합니다!
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
강의 영상 화질과 관련해서 문의 드립니다.
안녕하세요.강의 영상 화질과 관련해서 문의 드립니다.강의 영상 중에섹션2 클라이언트 시스템 구현근접 공격영상부터 FHD에서도 강의 영상이 조금 흐리게 보이는 현상이 있습니다.(Render Texture 강의는 괜찮습니다!)근접 공격 이전 강의인 방치형 레벨업 버튼 강의와 바로 비교가 됩니다.확인 부탁 드립니다.감사합니다!
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
ui 아이콘과 엑셀 데이터 가 누락된거같습니다
안녕하세요, 강의 내용에 대해 몇 가지 여쭤보고 싶은 점이 있습니다.먼저, 강의 자료 중 하트 아이콘과 플러스 아이콘 , 엑셀데이터 등 몇 개가 보이지 않는 것 같아요. 혹시 제가 놓친 부분이 있는지, 아니면 자료를 다시 한번 확인해 주실 수 있을까요?그리고 강의 중 유튜브 영상이 재생되어 오디오가 중복되는 경우가 있었어요. 집중해서 들을 수 있도록 이 부분을 조정해 주시면 정말 감사하겠습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
리플렉션을 써야하는 이ㅠ
리플렉션을 써야하는 이유를 잘 모르겠습니다.리플렉션은 가능하면 지양하는게 좋다고 알고 있습니다. 런타임일반화하는 특성상 성능이 떨어질 수 밖에 없다고 알고 있습니다.그래서 아래과 같이 작성해 보았는데, 이건 어떠신가요?가독성 때문에 이렇게 작성하신것 같다는 생각도 들긴하는데 아직 충분히 의문이 해소되질 않네요
-
해결됨[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
SocketAsyncEventArgs Pooling
안녕하세요 강의 참고하면서 서버 만들어 보고 있는데 https://learn.microsoft.com/ko-kr/dotnet/api/system.net.sockets.socketasynceventargs?view=net-8.0#remarks해당 문서에서 pooling이 있더라구요 생각해보니 동접이 꽤 많다라고 가정하면(약 3000?) 이 SocketAsyncEventArgs 생성 소멸이 많이 일어난다고 생각했습니다.그래서 pooling을 한번 만들어보고 있는데 만드는 중에 Dispose를 언제 해줘야 할지 감이 잘 안옵니다.현재는 Client가 Disconnect될 때 Push하게 되는데 Push에서 poolCount가 3000이 넘으면 이걸 AllClear라는걸로 pool에 있는 SocketAsyncEventArgs를 다 Dispose해주는 상황인데 이렇게하면 3000이 넘기 전까지는 메모리에 계속 남아 있으니 먼가 찜찜합니다.이런 문제가 있는데 좋은 해결책이 있을까요?감사합니다!
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
패킷 형식 질문입니다.
WebPacket코드를 살펴보면Server의 WebPacket은 프로퍼티를 통해 변수를 작성하였고Client의 WebPacket은 일반 변수를 사용하였는데둘다 프로퍼티 또는 일반 변수로 통일하지 않은 이유를 알 수 있을까요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
JobQueue의 Push함수 관련 질문 있습니다.
안녕하세요. 강의 정말 잘 보고 있습니다. JobQueue의 Push 함수를 호출하는 스레드가 Action까지 처리하게 되는데, 이는 Push를 호출하는 시점부터 해당 Queue에 모든 Job이 비워질 때까지 Caller가 Blocked 됩니다. 이를 JobQueue의 Pop과 Action.Invoke를 담당하는 스레드를 하나 만들고, 백그라운드에서 폴링하는 방식으로 만들려 합니다. 즉, Push를 호출한 스레드를 사용할 지, 미리 스레드를 만들어두고 폴링하는 방식으로 사용할 지의 차이인 것 같습니다. 두 방식 중 어느 방식이 나을지 알고 싶습니다. 감사합니다.
-
미해결유니티 머신러닝 에이전트 완전정복 (기초편)
ML-Agents 살펴보기 11페이지 질문입니다.
inference Device 타입이 default, GPU, Burst, CPU 4가지로 말씀주셨습니다. 제가 공부하는 PC환경은 mac인데 default, computer shader, burst, pixel shader로 타입이 보입니다. 왜 차이가 나는지와각 타입의 의미를 알 수 있을까요?
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
오브젝트 풀링
안녕하세요 오늘부터 수강 시작했는데 좋은 강의 감사합니다 Spawner에서 var goObj =Base_Mng .Pool.Pooling_OBJ("Monster").Get((value) =>{value. ''''''''value.'''''''''value.''''''''});여기서 Get 다음에 value 가 헷갈립니다 ...일회성 함수 만들어서 실행하고 끝인지 ..정확하게 모르겠네요 액션 인데 저게 어떤 의미인지 대충은 알겠는데.. 이해가 안됩니다 ㅠ 다른부분은 자세하게 설명해주셨는데 이부분만 부탁드립니다
-
미해결[실전 게임 코드 리뷰] 유니티 클리커 게임
코드 분석하면서 강의 복습중인데 질문 있습니다!
안녕하세요.저만의 게임을 완성해본적이 한번도 없어서 이번에는 꼭 완성하고 출시까지 가고싶어서 강사님 코드를 분석중에 있습니다.문득 궁금한 점이 생겼는데요, 초심자 입장에서 코드를 다 짜고 나서 리팩토링을 하는 편이 나을지 아니면 처음부터 감안하고 강사님처럼 폴더랑 스크립트를 최대한 단일책임원칙에 입각해서 나누는게 좋을지 고민입니다.후자가 이상적이라고 생각은 드는데, 아직 초심자다보니 선뜻 손이 안가는 문제가 있습니다.- 혹시 강사님께서는 앤트 컴퍼니정도 규모의 게임을 만드실 때 코드를 애초부터 분할해서 작성하셨나요...?- 강사님이 초심자이실 때는 어떻게 하셨는지, 지금 현실적으로 어떻게 하기를 권장하실지도 궁금합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Rider vs Visual Studio
강의 로드맵 전체 수강중입니다.Visual Studio 로 진행하셨는데 Rider 구매하려고 해서, Rider로 진행해도 따라가는데 문제 없을까요?
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
인디게임출시경험이 중요할까요?
국비 교육과정을 마치고 OJT기간이 끝났는데 OJT를 진행한 회사에서 회사와 협업해서 팀을 이루어 인디게임을 출시해보겠냐는 제안을 받았습니다.신입이고 리소스는 회사에서 지원받는데 해보는게 좋을까요? 아님 개인 포트폴리오로 취업을 하는게 좋을까요?
-
미해결[실전 게임 코드 리뷰] 유니티 클리커 게임
이전에 프레임웍을 만들때라는 말씀
안녕하세요! UI Sprite 강좌에 보면 “이전에 만든 프레임웍”에 대한 언급을 하시는데... 무엇을 가리키시는건지 조금 불명확해서 확인 요청드리고자 합니다.이전 선수강좌를 말씀하시는건지 아니면 강의가 짤린건지 조금 헷갈립니다.
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
Statemachine 관련질문이 있습니다.
격투게임이나 몬스터헌터처럼 애니메이션의 특정 프레임 이후에 입력받아야 특정 애니메이션이 실행가능하게 하려하는데 이걸 어떻게 해야할까요?기존에는 애니메이션 이벤트를 이용해서 구현했었는데 어떻게 해야할까요?애니메이션 이벤트를 활용하려고 하니 오버로드된 함수들 때문에 이런 경고창이 뜨긴하는데 애니메이션 이벤트의 함수들은 오버로드된 함수들이 아니라 괜찮은가요?아니면 다른 좋은 방법이 있는지 알려주실수있을까요?
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
InGame 씬 배경 화면이 나오지 않아요
안녕하세요InGame 씬 진입 및 페이드 처리는 잘 진행되었는데,Fade처리 이후 배경 화면이 검게 나옵니다.혹시 강사님 화면처럼 푸른색 배경이 나오게 하려면 어떻게 해야 할까요?
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
어드레서블 Sprite 관련해서 질문이있습니다.
안녕하세요개인 프로젝트에 적용하는 과정에서 문제가 발생해서 질문드립니다. 제 스프라이트 중 하나가 SpriteMode가 Multiple로 설정되어 있어서, 해당 스프라이트를 리소스매니저 Get호출할 때 아래와 같은 오류가 발생하고 있습니다. System.Exception: Unable to load asset of type UnityEngine.Sprite from location Assets/03.Resources/Sprites/UI/Game_Main/ico_misc 1.png[ico_misc 1].UnityEngine.ResourceManagement.Util.DelayedActionManager:LateUpdate () (at ./Library/PackageCache/com.unity.addressables@1.21.21/Runtime/ResourceManager/Util/DelayedActionManager.cs:162) 이 오류를 어떻게 해결할 수 있을까요??
-
미해결게임 디자인 패턴 with Unity
텍스트로 무기 교체 예제 UML
텍스트로 무기 교체 예제 코드를 UML로 표현하면 다음과 같을까요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
서버 에 관해 질문이있습니다!
1 .클라이언트-서버 방식클라이언트가 입력을 보내면 중앙서버 에서 로직(충돌,이동) 이런걸 처리하고 게임상태를 업데이트하고 클라이언트한테 보내주는 방식이있고p2p 방식p2p 방식으로 모든 클라이언트가 동등한 지위에서 서로 통신하는 구조로 알고있는대 여기서 질문이있습니다유니티랑 연동한다고 가정하였을때클라이언트 -서버 방식을 이용하게 되면 유니티에 내장 기능 (컴포넌트)등을 이용해 동기화는 못하게 될꺼같은대 서버단에서 충돌 처리하는 로직을 만들어서 사용해야만 하는지?p2p 방식은 그나마 유니티 내장 기능을 자유롭게 사용할수 있을꺼 같고 p2p 방식을 이용한다면 서버를 따로 구동하는 게 아닌 클라이언트단에서 서버를 구동하는것인가요?
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
InventoryUI가 특정 상황에서 ESC로 나가지지 않는 현상
수강생들이 혹시나 동일한 경험할까봐 남겨둡니다.재현방법실행Lobby에서 InventoryUI 오픈InventoryUI에서 EquipmentUI 오픈ESC 입력하여 EquipmentUI 닫기 ESC 입력 재현결과InventoryUI 위에 게임을 종료하시겠습니까 ConfirmUI 오픈기대결과InventoryUI 닫기 재현버전(강의)진행 이후 수정되었을 수도 있어서 적어만 둡니다.아이템 장착 Pt.4사유이전에 GoodsUI를 추가 하면서 OpenUI() 중 여는 ui의 siblingIndex를 childCount - 1로 수정하였습니다.하지만 CloseUI() 할 때 그 다음 lastChild를 childCount -2로 조회하는 것으로 수정하지 않았습니다. 이 결과,해당 재현 상황에서 UIManager의 CloseUI() 중 lastChild로 InventoryUI가 들어와야 하는데 GoodsUI로 들어오게 됩니다. GoodsUI는 BaseUI를 상속하지 않으므로 GetComponent<BaseUI> 후 설정되는 m_FrontUI가 null이 됩니다. 이후 ESC를 누르면 m_FrontUI가 null이므로 InventoryUI가 있음에도 게임 종료 ConfirmUI가 노출됩니다. 간이 해결CloseUI시 frontUI에 GoodsUI가 아닌 그 다음 UI가 제대로 들어가게 하기.UIManager.cs CloseUI() 수정하기var lastChild = UICanvasTrs.GetChild(UICanvasTrs.childCount - 2);
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
스트링을 말아서 로그 쏘실 때 두가지 방식 차이
학습 관련 질문을 남겨주세요.먼저 유사한 질문이 있는지 검색 부탁 드립니다.질문 내용이 상세할수록 명확한 답변을 드릴 수 있습니다.진행에 문제가 있는건 아니구요.강사님께서 스트링을 말아서 로그 쏘실 때 두가지 방식으로 나뉘더라구요.Logger.Log($"SerialNumber: {item.SerialNumber} ItemId: {item.ItemId}"); Logger.Log("Load failed (" + e.Message + ")"); 강사님은 역할이 구분되어 있던데 어떤 차이를 두고 사용하시는지 단순 궁금합니다.메시지는 무조건 string이니까 그런건지.. 가독성 측면에서 이점이 있는건지.. 유지보수에서 도움이 되는건지..