묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
서버도 ObjectPool 사용해야하나요?
서버도 오브젝트 풀링 써야하는지 궁금합니다. 일단 생각대로라면 장르에 따라 수많은 Projectile이 생성되고 삭제될텐데 아무리사용하지 않는다 하더라도 가지고 있는것과 가지고 있지 않는 상태는 차이가 있잖아요? 그렇지만 또 할당하고 해제하는 단계는 더더욱이 비용이 많이들어가는것도 사실이 이니깐포톤네트워킹은 사용했던걸로 기억하는걸봐서 사용하는게 맞나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
17:13 부분 질문드립니다
i<5이기때문에 아무것도 출력되지 못하는게 맞는데 저는 헬로 스레드가 다섯번 나와버립니다..! 무슨 문제일까요?
-
해결됨따라하면서 배우는 고박사의 유니티 하이퍼캐주얼게임 시리즈 01
2D에서 navmesh를 사용하는 방법이 궁금합니다.
https://youtu.be/vxCMOPCYeM0?si=-u3zQapZH__F5LZu우선 본 강의와는 관계없는 질문인 점 양해 부탁드립니다.고박사 님께서 유튜브에 올리신 RTS 튜토리얼을 보고 2D로 제작하려고 했는데아무리 찾아봐도 2D에서는 유저들이 만든 사제 플러그인을 활용하는 방법밖에 찾지 못했습니다.2D에서 navmesh를 적용하고, 고박사님의 튜토리얼을 따라 조작까지 구현하는 방법을 알고싶습니다.고박사님께서 방법을 알고계신다면 꼭 배우고싶습니다.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
보스와 인공지능에서 질문있습니다.
안녕하세요.보스와 인공지능에서 보스의 캐릭터가 영상처럼 공격을 하고 다시 찾고 하지 않습니다.혹시 몰라서 보스와 인공지능의 프로젝트파일로 열어서 확인해보아도 동일한 현상이 발생하였습니다.그래도 혹시 몰라서 코드와 파일을 복사 붙어넣기해도 동일한 증상이 발생하였습혹시 짐작되는 부분이 있을까요? 추가 정보MonsterController 의 UpdateController가 작동이 안되는 것을 확인하였습니다.BossController 의 UpdateMoving도 작동안되는 것을 확인했습니다.Play 와 CrossFade 도 같은 증상입니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
같은 네트워크 안에서 다른 컴퓨터와 연결
안녕하세요. 강의 들으면서 이것저것 실험 중에 질문 드립니다.제 컴퓨터(서버)와 노트북(클라이언트)을 같은 와이파이에 연결해서 둘이 통신을 해보려고 하는데서버쪽클라이언트쪽 이렇게 ipconfig를 쳐서 서버컴퓨터의 무선 LAN 어댑터 Wi-Fi의 IPv4 주소를 넣어주었습니다.그런데 노트북에서는 감감 무소식이었습니다. 같은 와이파이에 연결되어 있는건 확인했습니다.너무 기초적인 문제 같아서 여쭤보기도 부끄럽지만 도저히 모르겠어서 질문드립니다!
-
미해결C#과 유니티, 실전 게임으로 제대로 시작하기 (저자 직강)
작동이 안되네요
1.12 플레이어 구현하기-플레이어 게임오브젝트 수강중인데요, 따라서 하고있는데 재생을 누르면 오류가 뜹니다.왜 이러는지 알려주세요... 스크립트)using UnityEngine; public class PlayerController : MonoBehaviour { void Start( ) { GameObject.setactive(false); 오류내용All compiler errors have to be fixed before you can enter playmode!UnityEditor.SceneView:ShowCompileErrorNotification () Assets\Scripts\Player\PlayerController.cs(7,16): error CS0117: 'GameObject' does not contain a definition for 'setactive'
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Clean함수의 else부분 질문 있습니다
_readPos = 0;_writePos = DataSize; 이렇게 하셨는데 순서가 반대 아닌가요??readPos가 2이고 writePos가 5였을 때 DataSize는 3그런데 readPos를 먼저 0으로 하면 DataSize는 5로 변해writePos는 3이 아닌 5로 초기화가 될것 같습니다else부분은 남은 데이터가 있는 경우 readPos만큼 Array의 처음 주소를 앞 당기는거니까 초기화된 writePos의 기대값으론 기존 writePos - readPos 아닌가요??readPos = 0;이 부분이 먼저 나온 이유가 궁급합니다!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Listener Init 함수를 여러번 호출 시킨 뒤 세션을 만들면 예기치 않은 동작을 할 수 있지 않나요??
Init 함수안에는 sessionFactory += sessionFactory;가 있는데Init을 여러번 호출 시키면 세션을 만드는 함수들이 _sessionFactory에 들어가서 Invoke 했을 때 여러개의 세션들이 만들어지는 예기치 않은 동작을 하지 않을까요??
-
미해결[실전 게임 코드 리뷰] 유니티 클리커 게임
버튼 조작을 해주는 스크립트 위치
강의 내용중에 UI_TitlePopup에서 GetButton으로 버튼 조작을 해주신다고 하셨는데 UI_Base에서 만든거를 상속상속 받아서 사용되는거라고 저는 그렇게 이해했는데 제가 이해한게 맞는건가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
RegisterRecv를 if 문에 넣는 이유
OnRecvCompleted함수에서 Listener와 다르게 Register 함수를 if문에 넣는 이유는 exception에 걸렸을 때를 생각해서 일부러 if문 안에 넣으신건가요??
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ReadLock 질문 드립니다!
ReadLock은 어떤 쓰레드도 write를 하고 있지 않을 때 ReadCount를 1 늘리는데 왜 while문 안에는 해당 조건문이 없는건가요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
강의 일자로부터 꽤 지난거로 보이는데 그대로 수강해도 좋을까요?
이미 결제도 했고 초반부분 듣고있긴 한데 2019년인가 업로드 한거로 보여서요 공부하는데는 지장없는걸까요?
-
미해결유니티 Addressable 을 이용한 패치 시스템 구현
Addressables.CheckForCatalogUpdates()에 대해서 질문있습니다.
Addressables.CheckForCatalogUpdates()의 결과가 0이라서 다운로드 받을 수는 0인데, Addressables.GetDownloadSizeAsync()의 결과는 제대로 에셋의 크기를 반환해줍니다.다운로드 이후에는 Addressables.CheckForCatalogUpdates()는 0, Addressables.GetDownloadSizeAsync()도 0이라서 다운로드는 된거 같은데, Addressables.CheckForCatalogUpdates()가 0으로 표시되는 이유가 뭔가요?윈도우10 유니티 에디터에서 플레이 모드로 했고, 영상을 보면서 로컬 빌드 건너뛰고, 리모트 빌드로 했습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
콘솔프로그램으로 만든 서버 배포질문
보통 이렇게 콘솔프로그램으로 만든 서버는 어떻게 배포를 해야하나요? bin/Debug의 exe로 서버컴퓨터에서 실행시키지는 않을 것 같은데.... 따로 Setup파일을 만들어서 서버에 배포를 하는 건가요? 따로 Setup파일을 만든다면 어떤 방식으로 하는지도 궁굼합니다.!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
두가지 질문이 있습니다.
●제가 서버의 대한 이해도가 완벽하지 않아, 제 의견이 들어가는 부분엔 문장 앞에 '●' 넣도록하겠습니다. 틀리다면 지적 부탁드리겠습니다. 어제 GroundObject[]를 사용해서 맵충돌은 결국 이동동기화 강의의 맵타일추출을 인용하여 진행하였습니다.내가 가려고하는 방향의 앞타일을 가져와 갈수 있는곳인지 없는 곳인지를 판단하여 캐릭터를 이동하였습니다. 서버에서 체크하여 BroadCast하였습니다.그 결과물입니다. https://youtu.be/tjzA_VzAKb0 ※Map 수정 ※room.HandleMove 수정 해당방법은 괜찮은 방법인지 여부와 영상에 보시면 패킷전송량이 어마어마 합니다. 실제로 Client에서 패킷 전송량을 보자면 누르고 있을 때마다 패킷을 전송하게 되겠죠.(Dir의 _update 의해서 ) ●"현직에 있을때 Photon 서버로 게임을 만든적이 있는데 클라는 최소한의 패킷 전송으로 최대한 많은 결과물을 받아야 한다고 생각하고 있습니다." 고작 내 포지션에서 스피드만큼 거리를 가려고 엄청나게 많은 패킷을 보내고 있습니다. ●또한 이 많은 전송량을 처리하려고 TickRoom을 16ms (60fps)로 설정 하였으니 서버에 좀더 과부화가 오지 않을까 생각합니다. 저렇게 실시간으로 움직여야 하는 방식에서 더 좋은 방법이 있는지 알고싶습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
receiveBuffer 부분 질문있습니다.
ReceiveBuffer 강의 듣는중 의문이 있어 문의드려요. TCP로 통신을할 경우 커널단에서 패킷 전체가 전송이 완료된후 OnReceive가 일어나는것으로 이해하고 있었는데해당강의 에서는 어플리케이션단에서 전체 패킷이 다 들어왔는지 확인 후 처리를 하는 로직이 들어가는거 같아 혼돈이 오는것 같습니다. 제가 이해한게 잘 못 되었을까요?TCP 단에서 전체 패킷이 다 도착한 후 OnReceive가 일어나는게 맞다면 어플리케이션단에서 다시 한번 확인 후 처리하는 이유가 있을까요? PacketSession에서 마지막에 client에서 데이터를 쓰기위해 sendBuffer에서 사용할 영역을 예약하는 open에 문의 사항이 있습니다.1) 강의대로 따라 하게되면 client에서 open(4096)을 하면 불필요하게 필요이상으로 버퍼를예약해서 실제 사용하지도 않지만 많이 예약하게되 _usedSize보다크게 되면서 계속해서 버퍼를 새로 만드는것으로 보이는데 실제 프로젝트에서는 필요한 사이즈만큼만 예약하게 되나요? 2) snedBuffer.Close() 에서 usedSize가 강의 에서는_usedSize = usedSize로 되어있는데 이러면 계속 같은 버퍼 공간에 덮어 씌어질거같은데_usedSize += usedSize로 되야 할거 같은데 이부분은 제가 잘못 이해 한건지 아니면 오타일까요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
횡스크롤 맵추출 질문입니다.
몇시간을 고민하다가.... 도저히 아이디어가 떠오르지않아 질문드립니다.횡스크롤 2D 포트폴리오 제작중입니다..강의 다르게 바람의 나라 형식의 이동이 아닌 메이플스토리와 같은 이동방식을 선택했습니다.맵은 타일맵으로 만들려고합니다. 여러가지 아이디어는 있는데 이게 긴가민가합니다. 생각해둔 아이디어는 타일맵의 오브젝트 좌표를 하나하나 따와서 Rect로 만들어 DirectX 방식으로 right.x, top.y ,left.x , buttony 좌표로 만들어 GroundObject[] 배열로 담아둡니다. ※ GroundObject1 의 좌표 (TileMap) 최초 캐릭터 생성시 Ground 라는 bool 값을 주어 이것을 True 생성하고 이동 패킷이 올때마다, GroundObject[] 모든 Object를 돌면서 하나라도 True되는곳이 있다면 Ground 의 bool 값은 편하지않고 서버에서 낙하처리를 하지 않는것입니다. 만약 모든 GroundObject[] 타일이 false 값이라면 캐릭터는 낙하하면서 GroundObject[]배열을 순차적으로 돌면서 True값이 있는지 찾는겁니다. 떨어지다가 GroundObject[]에 하나라도 다시 True 변환이 되는 되는 것이 있다면 Ground bool 값을 Ture 반환한후 캐릭터는 낙하를 멈추는 방식을 생각해 봤습니다. 하지만 Direct 나 API 같은경우야 ... Rect 충돌 함수가 있으니 편하다고 하지만은.... 이방법은 필요시 모든 GroundObject를 돌아야하는 시간복잡도 O(n) 최악이 나올수도 있다는 것입니다. ※확실하진 않지만 여러 사람이 동시에 진행했을때 서버 과부화가 걸리지 않을까 생각이 듭니다. 또 하나의 걱정은 저의 짧은 지식으로 저 타일맵 안에 있는 그라운드 오브젝트의 좌표를 유니티에서 추출할수 없다는것이죠. 서론이 길었는데 질문입니다. 가장 걱정인것은 해당방법을 채용 하더라도 서버에 과부화가 오지 않는가?2.정답이 아니더라도 다른 아이디어가 있는지? 입니다.
-
해결됨유니티 Addressable 을 이용한 패치 시스템 구현
앱을 빌드하지 않고 플레이 모드에서 테스트 할수 있나요?
개발이 진행되면서 게임 크기도 커질텐데, 매번 제대로 번들이 다운로드 되는지 확인하려면 앱을 빌드해야 하는 수고를 덜고 싶습니다. 플레이 모드에서 번들 다운로드 테스트는 어떻게 하나요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
메모리가 줄줄 새고 있습니다
안녕하세요 메모리 릭과 관련해서 질문 드립니다비주얼 스튜디오에서 프로그램 실행시키면 진단 도구 창이 뜨고 그 안에 현재 프로세스가 얼마나 메모리 잡아 먹는지 보여주는데 콘솔에 로그 찍으면 메모리 계속 잡아먹으니까 서버와 클라 모두 콘솔에 아무것도 로그를 찍지 않게 빈 상태로 두었는데도 약 30초마다 3~5MB 씩 오릅니다 그래서 강의 자료에 있는 모든 코드를 복붙해서 어떤 로그도 안찍게 살짝 수정 후 실행했더니 결과는 동일하게 조금씩 오르더라구요 이 상태에서 서버는 계속 작동시키고 클라를 끄니까 메모리 릭 현상이 멈추긴 했습니다만이 현상이 선생님 환경에서도 일어나는지 궁금하네요..기본 서버 강의라서 아직 최적화가 덜 돼서 그런건지요..?
-
미해결
유니티 한 씬에 여러 스테이지 표현
안녕하세요 유니티 독학을 한 후 제대로된 개발을 처음 해보는 사람입니다ㅠㅠ 다름이 아니라, 총 20스테이지에 각 스테이지마다 15개의 부가 스테이지를 만들고 싶은데요,, 스테이지마다 씬을 다르게 하려다보니 씬 갯수가 300개가 나올 것 같아서 질문 드립니다.각 스테이지마다 배경 이미지가 변경이 되어 한 스테이지에 나오는 15개의 부가 스테이지는 뒷 배경 변경이 없이 오브젝트만 변경이 될 것 같은데요 이럴 경우에 한 씬에 15개의 부가스테이지를 다 몰아서 표현할 수 있을까요? 배경만 같고, 부가 스테이지마다 클리어 조건은 다릅니다ㅠㅠ만약 가능하다면 혹시 어떻게 표현을 할 수 있을지 방법까지 여쭤봐도 될까요?ㅠㅠ 유니티 책 두권으로 독학을 했는데, 두 권 다 기초 책이라 새로운 씬을 만드는 방법만 알려주네요