inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

강사님. 감사합니다.

해결됨

[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스

혹시나 3D방치형 게임은 혹시 할인 프로모션이 계획돼 있을까요? 항상 결제하면 할인이 되는 경우가 많았어서요.

  • C#
  • unity
  • 게임기획
  • multiplayer
  • game-programming
양승근 댓글 2 좋아요 0 조회수 161

캐릭터 이동1 24분부터 잘 안되요.

해결됨

[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스

캐릭터 이동1편에서 24분전에 holder자체를 교환할 때는 됐는데요. holder안의 캐릭터 이동으로 변경시 캐릭터들이 자꾸 가운데사 만나는 게 됩니다. 그리고 강의에 parentholder에 대해서는 언급이 없었는데 무엇일까요?

  • C#
  • unity
  • 게임기획
  • multiplayer
  • game-programming
양승근 댓글 2 좋아요 0 조회수 165

함수에 대한 질문

해결됨

[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스

제가 확실히 이해한 것이 맞는지 체크하고 싶어 질문 드려요. NetworkObject는 생성시 Instantiate함수만으로도 양쪽에 동기화 되어 생성된다. (생성만 되는 것인지 이동시 위치까지 동기화 되는건이지 궁금합니다.) ServerRpc함수 : 이 함수는 client의 작업은 client에서 하는 것이 아니라 host가 대리처리해 주어야 하기 때문에 client만 주로 호출할 일이 많다. ClientRpc함수 : host가 작동시킨 것들을 clinet에게 전달하거나 ServerRpc함수에 작업한 것을 다시 양쪽에 동기화해서 전송해주는 역할을 한다. 이 함수는 host와 client컴퓨터 양쪽에서 모두 실행된다. 위에 두 함

  • C#
  • unity
  • 게임기획
  • multiplayer
  • game-programming
양승근 댓글 2 좋아요 0 조회수 194

클라이언트 에러 및 버그들

해결됨

[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스

안녕하세요! 강의를 보며 멀티플레이 게임 제작을 공부 중인 학생입니다. 현재까지 나온 강의를 모두 듣고 클론 코딩을 하였는데 종종 클라이언트에서 에러가 발생합니다. 깃허브 코드와 강의를 다시 봐도 해결이 힘들어 질문을 작성하게 되었습니다. client 화면에서 hero 들이 모두 화면 중앙에 배치되는 현상 host는 문제 없이 host와 client영역으로 나뉘어져 있습니다. 이 경우 client에서 host보다 먼저 herospawn을 하면 null에러가 뜹니다. NullReferenceException: Object reference not set to an instance of an object Spawner.HeroSpawn (System.UInt64 clientId, System.String rarity) Spawner 스크립트의 HeroSpawn(ulong clientId, string rarity) 함수의 var existingHolder = GetExistingHolder(temp, data.Name); 이 부분이 문제라고 뜹니다. host에서 herospawn을 먼저 하고 client에서 herospawn을 하면 null 에러 없이 랜덤하게 두 가지 경우가 나옵니다.. 위 사진처럼 client 화면의 중앙에 모든 hero가 배치되는 경우 host, client모두 정상적으로 배치되는 경우 그러나 위 두 가지 경우 모두 client는 host가 마지막으로 생성한 영웅만 생성됩니다. ex) host가 warrior 소환 시 client는 warrior 만 소환, host가 summon 버튼을 눌러 archer 소환 시, client는 그 후로 archer만 소환 client 에서 영웅 클릭 시, NullReferenceException 발생 CameraRay 스크립트의 MouseButtonDown() 함수의 else if (value == 1) Canget = holder.Holder_Part_Name.Contains("CLIENT"); 부분에서 발생합니다. 위 두 문제의 해결법을 알고 싶습니다 ㅠㅠ 게임을 실행하며 찾은 버그들 입니다. 내 진영에서 상대 진영으로 hero 이동 가능 hero 없는 빈 홀더 클릭 및 이동 가능 (ui도 뜸) 빈 홀더 클릭 후, sell 버튼 클릭 시 Sell() 함수 내의 UI_Main.instance.GetNavigation 부분 인덱스 범위 에러 발생 몬스터 클릭 시 CameraRay 스크립트 MouseButtonDown()가 호출되어 heroholder가 null이 되어 에러 발생 버그들은 각 관련된 처리를 하지 않아 발생한 것 같지만, 위의 클라이언트 문제는 해결법을 모르겠습니다

  • C#
  • unity
  • multiplayer
  • game-programming
허지웅 댓글 1 좋아요 0 조회수 189

multiplay부분 에러

해결됨

[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스

Library\PackageCache\ com.unity.multiplayer.tools \NetVis\Configuration\OwnershipSettings.cs(41,24): error CS0103: The name 'CustomColorSettings' does not exist in the current context multiplay 열심히 보고 있는데요. 시작부터 이런 에러가 나와서 앞으로 나가지를 못 하고 있네요.

  • C#
  • unity
  • 게임기획
  • multiplayer
  • game-programming
양승근 댓글 1 좋아요 0 조회수 145

Summon 소환

해결됨

[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스

안녕하세요 선생님 잘 다녀오셨나요 ? ?? 😃 만들던 게임 날라가서 복습 한다 생각하고 처음부터 다시 하고 있습니다 ...... 캐릭터 소환이 안됩니다 시뮬레이터에서 소환버튼이 잘 눌려서 소환가능한데 game 창에서는 소환버튼 클릭이 안됩니다 canvas 설정이나 그런게 필요한가요 ... 시뮬에서는 잘 소환되는데 game창에서는 소환이 안됩니다 이유를 모르겠습니다;;

  • C#
  • unity
  • 게임기획
  • multiplayer
  • game-programming
anhyeokjun 댓글 2 좋아요 0 조회수 160

유니티6로 배우는 실전 멀티플레이 디펜스의 [로비생성] 편에 질문있습니다.

해결됨

[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스

이전까진 문제없이 잘 이해하고 코드도 실행되었습니다. 그런데 [ 로비생성] 강의를 보고 따라했더니 오류가 발생했습니다. Unity.Services .Lobbies.LobbyServiceException: lobby code 'BARB6QOAUYDBBMLVUPZQBE' contains an invalid character 'O' (U+004F) at index 6 ---> Unity.Services .Lobbies.Http.HttpException`1[ Unity.Services .Lobbies.Models.ErrorStatus]: (400) HTTP/1.1 400 Bad Request ...생략 ... ... 호스트는 잘 만들어지는데요, 다른 플레이어로 조인하려고 하면 저런 빨강 글씨의 오류가 발생합니다. 인터넷에 찾아보니 외국 포럼만 나오는데요, 버그같기도 하고 그러네요. 제가 고치기 힘들어서요. 혹시 중간강의에서 코드를 통째로 올려주실 수 있나요? 저 오류때문에 코드를 실행하진 못하고, 코드 따라치면서 논리만 이해하는 식으로 공부하고 있습니다. 코드를 실행하면서 게임을 돌려보는 실습까지 해보면 재밌긴 하겠지만요. 강의는 재밌게 잘 보고 있는데, 저 오류가 아쉽네요.

  • C#
  • unity
  • 게임기획
  • multiplayer
  • game-programming
배우자코딩을배우자 댓글 3 좋아요 0 조회수 269

섹션4-로비생성 작업 중(32:26)중 첫 실행시 [Vivox]: System.ArgumentException: 'server' is null or empty 오류 발생합니다.

해결됨

[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스

섹션4-로비생성 작업 중(32:26)중 첫 실행시 다음과 같은 오류가 발생합니다. [Vivox]: System.ArgumentException: 'server' is null or empty Parameter name: server UnityEngine.Logger:Log (UnityEngine.LogType,string,object) Unity.Services .Vivox.VivoxLogger:LogException (System.Exception) (at ./Library/PackageCache/ com.unity.services .vivox/Runtime/SDK/Utils/VivoxLogger.cs:16) Unity.Services .Vivox.VivoxServiceInternal:.ctor (string,string,string,string,bool,bool, Unity.Services .Authentication.Internal.IAccessToken, Unity.Services .Authentication.Internal.IPlayerId, Unity.Services .Authentication.Internal.IEnvironmentId) (at ./Library/PackageCache/ com.unity.services .vivox/Runtime/VivoxServiceInternal.cs:140) Unity.Services .Vivox.VivoxPackageInitializer:Initialize ( Unity.Services .Core.Internal.CoreRegistry) (at ./Library/PackageCache/ com.unity.services .vivox/Runtime/VivoxPackageInitializer.cs:41) Unity.Services .Core.Internal.CoreRegistryInitializer/<>c__DisplayClass3_0/<<InitializeRegistryAsync>g__InitializePackageAsync|2>d:MoveNext () (at ./Library/PackageCache/ com.unity.services .core/Runtime/Core.Internal/Registry/CoreRegistryInitializer.cs:91) System.Runtime.CompilerServices.AsyncTaskMethodBuilder:Start< Unity.Services .Core.Internal.CoreRegistryInitializer/<>c__DisplayClass3_0/<<InitializeRegistryAsync>g__InitializePackageAsync|2>d> ( Unity.Services .Core.Internal.CoreRegistryInitializer/<>c__DisplayClass3_0/<<InitializeRegistryAsync>g__InitializePackageAsync|2>d&) Unity.Services .Core.Internal.CoreRegistryInitializer/<>c__DisplayClass3_0:<InitializeRegistryAsync>g__InitializePackageAsync|2 ( Unity.Services .Core.Internal.IInitializablePackage) Unity.Services .Core.Internal.CoreRegistryInitializer/<>c__DisplayClass3_0/<<InitializeRegistryAsync>g__TryInitializePackageAsync|0>d:MoveNext () (at ./Library/PackageCache/ com.unity.services .core/Runtime/Core.Internal/Registry/CoreRegistryInitializer.cs:63) System.Runtime.CompilerServices.AsyncTaskMethodBuilder:Start< Unity.Services .Core.Internal.CoreRegistryInitializer/<>c__DisplayClass3_0/<<InitializeRegistryAsync>g__TryInitializePackageAsync|0>d> ( Unity.Services .Core.Internal.CoreRegistryInitializer/<>c__DisplayClass3_0/<<InitializeRegistryAsync>g__TryInitializePackageAsync|0>d&) Unity.Services .Core.Internal.CoreRegistryInitializer/<>c__DisplayClass3_0:<InitializeRegistryAsync>g__TryInitializePackageAsync|0 ( Unity.Services .Core.Internal.IInitializablePackage) Unity.Services .Core.Internal.CoreRegistryInitializer/<InitializeRegistryAsync>d__3:MoveNext () (at ./Library/PackageCache/ com.unity.services .core/Runtime/Core.Internal/Registry/CoreRegistryInitializer.cs:48) System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<System.Collections.Generic.List`1< Unity.Services .Core.Internal.PackageInitializationInfo>>:Start< Unity.Services .Core.Internal.CoreRegistryInitializer/<InitializeRegistryAsync>d__3> ( Unity.Services .Core.Internal.CoreRegistryInitializer/<InitializeRegistryAsync>d__3&) Unity.Services .Core.Internal.CoreRegistryInitializer:InitializeRegistryAsync () Unity.Services .Core.Internal.UnityServicesInternal/<>c__DisplayClass32_0/<<InitializeServicesAsync>g__InitializePackagesAsync|1>d:MoveNext () (at ./Library/PackageCache/ com.unity.services .core/Runtime/Core.Internal/UnityServicesInternal.cs:170) System.Runtime.CompilerServices.AsyncTaskMethodBuilder:Start< Unity.Services .Core.Internal.UnityServicesInternal/<>c__DisplayClass32_0/<<InitializeServicesAsync>g__InitializePackagesAsync|1>d> ( Unity.Services .Core.Internal.UnityServicesInternal/<>c__DisplayClass32_0/<<InitializeServicesAsync>g__InitializePackagesAsync|1>d&) Unity.Services .Core.Internal.UnityServicesInternal/<>c__DisplayClass32_0:<InitializeServicesAsync>g__InitializePackagesAsync|1 () Unity.Services .Core.Internal.UnityServicesInternal/<InitializeServicesAsync>d__32:MoveNext () (at ./Library/PackageCache/ com.unity.services .core/Runtime/Core.Internal/UnityServicesInternal.cs:151) System.Runtime.CompilerServices.AsyncTaskMethodBuilder:Start< Unity.Services .Core.Internal.UnityServicesInternal/<InitializeServicesAsync>d__32> ( Unity.Services .Core.Internal.UnityServicesInternal/<InitializeServicesAsync>d__32&) Unity.Services .Core.Internal.UnityServicesInternal:InitializeServicesAsync () Unity.Services .Core.Internal.UnityServicesInternal/<InitializeAsync>d__27:MoveNext () (at ./Library/PackageCache/ com.unity.services .core/Runtime/Core.Internal/UnityServicesInternal.cs:80) System.Runtime.CompilerServices.AsyncTaskMethodBuilder:Start< Unity.Services .Core.Internal.UnityServicesInternal/<InitializeAsync>d__27> ( Unity.Services .Core.Internal.UnityServicesInternal/<InitializeAsync>d__27&) Unity.Services .Core.Internal.UnityServicesInternal:InitializeAsync ( Unity.Services .Core.InitializationOptions) Unity.Services .Core.UnityServices/<InitializeAsync>d__21:MoveNext () (at ./Library/PackageCache/ com.unity.services .core/Runtime/Core/UnityServices.cs:128) System.Runtime.CompilerServices.AsyncTaskMethodBuilder:Start< Unity.Services .Core.UnityServices/<InitializeAsync>d__21> ( Unity.Services .Core.UnityServices/<InitializeAsync>d__21&) Unity.Services .Core.UnityServices:InitializeAsync ( Unity.Services .Core.InitializationOptions) Unity.Services .Core.UnityServices:InitializeAsync () (at ./Library/PackageCache/ com.unity.services .core/Runtime/Core/UnityServices.cs:79) NetManager/<Start>d__2:MoveNext () (at Assets/00_Scripts/Network/NetManager.cs:22) System.Runtime.CompilerServices.AsyncVoidMethodBuilder:Start<NetManager/<Start>d__2> (NetManager/<Start>d__2&) NetManager:Start () at Assets/00_Scripts/Network/NetManager.cs:22 여기 부분 코드가 await UnityServices.InitializeAsync(); 인데 어떻게 디버깅 해야 할 지를 모르겠습니다.

  • C#
  • unity
  • 게임기획
  • multiplayer
  • game-programming
prokimssam 댓글 2 좋아요 0 조회수 229

씬의 기즈모 조절

해결됨

[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스

섹션3. 캐릭터 공격 시작부분에서 씬 화면에 있는 이런 기즈모들은 어디서 조절 가능한가요?

  • C#
  • unity
  • 게임기획
  • multiplayer
  • game-programming
prokimssam 댓글 2 좋아요 0 조회수 657

애니메이션

해결됨

[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스

안녕하세요 애니메이션 작업 하실때 시간 나누어 주는거 기준이 있나요 ?? 한개당 5초씩 잡아 주는게 좋은가요 ?

  • C#
  • unity
  • 게임기획
  • multiplayer
  • game-programming
anhyeokjun 댓글 2 좋아요 0 조회수 177

Animator오류

해결됨

[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스

안녕하세요 똑같이 다 수정했는데 공격 애니가 실하지않고 사진처럼 저 오류 가나옵니다 뭐가 잘못되고있는건가요 선생님

  • C#
  • unity
  • 게임기획
  • multiplayer
  • game-programming
anhyeokjun 댓글 2 좋아요 0 조회수 208

네트워크 오브젝트 설정

해결됨

[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스

학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요 안녕하세요 선생님 Hero에게 network Object 넣었을때 hash값이 저는 0이고 선생님은 다르네요 그래서 Default network Prefabs 에 자동으로 추가되지않아서 플러스 버튼 눌러서 추가하면 정상 작동되긴하나 선생님이랑 방법이 틀려서 찝찝합니다 뭐를 실수하고있는건가요

  • C#
  • unity
  • 게임기획
  • multiplayer
  • game-programming
anhyeokjun 댓글 3 좋아요 0 조회수 186

NetworkVariable<>, ClientNetworkTransform 사용 질문

해결됨

[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스

강의를 보던 중 궁금한 점이 생겼습니다. 몬스터의 체력변경을 수동으로 ServerRpc,ClientRpc를 사용했는데, NetworkVariable<>을 사용하지 않으신 이유가 있으실까요? NetworkVariable<int> 같은 형식으로 해당 변수를 선언하면 그 변수가 알아서 다른 클라이언트에게 전파되어 동기화 된다고 배웠습니다. ugs 패키지를 임포트하고나면 오브젝트에 ClientNetworkTransform 컴포넌트를 부착할 수 있더라구요. 이걸 추가하면 그 오브젝트의 TRS(이동,회전,크기) 모두 자동으로 동기화를 해주는 듯 하던데 이것을 사용하지 않으신 이유가 있으실까요? 처음 배우는 입장에서 동기화를 신경쓰기가 제일 까다로운 부분인데 이 컴포넌트를 사용하면 적어도 트랜스폼에 한정해서는 동기화에서 도움을 받을 수 있는 것처럼 보입니다.

  • C#
  • unity
  • 게임기획
  • multiplayer
  • game-programming
신승혁 댓글 2 좋아요 0 조회수 206

소환 위치

해결됨

[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스

안녕하세요 선생님 혹시 나중에 한 자리에 같은 속성끼리 3마리 씩 소환예정인가요?? 아니면 한자리에 한마리만 스폰가능하나요

  • C#
  • unity
  • 게임기획
  • multiplayer
  • game-programming
anhyeokjun 댓글 2 좋아요 0 조회수 224

인기 태그

인프런 TOP Writers

주간 인기글