묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스
안녕하세요. SetDamage() null 오류
SetDamage부분에서 계소 null이 나는데요. 어떤 부분을 확인해야 할까요? NullReferenceException: Object reference not set to an instance of an objectHero.SetDamage () (at Assets/02.Scripts/Player/Hero.cs:170)Bullet.Update () (at Assets/02.Scripts/Player/Bullet.cs:34)
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
Render Texture 관련 문의 강의와 다르게나와요.
아무리 강의를 돌려봐도 강의영상 3:17에는 위와 같은 느낌이었는데 강의영상 4:31 영상 렌더 텍스쳐 적용 후부터 이미지가 써클의 모양이랑 크기가 달라 보이는게 이해가 안됩니다... 부모 오브젝트부터 초 단위로 끊어서 봤었는데 보여지는 써클 사이즈가 도저히 이해가 안됩니다.
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
안녕하세요 일시정지부분
Time.timeScale = 0 으로 하는건 추천하지 않다고 하셨는데..그렇다면 강사님이 작성하신 GameManager.Instance.Paused = true;LevelManager.Instance.ToggleCharacterPause();는 어떻게 작성했는지가 궁금한데 공유는 불가능한부분일까요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
3d 프로젝트 이동 동기화 관련
안녕하세요 루키스님.. 강의 잘 보고 있습니다.. ㅠm2 프로젝트 강의 거의 다 듣고 저만의 rpg를 만들기 위해 m2 프로젝트의 프레임워크만을 사용하고 3d isometric view로 리니지 같은 게임을 만드는 도중에 도저히 답이 안나와서 c#과 유니티로 만드는 mmorpg 강의 들을 때 만들어둔 프로젝트에 저만의 프레임워크를 수정 및 추가하는 방법으로 강의를 듣고 있습니다.현재 저의 프로젝트는 강의처럼 2d가 아닌 3d로 구성되어 있고 movepacket에 vector3 형식의 posinfo를 넘겨주고 있습니다.근데 동기화 테스트를 하면 나 자신의 캐릭터는 잘 움직이는데 반대편 클라이언트에서는 제 캐릭터가 움직이는게 보이지 않아서 디버깅만 5시간째 하고 있는데 도저히 감이 안와서 도움 요청드리려고 합니다.. 프로젝트좀 봐주시면 안될까요?서버 코드는 혹시나 싶어서 루키스님의 코드 전체를 붙여넣기 해서 다시 빌드까지 해봤지만 똑같네요.. 참고로 명령프롬프트에 c_move 좌표는 정상적으로 잘 찍힙니다.
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
인앱 결제 환불 처리
안녕하세요. 좋은 강의 감사드립니다.인앱결재같은 강의를 통해 서비스도 할 수 있겠다는 자신감을 얻었습니다.그리고 서비스 중에 발생하는 환불처리에 대한 내용도 있었으면 참 좋겠다는 생각이 들어글 남깁니다
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
BFS 질문
bfs는 최단거리를 어떻게 찾는건지 이해가 안되서 질문 남깁니다. 그니까 여러 갈래의 길을 부모-자식의 관계로 뻗어나가면서 찾다가, 도착점에 도달하는 부모자식 관계가 있으면, 부모를 타고 올라가면서 확인 한 다음에 reverse를 시켜서 다시 부모에서 자식으로 내려간다고 이해하면 될까요
-
해결됨유니티 시스템 프로그래밍 Pt.2 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
구매 환불 처리 과정
좋은 강의 감사드립니다.인앱같은 경우 강의내용을 통해 서비스의 자신감을 얻었습니다.하지만 서비스 중에 발생하는 환불처리에 대한 내용도 있었으면 참 좋겠다는 생각이 들어글 남깁니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
몬스터 AI관련해서 질문드립니다
안녕하세요몬스터AI를 디테일하게 제작하다 의문이 들어서 질문드립니다.다른 상용화된 3D 게임에서 보면 몬스터가 플레이어에게 접근할 때 앞에 다른 몬스터들이 있으면 그를 무시하지 않고 피해서 돌아서 가는데요 이것은 raycast를 여러방향으로 쏴서 주변 몬스터를 체크해 피해가도록 구현을 하는 걸까요? 아니면 다른 방식이 있을까요?아니면 그냥 겹쳐도 상관없이 구현하는 경우도 있다고 하는데 기획에 따라서 다르겠지만 요즘은 어떤식으로 구현할까요??
-
해결됨두고두고 써먹는 유니티 비동기 프로그래밍
Unity6에서 DoTweend 과 UniTask를 같이 사용시 나는 에러에 대한 해결 방법 입니다.
질문은 아니고 Unity6에서 DoTweend 과 UniTask를 같이 사용시'TweenerCore<float, float, FloatOptions>' does not contain a definition for 'ToUniTask' and the best extension method overload 'CancellationTokenExtensions.ToUniTask(CancellationToken)' requires a receiver of type 'CancellationToken'같은 에러 메세지를 만나게 됩니다.DOTween의 Tween 객체를 직접 await 할 수 없기 때문에 발생하는 문제라고 합니다.이 문제를 해결하기 위해서는 DOTween의 Tween을 UniTask로 변환해주는 확장 메서드를 사용해야 합니다. ToUniTask() 확장 메서드를 사용하면 된다고 합니다.예시로 다음과 같이 하면 됩니다. 우선 Edit > Project Settings 에서Scripting Define Symbols에다음과 같은 같은 문구를 추가 합니다."UNITASK_DOTWEEN_SUPPORT"테스트 해본 바로는 위에 문구 추가까지만 해도 에러는 사라지는거 같습니다. 그래도 확실히 하기 위해 아래와 같이 UniTask 안에서 트윈 호출시 알래와 같이 작성 합니다.//에러가 나는 트윈 호출 위치애서 DOTween 메서드 호출 뒤에 .ToUniTask() await image.DOColor(Color.red, 0.5f).ToUniTask();
-
미해결[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
Radzen.Blazor.RadzenTheme 오
InvalidOperationException: A component of type 'Radzen.Blazor.RadzenTheme' has render mode 'InteractiveAutoRenderMode', but the required endpoints are not mapped on the server. When calling 'MapRazorComponents', add a call to 'AddInteractiveWebAssemblyRenderMode'. For example, 'builder.MapRazorComponents<...>.AddInteractiveWebAssemblyRenderMode()'Microsoft.AspNetCore.Components.Endpoints.SSRRenderModeBoundary.AssertRenderModeIsConfigured<TRequiredMode>(Type componentType, IComponentRenderMode specifiedMode, IComponentRenderMode[] configuredModes, string expectedCall)서비스 등록함테마 등록함컨포넌트 입력
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
파트 7 스트레스 테스트 질문 드립니다.
안녕하세요 루키스님? 토이 프로젝트 개요파트 7을 기반으로 3D 환경에서 Zone없이 위치 동기화 정도로 간단한 게임을 만들어 포트폴리오 만들려고 합니다.유니티에서 3D캡슐을 플레이어라고 하고, Move패킷에 목표 좌표 찍어서 transform.position 변경시키면서 스르륵 이동하는 방식으로 데드레커닝 비슷하게 흉내 내고 있습니다. 문제 - 스트레스 테스트얼추 위치 동기화를 마치고 스트레스 테스트를 하고 있는데, 파트4 마지막 스트레스 테스트에서 더미 500명은 거뜬했었는데, 제가 파트7 기반으로 한 프로젝트는 더미 100명부터 버벅거리더라구요. 문제 분석 - 왜 파트4는 더미 500까지 버텼는데 제거는 100명도?뭐가 다른가 곰곰히 뜯어보니, 파트4에서는 패킷 모아보내기를 통해 500명이 초당 4번, 총 2000번 정도를 처리하는 반면, (Send만 세었다고 하면)제 프로젝트는 패킷 모아보내기가 안되는지 100명이 초당 4번, 총 40000번(브로드캐스트 400 * 100명) 정도 코스트가 발생하는게 원인이라고 짐작하고 있습니다.더해서 파트7의 마지막도 패킷 Send도 찍어보니, O(N^2)인 것을 확인하여 질문 드리게 되었습니다. (플레이어 4명이 입장 시키고 한명 움직이면 초당 약 10번, 4명이니까 40번 발생하는 것을 확인). 질문 드립니다.Q1. 파트 4의 패킷 모아보내기는 더미클라이언트들이 같은 프로젝트 안의 공동 큐를 사용해 Send 됐기 때문에 가능했던 부분으로 이해되는데 맞을까요?Q2. 파트7을 기반으로 했다면 100명도 버거운게 맞을까요?Q3. Q2이 맞다면 500명의 부하를 버틸 수 있게 할 수 있는 조언 주실 수 있을까요? 더미 클라 500이 아닌, 실제 500명이 붙었을 때를 가정하고 싶습니다. 패킷을 이렇게 모아보내면 된다.. 등의 아이디어 레벨로라도 조언을 기대하고 있습니다. 물론 파트9에서 존단위 처리 등의 더 상위기법을 알려주시지만, 파트7의 범위 내에서 500명의 스트레스 테스트도 가능하게 하고 싶습니다. 나름 분석하고 질문 드리고 있는데 그냥 제가 뭐 잘못 건드려서 100명도 렉걸리는거 같아서 질문하면서 좀 민망하네요..ㅎㅎ 답변 미리 감사합니다! 회사를 골라 가는 사람으로 성장하겠습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
유니티6 질문
unity-chan캐릭터를 다운하여 프로젝트에 넣었는데 캐릭터가 색이 없고 완전 무색입니다 아예 안보이는데 무슨 문제일까요 unity-chan 파일 아래에 materials에 보면 body나 eye가 흑백으로 보이긴합니다
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
게임 클라이언트 개발에서 테스트 코드 작성이 도움이 될까요?
게임 클라이언트 개발을 진행되면서 코드 관리가 어려울 것 같은데, 테스트 코드를 작성하는 것은 클라이언트 개발에서는 도움이 되지 않는 편인가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
BitConverter.TryWrtieBytes 부분이 잘 이해가지 않습니다.
ServerSession 클래스의 Write 함수의 일부입니다.// 최종적으로 패킷의 크기를 할당하기 위한 공간 확보 count += sizeof(ushort); success &= BitConverter.TryWriteBytes(s.Slice(count, s.Length - count), this.packetId); count += sizeof(ushort); success &= BitConverter.TryWriteBytes(s.Slice(count, s.Length - count), this.playerId); count += sizeof(long);BitConverter.TryWriteBytes(s.Slice(count, s.Length - count), this.packetId); 와 같이 스팬을 자를 때 왜 s.Length - count로 count 부터 남은 공간을 전부 자르는 건가요?ushort 크기를 사용할 것이기에 s.Slice(count, sizeof(ushort))로 사용할 공간만 잘라서 사용하는 것이 더 효율적인 것이 아닌가요? +추가이 이유가 강의에서 말씀해주셨던 누군가가 이상한 값을 할당해 정확한 크기가 전달되지 않을 가능성이 있어서 남은 공간을 모두 확인하려는 의도일까요??
-
미해결[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
Class 설계 후 Razor 에서 호출!
23:27 ~부터 구현시강사님 환경하고 수업자 환경하고 다른듯하네요using BlazorSeverMaster.Components; using BlazorSeverMaster.Components.Account;using BlazorSeverMaster.Data;using BlazorSeverMaster.interfaces;using BlazorSeverMaster.Models;\ using BlazorSeverMaster.Services;위코드를 추가 해야 되네요
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
로딩 씬에서 DB 데이터 로드 완료 후 Main 씬 전환 시 Spawner의 OnReady 이벤트가 작동하지 않습니다.
로딩 씬에서 DB 데이터 로드 완료 후 Main 씬 전환 시 Spawner의 OnReady 이벤트가 작동하지 않습니다. 디버깅을 통해 StageManager의 OnReady와 OnPlay 호출 시점을 확인해 보았는데, OnReady가 먼저 호출되는 것을 확인하였으나, Spawner에서는 OnReady 함수가 작동하지 않아 발생하는 문제로 확인됩니다.이렇듯 연결은 잘 해놓았으나, 작동하지 않는데, 하루종일 디버깅하며 찾아보는데 도저히 진도가 빠지지 않아 요청드립니다. https://github.com/sangmoki/IdleHero_RPG 깃허브 링크도 같이 첨부 드립니다 !
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
격자 무한 출력
안녕하세요 루키스님. 현재 작업 툴을 Rider를 쓰고 있는데, 툴 설정 문제인건지 코드를 실행하면 격자가 무한으로 출력됩니다! 뭐가 문제인지 모르겠습니다 ㅜ
-
미해결[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스
릴레이 서비스 방코드를 찾지 못하는 문제
Unity.Services.Relay.RelayServiceException: Not Found: join code not foundrequestId: 549200a3-33be-4931-800c-0a0338144896 ---> Unity.Services.Relay.Http.HttpException`1[Unity.Services.Relay.Models.ErrorResponseBody]: (404) HTTP/1.1 404 Not Found릴레이 서버 잘 할당 되었고 방 코드도 잘 나왔는데 InputField에 직접 넣어서 실행하니까 위 에러가 뜹니다.. 어떻게 해결해야할지 모르겠습니다..
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
아이템 강화 테이블 관련
안녕하세요~ 강의 잘 듣고 있습니다 ㅎㅎdb상에서 각 아이템별로 강화수치가 달라질때마다 인스턴스를 따로 두셨던데만약에 장비 아이템이 많으면 천개까지 늘어날텐데 그때마다 +1, +2 .. +10 까지 관리하기에는 너무 많아서이걸 만약에 인스턴스로 관리하지 않고강화를 해서 능력치가 +될 경우 해당 장비에 +된 강화수치를 메모리상에 저장하는 식으로 바꾸면 어떤 문제가 생길지 궁금합니다 ㅎㅎ
-
해결됨새싹부터 시작하는 Unity 게임 개발
Tilemap Collider 2D 사용 시 평지에서 캐릭터가 안 움직이는 현상
Tilemap Collider 2D 를 사용할 경우 가끔가다 평지에서 캐릭터의 velocity 가 0이 아닌데도 멈추는 현상이 있는데요 캐릭터의 rigidbody contacts 값이 4일 때는 발생 안하고 6일 때, 그리고 속도가 느릴 때만 발생하는 것으로 보아 타일 사이에 껴서 못 움직이는 현상 같은데.. Box Collider 2D 를 사용하면 contacts 값이 항상 2로 유지되면서 이 현상이 없어지긴 하지만 근본적인 해결책은 아닌 것 같아서요혹시 Tilemap Collider 2D 를 사용하면서 문제를 해결하는 방법이 있을까요?사실 contacts 가 6이 된다고 못 움직이는 것도 이해가 안됩니다.. 그냥 타일 3개와 닿아 있다는 뜻 아닌가요?