묻고 답해요
144만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
GameRoom 질문드립니다.
안녕하세요. 강의 잘듣고있습니다.! GameRoom을 하나의 스레드로 jobqueue를 사용해서 공유자원을 관리 하면 lock에서는 자유롭지만 하나의 스레드인 만큼 많은 처리를 해야할 경우 딜레이가 생길수도 있을거라고 생각하는데 lock을 타이트하게 거는 방법보다 하나의 스레드에서 처리하는게 속도가 더 빠른가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
NavMeshAgent컴포넌트를 빼면 플레이어가 벽에서 어색하지 않나요?
NavMeshAgent의 Move함수를 사용하지 않는 이동 로직을 사용하게 되면 벽에 닿아서 움직을 때 슬라이딩을 하지 않아 어색한 부분이 있는데 이 부분도 같이 해결할 수 있는 방법이 있을까요?
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + T2)
DataManager 질문
안녕하세요. 제가 인터페이스를 활용하는 방법을 정확히 몰라서 질문 드립니다.DataManager에서 아래 ILoader라는 인터페이스를 통해 MakeDict함수를 정의한 이유가 따로 있나요?public interface ILoader<Key, Value>{ Dictionary<Key, Value> MakeDict();}보통 어떤 경우에 인터페이스를 사용하시는지도 알고 싶습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
System.InvalidOperationException 이러한 오류가 나옵니다.
System.InvalidOperationException: 'The ThreadLocal object is not tracking values. To use the Values property, use a ThreadLocal constructor that accepts the trackAllValues parameter and set the parameter to true.' 코드를 작성했는데 이러한 오류가 나옵니다.제가 작성한 코드에 오타를 뒤져봐도 찾을 수가 없습니다.혹시 어떠한 경우에 이런 오류가 생기나요 100% 로 오류가 나옵니다.public static ThreadLocal<SendBuffer> CurrentBuffer = new ThreadLocal<SendBuffer>( () => { return new SendBuffer(ChunkSize); }, trackAllValues: true); 찾아보니 스레드 로컬 커런트 버퍼를 만들 때 이렇게 해주면 오류가 사라지긴 합니다.왜 이런 문제가 발생하는 건가요?
-
미해결따라하면서 배우는 고박사의 2D 플랫포머 게임 제작
적에게 닿은상태로 있을때
적에게 닿고 체력이 깎인다음 닿은상태를 유지하면 체력이 깎이지 않습니다 닿은상태에서 벗어난뒤 다시 닿으면 체력이 깎이지만 어색하다고 생각됩니다 적에게 닿은상태를 유지해도 무적시간이 끝난뒤에 다시 피격되도록 하는방법이 없을까 궁금합니다 EnemyCollider 에서 OnTriggerEnter2D 로 체력이 깎이도록 되어있는데 어떻게 하면 좋을까요
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
3D 체력바의 Canvas가 같이 보이는 현상이 있습니다.
캔버스의 설정은 영상을 보고 똑같이 따라했고 설정도 똑같이 했는데 이런 현상이 있습니다. 답변 주시면 감사하겠습니다!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
코드 중간중간마다 GetComponent<>로 컴포넌트 가져오는 부분 질문입니다.
저의 얕은 지식으로는 GetComponent<>가 비교적 무거운 작업으로 알고 있습니다. 이 영상에서 보면 업데이트문에서 계속 GetComponent<Collider>로 콜라이더 컴포넌트를 가져오게끔 코딩하셨는데, 저였으면 전역변수로Coliider parentCollider; parentCollider= parent.GetComponent<Collider>();Vector3.up * (parentCollider.bounds); 이런식으로 했을거 같거든요?전 항상 배울 때 스탠스가 "아 저분이 저렇게 코딩한 건 다 이유가 있겠지? 내 코딩은 뭔가 비효율적일거야" 하고 저를 낮추고 가는 경향이 있거든요.혹시 저렇게 하신 특별한 이유가 있으셨는지 궁금합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
패치는 어떻게해야되나요?
안녕하세요 강의 너무 잘듣고있습니다.!만약 windows로 배포를 하게 된다면 패치가 됐는지 어떻게 판단해서 unity exe를 windows에 update 할 수 있나요?
-
미해결[실전 게임 코드 리뷰] 유니티 캐주얼 게임 (엘리스팡)
어드레서블을 사용할 때 UI에 들어가는 스프라이트들은 안올려도 괜찮은가요?
에셋 번들을 사용할 때 UI 프리팹을 에셋 번들에 업로드 해두어도 거기에 사용된 스프라이트들을 안올리면 이미지들이 전부 하얀 박스로 나와서 이것들을 전부 에셋 번들에 업로드를 해주었었는데 해당 프로젝트에 어드레서블을 보니 따로 스프라이트를 올려두진 않았더라구요. 이렇게 사용 해도 딱히 문제가 없어서 이렇게 하신건가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
DontDestroyOnLoad 해제관련 질문입니다!
DontDestroyOnLoad 상태가 아닌 위쪽에 있는 오브젝트에 한번이라도 붙었다가 나오면 DontDestroyOnLoad 상태가 해제된다고 하셨는데 어떤원리인지 알수있을까요?
-
해결됨두고두고 써먹는 유니티 VR
폭탄 질문!
혹시 폭탄의 기능은 정상 작동하나(몹 처치 드롭 후 폭발)한번 그랩 후 드롭하면 다시 재생성이 안됩니다!어디를 확인하여야 하나요!
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + T2)
BroadcastEvent 관련
BroadcastEvent 관련해서, 사실상 어떤 이벤트가 발생할 때마다 거의 모든 구독자들이 호출되는 상황인데, 이렇게 되면 코드 작성 당시에는 편할지 몰라도 너무 많은 계산 역량을 낭비하게 되는 게 아닌지 궁금합니다. 아니면 어차피 대부분의 호출은 맨 처음 if문(enum 타입 체크)에서 바로 종료되니 생각보다 부하가 없는건가요?
-
해결됨[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
스탯 관련 질문입니다.
강의를 보면 스킬 시스템 에디터에서 추가할 스탯을 직접 하나씩 추가해서 해당 스탯을 원하는 엔티티에 부여하는 방식인 것 같은데요.강의에서는 모두 같은 스탯을 사용해 Hp를 하나로 공유했지만, 보통 게임들에서는 적들마다 스탯이 다 다르잖아요??어떤 적은 MaxHp가 높고 이동속도가 느린 대신, 어떤 적은 MaxHp가 낮고 이동속도가 빠르다던가 하는 식으로요.그러면 이 스킬시스템의 스탯을 사용하려면 Hp, 이동속도 등등 여러 스탯들을 적들마다 다 만들어야 하는건데 그러면 데이터끼리 비교하려면 스탯을 하나하나 클릭해보며 확인해야하니까 비교하기가 힘들어 레벨 디자인하기가 쉽지 않겠다는 생각이 들어서요.그러면 굳이 스탯까지 스크립터블오브젝트로 만들어서 모듈식으로 만들 필요성이 있는지 잘 모르겠어서 질문드려요.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
소캣 통신 데이터 유실 궁굽합니다!
안녕하십니까. 강의너무잘 듣고있습니다. 서버를 공부하면서 데이터가 유실되면 어떤 방식으로 진행해야하는지 궁굼해서 문의드립니다.tcp/ip특성상 안전성이 높아서 유실이 안되는 걸로 알고있는데 유실될 가능 성도있나요?데이터 유실이된다면 어떻게 처리해야하나요?데이터 유실이 실무에서도 일어나나요?일반적으로 데이터 유실이란게 tcp/ip에서 데이터가 끊어져서 들어오는걸 말하는 건가요? 만약 데이터 유실처리 방법으로 유실 유무를 판단하여 다시 서버에서 요청을 하는 로직을 만든다면 일반적으로 재전송 패킷을 따로만드나요?
-
해결됨두고두고 써먹는 유니티 VR
안녕하세요
4-2 강의를 보고 해보았는데 그랩이 안되어요.동일 버전 유니티이고 그래서 완성본을 해보았는데 정상적으로 작동하였습니다 해당 완성본에서 패키지 매니저의 XR Toolkit을 업데이트하니 완성본에서도 그랩이 안되게 바뀌었어요연습하고 있는 프로젝트의 사진을 첨부합니다.. 혹시 잘못되어 있는 부분이 있을까요?
-
해결됨두고두고 써먹는 유니티 VR
컨트롤러 이동 질문
혹시 컨트롤러를 컴퓨터 상에서 시뮬레이터로 이동시킬 경우회전 토글 등은 잘되나 컨트롤러의 위치가 이동이 안됩니다.마우스 휠로 할경우 컨트롤러의 로테이션 값만 변경이 됩니다.... 혹시 제가 잘못하는 것 일수도 있으니 왼손 컨트롤러 이동시 쉬프트 키를 누른 상태로 asdw를 누르거나 휠 위아래로 움직이는 것아닌가요?
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + T2)
게임제작 컴퓨터 사양 질문
안녕하세요 강의 보고 열심히 공부하고있씁니다 우르르 용사단 이나 지금 저희가 하고 있는 프로젝트 스케일 정도는 컴퓨터사양 대충 어느정도 가 편안하게 렉없이 제작가능할까여 다른게임 비교하면 2D게임 탕탕 특공대 정도 스케일 정도요컴퓨터 구매할때 참고 하고 싶어서요
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Managers 경고가 왜 뜨는지 잘 모르겠습니다.
내용은 아래 입니다.You are trying to create a MonoBehaviour using the 'new' keyword. This is not allowed. MonoBehaviours can only be added using AddComponent(). Alternatively, your script can inherit from ScriptableObject or no base class at all UnityEngine.MonoBehaviour:.ctor () SoundManager:.ctor () (at Assets/Scripts/Managers/SoundManager.cs:9) Managers:.ctor () (at Assets/Scripts/Managers/Managers.cs:14) UnityEngine.GameObject:AddComponent<Managers> () Managers:Init () (at Assets/Scripts/Managers/Managers.cs:43) Managers:get_Instance () (at Assets/Scripts/Managers/Managers.cs:9) Managers:get_Resource () (at Assets/Scripts/Managers/Managers.cs:18) BaseScene:Init () (at Assets/Scripts/Scenes/BaseScene.cs:19) GameScene:Init () (at Assets/Scripts/Scenes/GameScene.cs:11) BaseScene:Awake () (at Assets/Scripts/Scenes/BaseScene.cs:12)
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + T2)
Managers.cs 질문
public static DataManager Data { get { return Instance?._data; }}와같은 프로퍼티들이 스태틱으로 되어있던데 스태틱이어야하는 이유가 따로 있을까요?그냥 외부에서 호출 할때 Manager.Instance.DataManager로 호출해도 되는데 이렇게 하신 의도가 궁금합니다. 또 위의 Data 프로퍼티의 정의에 보면 return _data가 아니라Instance?._data로 하셨는데 이건 C# 7.0문법인 ?을 사용하려고 그렇게 하신건가요?
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + T2)
1주차 스크립트 질문입니다
1. 강의를 듣고 선언된 두 딕셔너리의 용도라고 주석을 달았는데 맞을까요?2. LoadAllAsync 메서드- 주어진 label에 대해 모든 리소스를 비동기적으로 로드하고, 로드 상태를 콜백을 통해 알려주는 기능 수행LoadAsync 메서드 - key에 맞는 개별적인 리소스 로드 이렇게 해석했는데 맞나요??3.동기 작업의 결과 - opforeach문의 내용 - 스프라이트만 따로(우선적으로) PrimaryKey로 체크를 하고 로드 [사유 : 폰 이슈] else문에서 그외의 스프라이트가 아닌 것들을 로드