묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
Addressable 에러납니다...
Addressable설치 하고 에디터 Play하면 위와 같은 에러가 발생합니다... 버전 업/다운을 해봐도 마찬가지네요... 찾아보니 대략 이런 내용인거 같은데 해결을 못하겠네요 https://forum.unity.com/threads/addressablesgroupwindow-missing-styles-in-2022-3-1.1445899/
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
유니티 가격 정책에 대해 어떻게 생각하시나요?
대학생이고 제 주변에 해당 업종에 종사하시는 분이 안계셔서 마땅히 여쭤볼 곳이 없어 올려봅니다.현업 종사자셨던 루키스님께서는이번 유니티 가격 정책에 어떻게 생각하시는지 여쭤봐도 될까요?실제로 이번 정책으로 인해 유니티에서 엔진을 변경하는 개발사가 많을까요?프로젝트를 진행하는 중 엔진을 변경하는 경우가 많나요?위 주제들에서 벗어나기는 하는데, DirectX와 OpenGL 둘 중 하나를 공부한다면 어떤 걸 추천하시나요? 이유도 알려주시면 감사하겠습니다.(DirectX는 윈도우 환경에서 잘 돌아가지만, OpenGL이 각종 운영체제에 호환이 잘 되는 것으로 알고있습니다.게임 프로그래밍에 관해 찾아보다보면 DirectX를 공부하는 것이 중요하다고들 하시며, 국내 게임 업계 채용사이트를 참고하더라도 DirectX 지식이 있는 개발자를 우대하는데, OpenGL에 관한 우대사항이 없는 이유가 궁금합니다.)만약 4번에서 DirectX를 추천하신다면, DirectX9부터 11, 12 순으로 공부하는 것이 좋을까요? 아니면 12로 바로 들어가도 괜찮나요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
게임 서버의 구조? 및 공부법에 대한 질문입니다.
안녕하세요! 루키스님 강의를 통해 서버를 공부하고 있는 한 대학생입니다.현재 학교에서 게임 서버와 관련된 전공이 따로 있지 않아 혼자 공부하며 졸업작품을 사전에 준비하려고 하는데요.게임에 사용되는 서버가 단순히 클라이언트를 연결해주는 서버 뿐만 아니라, 채팅 서버, 동기화 서버, NPC서버 등등.. 기능에 따라 분할하여 관리하는 경우가 많다고 들었습니다. (실제로 현업에서는 어떻게 관리되는지 모르겠지만 구글에서 찾아본 바로는 이렇게 알고 있습니다.)현재 MMORPG 게임 서버를 만드는 데에 있어서 어떠한 요구사항들이 필요한지 구조를 설계해보고 있는데,사실 현재 질문을 작성한 섹션까지의 강의를 보고 따라하면서도 코드가 잘 와닿지 않습니다.우선 제 생각은 처음부터 끝까지 우선 정독하며 코드를 따라 작성하며 다시 정주행하며 작성했던 코드들 하나하나 뜯어보고자 했는데, 현재 이해되지 않는 부분들을 이해하고 넘어가는게 좋을까요?또한 제가 처음부터 이쪽으로 공부했던 것이 아니라, 전과를 하여 전공지식에 있어서 부족한 점들이 있습니다. 특히 데이터 베이스나 웹에 대한 지식이 아직 없는데, 데이터 베이스를 공부한 뒤 서버를 공부하는 것이 좋을까요?해당 강의에서 알려주시는 서버에 관한 내용들은 위에서 제가 언급한 분할 서버들(채팅, 동기화 등)에서도 모두 활용이 되는 내용들일까요?아니면 전혀 무관하여 부가적인 공부가 필요할까요?클라이언트는 기존에 작게 프로젝트를 해본 경험이 있어 어느정도 익숙해졌다고 생각해 서버를 공부하기 시작한건데요.서버 프로그래밍이 매우 어렵다는 것을 알고 나름 강의를 수강하기 전 이론에 관해서도 어느정도 확립한 뒤 듣고있는데도.... 코드를 봐도 전체적인 흐름조차 잘 파악이 되지 않네요... 정상일까요?아니면 기본기가 부족하여 이해를 못하고 있는 것일까요?목표는 클라이언트 프로그래머이지만, 서버를 알고 클라이언트를 개발하는 것과 모르고 개발하는 것에 큰 차이가 있을 것이라고 생각해 작게라도 MMORPG를 한번 만들어보고자 하고 있는데, 어려운만큼 노력하면 되는건데도 시작점이 같지 않다는 핑계가 머리를 떠나지를 못하네요..아직 부족한 전공지식도 많은데 이런 내용들을 공부해도 괜찮은 걸까요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
소켓 SendAsync 예외 발생시 대처방법에 대한 질문입니다
안녕하세요 선생님! 강의 잘 듣고 있습니다유니티 연동하면서 간혹 클라에서 서버로 보내는 과정에서 세션 클래스의 SendAsync 부분이 예외를 발생시켜 pendinglist 를 비워주는 clear 함수를 호출 하지 못해if (_pendingList.Count == 0) RegisterSend();영원히 send가 막히는 경우를 발견했습니다 try { bool pending = _socket.SendAsync(_sendArgs); if (pending == false) OnSendCompleted(null, _sendArgs); } catch (Exception e) { RegisterSend(); // 수정한 부분 Console.WriteLine($"RegisterSend Failed {e}"); } 이렇게 RegisterSend(); 를 다시 호출해서 SendAsync 가 될때까지 시도를 하는 방식으로 고쳤더니 send가 막히는 현상을 없애기는 했습니다만제가 생각하는 이 대처방법의 문제는 sendAsync가 계속 예외를 발생시키면 무한루프를 만들어서 이게 맞는 대처방법인지 의문이 듭니다...
-
미해결C#과 유니티, 실전 게임으로 제대로 시작하기 (저자 직강)
유니티 vscode 연결
유니티에서 external code editor 선택하는 창에서 vscode가 뜨지 않았습니다. 그래서 browse를 통해 선택해주었는데요. 그리고 스크립트를 실행해보니 External Code Editor application path does not exist 라는 문구와 함께 에러가 발생하고 monobehavior도 초록색으로 바뀌지 않으며 정상적으로 연결이 되지 않는 것 같습니다. 이걸로 몇 시간동안 끙끙댔는데 진전이 없네요;; 도움이 필요합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Quaternion.Slerp 적용하면 유니티 짱이 20~30도 쓰러져요.
화면 클릭해서 이동시 transform.LookAt(_destPos); 위 코드 대신부드럽게 회전하기 -- 아래 코드로 하면 마지막 멈출때 유니티 짱이 쓰러짐. ㅜㅜtransform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(dir), 5 * Time.deltaTime); //t는 회전 속도 trasform.LookAt(_destPos)일때는 쓰러지지 않습니다.
-
해결됨두고두고 써먹는 유니티 VR
Unity 버젼 질문드립니다
강사님 안녕하세요Unity 2021.3.4f1 LTS 버젼을 사용하는데프로젝트 생성 시 템플릿 종류가 2D, 3D, 2D URP 3가지만 있고강의에서 선택한 3D URP는 없는데다른 버젼을 설치해보면 템플릿들이 또 달라서..3D URP를 사용하려면 어떻게 해야되는지 확인 부탁드립니다~
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
3d 이동 및 회전 구현하다가 질문이 생겼습니다(에러질문X)
(위에 사진은 3d 방향 및 이동 동기화를 성공해서, 뿌듯해서 같이 올려요 ㅎ..ㅎ) 멀티환경에서 3D이동 및 회전을 동기화를 구현할 때, 이전 위치와 현재 위치의 Vector3.magnitude의 차이가 0.1이 나면 이동패킷을 보내줄수있도록 설계를 해서 구현을 했습니다.혹시 0.1f 차이마다 패킷을 계속 보내는 것도 패킷을 너무 많이 보내는 편인가요? (유저 수는 10명정도가 같은 room에 있도록 만들예정입니다)항상 감사합니다! 강의를 들으면서 조금씩 바꿔보는데 정말 뿌듯하네요 하하하하하 강의가 너무 유익해요^^
-
미해결따라하면서 배우는 고박사의 유니티 기초
강의자료 다운로드가 가능할까요?
강의 너무 잘 듣고 있습니다. 리마인드 학습에 활용하려고 하는데 강의 자료는 받을 수 없는건가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
널레퍼런스 오류
온드래그 핸들러 부분에서 널 레퍼런스 오류가 뜹니다 44번 줄에서 에러가 난다고 뜨는데 이 부분을 모르겠습니다.
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
Category 스크립트 작성할때 Equals에 대해 궁금한게 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. public override bool Equals(object other) => base.Equals(other);이 부분이 왜 추가가 되는건지 궁금합니다. 어짜피 Category 파라미터가 아닌 object형 파라미터는 재정의 안하면 자동으로 base의 Equals를 호출하는게 아닌가요? 이 부분이 헷갈려서... 질문드립니다
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
쓰레드 생성 부분
저희 강의에서 멀티쓰레드를 사용하는 걸로 알고 있는데 쓰레드를 생성하는 부분이 정확히 어디 부분인가요..?해당 부분에서 Connect 될 때 필요하다면 count의 개수만큼 쓰레드를 생성하는 걸까요..?혹시 아니라면 어디 부분일까요... 도저히 못 찾겠어서 질문드립니다..!
-
미해결레트로의 유니티 C# 게임 프로그래밍 에센스
text가 아닌 TextMeshPro를 사용해도 괜찮나요?
2021.3.20f1 버전 사용중입니다.기존 Text가 UI의 Legacy 폴더 안에 있고 원래 Text가 있던 자리에 TextMeshPro가 있네요.인터넷을 좀 찾아봐도 TextMeshPro를 권장하는 사람들이 많더라구요시간이 지나면서 새로운 버전이 나온것 같던데 사용법이 비슷하면 TextMeshPro를 사용하는게 더 좋겠죠?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
펙토리 함수가 꼭 필요한건가요? 그냥 세션으로 받으면 안되요?
public void Connect(IPEndPoint endPoint, Session session) // 사용하는 부분//connector.Connect(serverEndPoint, () => { return new GameSession(); }); GameSession gameSession = new GameSession(); connector.Connect(serverEndPoint, gameSession);Func 형 말고 그냥 Session을 참조로 받아서 하면 안되나요? 코드가 돌긴 하던데..
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
서버엔진 수요에 관해서 질문드립니다.
대학 게임학과에 재학 중인 학생입니다.교수님과 게임서버프로그래밍에 대해 상담을 나누는 도중교수님께서 MMORPG를 포함한 대부분의 프로젝트에서 서버를 직접 만드는 경우는 거의 없고언리얼 데디케이트, 포톤, 프라우드넷 같은 이미 만들어진 모델이나 서버엔진을사용한다고 말씀하셨는데 정말인가요?보통 반대로 대부분의 프로젝트가 게임에 맞춰 서버엔진을 제작하는 줄 알았는데제가 알던 상식과는 너무 달라서 질문드립니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
이동 동기화 중에서 딜레이후 동기화 처리
실무에 가깝게 적용할만한 캐릭터간 이동 동기화 중에서 딜레이후 동기화 처리에 대한 참고할만한 이론이나 문서 같은것이 있을까요? 게임 장르는 존 방식이고 한 방에 최대 100명 이하? 정도 될것 같은데요환경은 모바일이고요 약.. 서버에서 1초에 4~8번 정도(정확히 아직 1초에 몇번 보내는지는 모릅니다)의 이동관련 패킷을 TCP나 UDP로 보낸다고 가정할 경우 일정 시간 이동 관련 위치 값을 수집해서 보간 처리 해볼까 하는데 언리얼 데디케이트 서버에서 어떻게 해야 할지 좀 막막한것 같은데 관련된 문서나 방식등이 있을까요?루키스님 강의 중 C++ 쪽 서버강의에서 이미 강의는 어느정도 듣긴했지만 이동 관련된것이 없는것 같아서 질문 남깁니다답변좀 부탁드리겠습니다!
-
미해결유니티 머신러닝 에이전트 완전정복 (기초편)
카트레이싱 환경관련 문의
안녕하세요, 수업은 다 듣고 실습부분만 조금씩 다시 따라가고 있는데요,카트레이싱에서 환경 구축을 다 하고, KartAgent 코드도 깃허브에 있는거 그대로 C# 코드 옮기고, AcadeKart 코드도 수정을 다 했는데, 이상하게 카트가 1번 웨이포인트 지나고 리셋이 됩니다. 파이토치와 유니티 책에는 OnEpisode 함수에 for문이 있는데, 넣고 빼고는 상관이 없더라구요, 웨이포인트를 이어가지 못하거나 중간에 충돌이라고 판단하거나 기타 리셋 조건이 문제인것 같은데, 어딜 봐야 할지 조언을 주실 수 있으신가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
NullReferenceException 오류 입니다 ㅠㅠ..
void Start() { Bind<Button>(typeof(Buttons)); Bind<TextMeshProUGUI>(typeof(Texts)); Get<TextMeshProUGUI>((int)Texts.ScoreText).text = "Bind Test"; } void Bind<T>(Type type) where T : UnityEngine.Object //reflection 사용 { string[]names = Enum.GetNames(type); UnityEngine.Object[] objects = new UnityEngine.Object[names.Length]; _objects.Add(typeof(T), objects); for (int i = 0; i<names.Length;i++) { objects[i] = Util.FindChild<T>(gameObject, names[i], true); } } T Get<T>(int idx) where T : UnityEngine.Object { UnityEngine.Object[] objects = null; if (_objects.TryGetValue(typeof(T), out objects)==false) return null; return objects[idx] as T; }기존에 Text를 TextMeshProUGUI로 바꾸고 using TMPro;도 추가했는데도 계속해서 해당 오류가 발생하네요...도저히 원인을 못찾겠습니다 ㅠㅠ
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
바이트 오더 정렬 안 해도 상관없나요?
패킷 코드를 봐도 딱히 호스트,네트워크 간의 바이트 정렬은 하지 않던데내부에서 간단히 테스트할 꺼라 처리를 하지 않으신 건가요? 아니면 다른 방법으로 하셨는데 제가 못 찾는 걸까요
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
JobQueue 사용에 대한 질문
우선 저는 단순히 Lock 만 사용하면 무수한 경합으로 인해 성능적으로 손해를 볼 수 있어 Job Queue 를 사용하는 것으로 이해를 했습니다.그래서 이것저것 연습하면서 Job Queue 를 계속 사용하고 있는데 도중에 몇몇 의문이 생기어 질문을 드리게 되었습니다. Job Queue 를 사용하다보면 Job Queue 내에 또 다른 Job Queue 를 사용해야하는 상황이 발생하는데 이 부분은 문제가 되지 않을까요?아래는 예시 코드입니다.public void Function() { MatchingManager.Instance.Push(() => { ... User.Party.Push(() => { ... }); }); } Lock 처럼 사용하면 된다 라는 생각은 옳은 것인가요? 아니면 Lock 과는 달리 Job Queue 사용 시 주의 할 부분이 있을까요? 항상 양질의 강의를 제공해주셔서 감사드립니다.