묻고 답해요
144만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결따라하면서 배우는 고박사의 유니티 기초
다른 강의도 듣고 싶어요
https://www.youtube.com/@unitynote/playlists 에서 2D기초강의를 듣고 싶은데 2D횡스크롤 게임(예 : 메탈슬러그, 슈퍼마리오)을 만들려면 어느 강의를 추천할수 있나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
AcceptAsync() 와 BeginAccept() 의 차이가 궁금합니다.
이 강의를 구매하기 전 이런저런 자료를 찾아보며 혼자 TCP 통신을 공부하고 있었습니다. 그런데 제가 공부할 때는 Begin~() 를 사용했었습니다. 그런데 이 강의 에서는 ~Async() 를 사용하더라고요 사용하기는 Begin~() 이 더 간단하던데 이 강의에서 ~Async() 를 사용하는 다른 이유가 있을까요? 궁금합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
ServerCore 일부 복붙하는걸 심볼릭링크로 해도 괜찮을까요?
유니티 측에서 사용자정의 심볼을 넣어서위 사진과 같이 전처리기를 사용해Server측에서는 Console.WriteLineClient측에서는 Debug.Log이 호출되도록 구성하였습니다. 에디터상에서 실행하는것까지는 크게 문제없이 잘 되는 것 같습니다! 이러면 어느쪽에서든 로직 사소하게 변경해도복붙 까먹는 일이 없어 좋아보이는데혹시 퍼블리싱단계나 추후에 크게 문제될 부분이 있을까요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Poolable 컴포넌트를 코드를 통해 넣어주려면
강의에선 Poolable 컴포넌트를 유니티 실행 전에 유니티에서 드래그앤드롭으로 미리 넣어줍니다.제 질문은 강의처럼 미리 넣어주는게 아닌 실행된 뒤에 코드에서 GetOrAddComponent함수를 통해 넣어주려고 합니다.그런데 코드에서 GetOrAddComponent함수를 통해 넣어주면 복제가 된 뒤에 넣어져 풀링이 되지 않습니다. ResourceManager의 Instantiate 함수를 보면 Object.Instantiate를 실행하기 전에 풀링된 오브젝트가 있는지 확인을 해서 그런거 같습니다.Pop()함수가 호출이 안되니 _pool Dictionary에 새로 생성되지 않습니다.제 생각에는 Push 함수에서도 CreatePool을 해주는 방식이나 ResourceManager의 Instantiate 함수 안에서 Object.Instantiate를 실행하기 전에 오브젝트의 이름이나 태그를 통해 미리 넣어주고 복사하는 방식이 생각이 나는데 전자는 강의에서 말씀하신 예외사항에 대처할 수 없고 후자는 그리 효율적이라고 생각되지 않습니다.혹시 다른 좋은 방법이 있을까요?강의에서 말씀한 내용이라면 죄송합니다.
-
해결됨[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
어드레서블 관련 궁금한 점이 있습니다
안녕하세요 좋은 강의 감사합니다.어드레서블 관련해서 궁금한 점이 있어서요. 앱을 출시하고 업데이트 할 때, 검토 기간이 어느 정도 소요되는 것으로 알고 있습니다. (UI_LobbyScene.prefab 을 예시로 가져왔습니다)현재 버전인 A 를 (화살표 기준으로) 위의 이미지, 업데이트 될 버전 B 를 아래의 이미지로 가정 했을 때,어드레서블 파일들을 업데이트 하고, 검토를 보낸다면, 검토가 완료되기 전 까지어드레서블 만 업데이트 된 A 버전의 사람들은작동하지 않는 [이벤트] 버튼을 사용하게 될 것 같은데요. 아직 이벤트 기능을 포함한 스크립트가 생성된 B 버전의 앱은 출시가 되지 않은 상황 이기 때문입니다. 혹시 이 부분을 어떻게 해결 하면 좋을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Get Instance () 궁금합니다
Get Instance () 이거는 기본 내장 함수 인가요 ? 이해가 잘안됩니다..{} 안에 있는 리턴 은 어디로 리턴 받나요 기초 강의인데 설명이 없어서요 ㅠㅠ혹시 설명 부탁드려도 되나요get 하고 중괄호 사용하시던데.. 헷갈려서요 설명부탁드립니다
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + T2)
zenject를 현업에서도 많이 사용하나요?
zenject를 배우고 이를 프로젝트에 활용해서 개발하고 있었는데 이번에 이 강의를 보고 배우면서 이전에 구현하던 방식에 좀 회의가 들어서요. 제가 zenject에 대해 완벽히 알고 있는게 아니라 개발 속도가 많이 느리기도 하고 진행 중이신 프로젝트를 zenject로 바꿔서 개발할 수 있을지 확신이 없기도 하네요..혹시나 다른 개발자 분들이 투입된다면 협업하는데 장애가 될까 걱정도 되서 질문 남깁니다.그리고 좋은 강의 감사합니다.
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + T2)
안녕하세요 오늘 첫 수업들었는데 질문 있습니다
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번처럼 하게 될 때 걱정되는 점은 만약에 도중에 애니메이션 파일 이름을 변경하게 될 때 코드에서 까지 바꿔야 되는 점이 염려스럽습니다.나중에는 애니메이션 파일이 하나 뿐만이 아닐텐데 그것을 일일이 찾기도 어려울 것이라고 판단했습니다.
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + T2)
언리얼 소스 분석 강의
언리얼 소스 분석 강의 결제 했는데3일전에 디코 초대가 메일로 온다고 했는데 안와서 문의 드립니다.언리얼 소스 분석 강의엔 질문할 곳이 없어서 여기에 질문 드립니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
질문 있습니다
영상에서 7분즘에 이런 말씀을 하셨는데요."커넥터를 딱 하나만 하는 경우도 있겠지만 경우에 따라서는 우리가 리스너에서 계속 뺑뺑이를 돌면서 천명이건 만명이건 계속 받을 수 있는 것처럼 커넥터도 한 번만 받고 끝내는게 아니라 여러 병을 받을 수 있으니까 굳이 이런 식으로 소켓으로 받기 보다는 이런 식으로 이벤트를 통해서 인자를 넘겨주고 있는 것이다."하지만 그 리스너에서는 Socket을 필드로 들고 있도록 하셨었잖아요? Socket을 필드로 들고 있는 것과 SocketAsyncEventArgs의 Token으로 socket을 넘겨주는건 결국 똑같이 작동하는 건가요?connector에서는 Socket을 필드로 두지 않고 args의 token으로 socket을 건네주신 이유를 이해하지 못하겠습니다.아니면 그냥 똑같이 동작하는데 이런 방법도 있다고 알려주기 위함이셨나요?
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + T2)
클래스 다이어그램
루키즈님도 이런 프로젝트를 제작할때 클래스 다이어그램을 만들며 제작하시나요?? 궁금합니다
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
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; } 더 좋은 방법이 있을까요?
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + T2)
Addressable Sprite 파일
현재는 하나의 파일에 한 개의 스프라이트로 불러오고 있는데Sprite Mode를 multi로 짤라서 그 파일에 들어있는 스프라이트를 가져오는 방법은 어떻게 하나요??
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
명시적으로 함수를 호출하지 않으면 무조건 스레드 세이프할까요?
안녕하세요? 강의 재밌게 보고 있습니다.아래 인프런 질문을 보면Q. Receive()는 lock을 사용하지 않는 이유?A. 명시적으로 Recv()처럼 호출하지 않기 때문에 1번에 1개의 스레드만 접근하여 스레드 세이프함이라는 질문을 보았는데요, 이 답변을 조금 확대 해석해 봤는데Q. 명시적으로 함수()를 하지 않으면 무조건 스레드세이프할까요? 답변 미리 감사합니다.