묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Get Instance () 궁금합니다
Get Instance () 이거는 기본 내장 함수 인가요 ? 이해가 잘안됩니다..{} 안에 있는 리턴 은 어디로 리턴 받나요 기초 강의인데 설명이 없어서요 ㅠㅠ혹시 설명 부탁드려도 되나요get 하고 중괄호 사용하시던데.. 헷갈려서요 설명부탁드립니다
-
미해결[Rookiss 켠김에 출시까지] MMO Lab 1기 <유니티 방치형 키우기 게임>
zenject를 현업에서도 많이 사용하나요?
zenject를 배우고 이를 프로젝트에 활용해서 개발하고 있었는데 이번에 이 강의를 보고 배우면서 이전에 구현하던 방식에 좀 회의가 들어서요. 제가 zenject에 대해 완벽히 알고 있는게 아니라 개발 속도가 많이 느리기도 하고 진행 중이신 프로젝트를 zenject로 바꿔서 개발할 수 있을지 확신이 없기도 하네요..혹시나 다른 개발자 분들이 투입된다면 협업하는데 장애가 될까 걱정도 되서 질문 남깁니다.그리고 좋은 강의 감사합니다.
-
미해결[Rookiss 켠김에 출시까지] MMO Lab 1기 <유니티 방치형 키우기 게임>
안녕하세요 오늘 첫 수업들었는데 질문 있습니다
1달차 처음 강의 영상봤는데 Managers질문 1 : 영상에서 나중에 보충수업에서 설명해주신다고 했는데 어디서 볼수있나요 ??질문 2: 혹시 공부중에 못따라가면 어떤 강의 보충 하면 좋나요 ?질문 3 : 디스코드 초대 어떻게 받을 수 있나요
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
15:09 GenPackets.bat
15:09초까지 똑같이 따라하고그래서 최신 버전도 protobuf를 받아서 해봤지만아무리 다시 해보고 찾아 보려해도 아무것도 뜨지 않는데 이유를 알 수가 없습니다 ㅠㅠㅠㅠ
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
QuestSystemSaveTest 중 오류가 났습니다
오류 난 콘솔창입니다. 저 콘솔창에서 더블클릭해서 들어가보면 하이라이트한 줄이 문제가 있다고 나오는데 오류 메세지는 Quest.cs의 103번째 줄을 가리켜서 가보니OnRigster 함수 안에 저 줄을 가리키더라고요. 어떤 문제인지 알 수 있을까요 지금까지 그대로 따라왔는데 오류가 떠서 뭔지 모르겠어요 ㅜㅠ
-
미해결따라하면서 배우는 고박사의 유니티 기초
2D Tilemap Editor 2:00에서요
+ -> tile을 누르라 하셨는데 어딜 찾아봐도 안보이네요 그래서 7개 중에서 뭐라도 눌러야 할까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
혹시 게임을 시작할 때 애니메이션이 움직이는거로 시작하는데
22:24의 부분에서부터 말씀해주시는 것 중 루키스님께서 말씀하신것은 2개인거로 사료됩니다.Start에 원하는 애니메이션 플레이 코드 삽입움직일 때 None이 되면 가만히 있는 코드를 역이용하여 사용.이렇게 있는데 잠깐 애니메이터를 만지다가 알게 된 건데 애니메이터의 'Entry' 블록에서 Default state를 IDLE_RIGHT와 같이 원하는 항목으로 지정해도 되더라구요. 혹시 현업에서는 어떻게 이용하는지 궁금합니다.1, 2번처럼 하게 될 때 걱정되는 점은 만약에 도중에 애니메이션 파일 이름을 변경하게 될 때 코드에서 까지 바꿔야 되는 점이 염려스럽습니다.나중에는 애니메이션 파일이 하나 뿐만이 아닐텐데 그것을 일일이 찾기도 어려울 것이라고 판단했습니다.
-
미해결[Rookiss 켠김에 출시까지] MMO Lab 1기 <유니티 방치형 키우기 게임>
언리얼 소스 분석 강의
언리얼 소스 분석 강의 결제 했는데3일전에 디코 초대가 메일로 온다고 했는데 안와서 문의 드립니다.언리얼 소스 분석 강의엔 질문할 곳이 없어서 여기에 질문 드립니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
질문 있습니다
영상에서 7분즘에 이런 말씀을 하셨는데요."커넥터를 딱 하나만 하는 경우도 있겠지만 경우에 따라서는 우리가 리스너에서 계속 뺑뺑이를 돌면서 천명이건 만명이건 계속 받을 수 있는 것처럼 커넥터도 한 번만 받고 끝내는게 아니라 여러 병을 받을 수 있으니까 굳이 이런 식으로 소켓으로 받기 보다는 이런 식으로 이벤트를 통해서 인자를 넘겨주고 있는 것이다."하지만 그 리스너에서는 Socket을 필드로 들고 있도록 하셨었잖아요? Socket을 필드로 들고 있는 것과 SocketAsyncEventArgs의 Token으로 socket을 넘겨주는건 결국 똑같이 작동하는 건가요?connector에서는 Socket을 필드로 두지 않고 args의 token으로 socket을 건네주신 이유를 이해하지 못하겠습니다.아니면 그냥 똑같이 동작하는데 이런 방법도 있다고 알려주기 위함이셨나요?
-
미해결[Rookiss 켠김에 출시까지] MMO Lab 1기 <유니티 방치형 키우기 게임>
클래스 다이어그램
루키즈님도 이런 프로젝트를 제작할때 클래스 다이어그램을 만들며 제작하시나요?? 궁금합니다
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
ProjectileController로 만든 파이어볼이 삭제가 되지않습니다.
일단 코드를 따라서 구현하고 코드의 흐름으로도 Projectile script가 붙은 파이어볼이 10초뒤에 자연적으로 소멸해야하는데소멸이 되지않습니다. 코드의 흐름을 보면PlayerController 에서 StartProjectile함수로 파이어볼을 생성해서 발사 ProjectileController에서 Init함수에서 StartDestroy(_lifeTime); 함수로 넘어가서 SkillController에서 구현된 CoDestroy 에서 Managers.Object.Despawn(this)에 의해 소멸되어야하는데 소멸되지않아 Despawn 쪽에 T가 SkillController 코드를 추가하니 정상적으로 시간뒤에 파괴되는것을 확인했는데 왜 ProjectileController 가 아닌 SkillConroller에서 파괴되는지 궁금합니다. 브레이크포인트를 잡고 해도 SkillController로 넘어가네요
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
강의 소스코드
소스코드 다운로드 가능한가요? 예전에는 가능했던거 같은데요...ㅜ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
GameRoom.Flush() 수행 중에 _sessions가 변경 되면, 컬렉션 변경 에러가 나옵니다.
// GameRoom.cs public void Flush() { foreach (ClientSession s in _sessions) s.Send(_pendingList); _pendingList.Clear(); }foreach를 돌며 s.Send()를 하는 와중에_sessions가 변경되면,(_sessions.Add 되거나 _sessions.Remove 되면)아래와 같이 컬렉션 변경 에러가 나옵니다. 이를 해결하려고 아래와 같이 _sessions를_sessionsCopy에 복사하여 foreach 돌렸습니다.// GameRoom.cs public void Flush() { List<ClientSession> _sessionsCopy = _sessions.ToList(); // 복사 foreach (ClientSession s in _sessionsCopy) s.Send(_pendingList); _pendingList.Clear(); _sessionsCopy = null; } 더 좋은 방법이 있을까요?
-
미해결[Rookiss 켠김에 출시까지] MMO Lab 1기 <유니티 방치형 키우기 게임>
Addressable Sprite 파일
현재는 하나의 파일에 한 개의 스프라이트로 불러오고 있는데Sprite Mode를 multi로 짤라서 그 파일에 들어있는 스프라이트를 가져오는 방법은 어떻게 하나요??
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
명시적으로 함수를 호출하지 않으면 무조건 스레드 세이프할까요?
안녕하세요? 강의 재밌게 보고 있습니다.아래 인프런 질문을 보면Q. Receive()는 lock을 사용하지 않는 이유?A. 명시적으로 Recv()처럼 호출하지 않기 때문에 1번에 1개의 스레드만 접근하여 스레드 세이프함이라는 질문을 보았는데요, 이 답변을 조금 확대 해석해 봤는데Q. 명시적으로 함수()를 하지 않으면 무조건 스레드세이프할까요? 답변 미리 감사합니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ClientSession의 Room이 null인 경우
안녕하세요.Part 4를 완강하고 Part 7으로 넘어가기 위해새로운 솔루션을 생성해서 기존 Part 4 솔루션 내의프로젝트들을 우선 Ctrl + C, V 한 뒤 기존 프로젝트 추가로Part 7에서 사용할 서버 솔루션을 Part 4와 동일하게 맞추는 작업을 하고 있었습니다!그런데, DummyClient의 연결 수를 20개 정도로 하면 문제가 없지만, 30개부터는 특정 ClientSession의 Room이 null인 상태에서 서버 측의 C_MoveHandler가 실행되어 서버가 뻗어버리는 경우가 간헐적으로 발생하고 있습니다.(강의 보면서 따라 한 솔루션은 100이면 100 잘 되며, 새롭게 복사한 솔루션은 대부분 잘 되지만 가끔식 위 오류가 발생합니다..) 처음엔 단순히 Ctrl+C , V 하는 과정에서프로젝트나 솔루션의 설정값들이 새로운 경로로 옮기면서 동기화가 안되어 생기는 문제인 줄 알았는데,코드를 계속 천천히 읽다보니 의문이 들게 되었습니다. public GameRoom? Room { get; set; }public override void OnConnected(EndPoint? endPoint) {Console.WriteLine($"OnConnected: {endPoint}");Program.Room.Push(() => Program.Room.Enter(this));}제가 이해한 바로는ClientSession의 Room은Listener에 의해서 ClientSession.OnConnected가 호출되며 Program.Room에게 Enter(this)를 요청하고,이후 Program.Room은 Flush()를 통해 특정할 수 없는 시점에 비로소 Enter를 호출하게 되며, ClientSession.Room이 자기 자신을 가리키도록 합니다. 그런데, 정말 운이 안 좋다면 Program.Room이 A번 ClientSession에 대한 Enter 작업이 미처 다 수행되기 전에DummyClient 측의 SendForEach로 인해 A번 ClientSession과 대응되는 ServerSession으로 이동 패킷을 보내고,최종적으로 A번 ClientSession의 Room이 null인 상태에서 C_MoveHandler를 실행 할 여지가 있는 것이 아닌가 생각하게 되었습니다. 혹시 제가 생각하고 있는 것이 맞는건지,아니면 단순하게 솔루션을 잘못 복사해와서 문제가 생긴건지궁금합니다..만약 그런 여지가 있다면 단순히 room이 아직 null인지 체크하고 이동 패킷을 무시하면 되는걸까요?
-
미해결따라하면서 배우는 고박사의 유니티 기초
제가 3d 멀미가 있어서 2D게임만 만들 생각인데요
색션2 3d강의를 들을 필요가 있나요? 답변부탁드립니다.
-
미해결[유니티 3D] 실전! 생존게임 만들기 - Advanced
인벤토리 끄고 퀵슬롯 아이템 드래그앤 드랍시 공격
GunController.cs의 Update()문에서 void Update() { if (isActiviate) { GunFireRateCalc(); if(!Inventory.inventoryActivated) { TryFire(); TryReload(); TryFineSight(); } } } 인벤토리를 끄면 공격을 하게끔 되어있습니다.하지만 마지막 최종 테스트 강의을 보면 강사님은 인벤토리를 끄고 우클릭으로 드래그앤 드랍을해도 공격을 안하는 모습이 보여집니다. 왜그런지 답변 부탁드립니다.
-
해결됨두고두고 써먹는 유니티 VR
select Entered에서는 Gun.Grab이 되는데 Select Exited에서 Gun.Release가 나오지 않음
스크립트는 다음과 같이 작성했습니다.마찬가지로 weaponstand에서도 select 부분만 안나오네요...XR interaction toolkit 버전은2.5.2입니다.
-
미해결따라하면서 배우는 고박사의 유니티 기초
게임오브젝트 삭제함수에서 질문이요
2:12 시간에서 3개의 프리팹에 c#스크립트를 올릴려 하는데[Can't add script component 'PositionAutoDestroyer' because the script class cannot be found. Make sure that there are no compile errors and that the file name and class name match.]라는 메세지가 뜨네요 c#이름이 틀렸나? 해서 확인도 해보고 저장도 여러번 해봤습니다.add component에서 PositionAutoDestroyer를 검색하려해도 나오지 않고요 답변부탁드립니다.