묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
일시정지 질문
PauseGame 함수에서 쓰이는 GameManager는 어디에서 가져오는 건가요?강의에서 만든 스크립트인가요? 제가 놓친 건지...
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
스테이지 로드 다른 방법 질문
InGame 씬에서 프리펩된 스테이지들을 불러오셨는데스테이지 마다 씬을 만들어서 씬을 불러오는 방식은 어떤가요?스테이지가 10개 정도 된다면 어떤 방식이 더 좋을까요?
-
해결됨[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
CPU를 과도하게 점유하면서 멈추는 현상
안녕하세요 쓰레드 배분 강의 소스 코드부터 현재 강의까지, 서버가 정상적으로 동작하지 않는 현상이 있어 확인 요청드립니다.DBThreadJob 메서드에서 _executeQueue가 비어 있을 때 루프가 무한히 반복되면서 CPU를 과도하게 점유하는 문제가 있는 것 같습니다. 저는 macOS에서 서버를 실행 중인데, Windows와의 CPU 스케줄링 차이로 인해 발생하는 문제로 추측됩니다. 확인해주시면 감사하겠습니다!
-
미해결[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스
애니메이션
안녕하세요 애니메이션 작업 하실때 시간 나누어 주는거 기준이 있나요 ?? 한개당 5초씩 잡아 주는게 좋은가요 ?
-
해결됨두고두고 써먹는 유니티 VR
xr interaction toolkit를 이용하여 다른 게임을 만드려고 하는데 문제가 있습니다!
현재의 게임과는 다르게 자유이동을 사용하여 게임을 만들어보고 싶은데 자유이동을 사용하면 벽을 뚫고 지나가는 문제를 해결할 방법을 모르겠습니다. 실질적으로 움직이는 main camera에 콜라이더와 rigid body를 넣어 시도해 보기도 하고 임시로 오브젝트를 넣어서 충돌을 유도하기도 하였으나 이 방법 모두 여전히 벽을 통해 이동하면 벽을 뚫고 이동하게 됨니다. 해외쪽을 찾아봐도 벽에 hmd가 물리적으로 들어갔을때 화면을 까맣게 가려주는 기능만 찾을 수 있었습니다. 이런경우 어떻게 해결할수있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
.net core가 중단되었다고 하네요..
.net core가 중단되었다고 하네요..
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
강의에서 만드신 코드들에 대한 짧은 질문
안녕하세요.본인은 게임 클라이언트 개발자를 희망하지만,인디게임 수준의 서버는 직접 만들기 위해본 강의를 3회독 하는 중입니다. 강의해 주신 코드들은예를들면 Listener 클래스를 직접 만드셨는데,TcpListener이란 클래스가 있더라고요.대형 게임 회사는 자체적으로 서버를 구축하니까Listener클래스를 비롯한 모든 서버를 최대한 하드코딩 하는건가요?TcpListener같이 구현되어있는 것들을 사용하지 않는 이유가 있을까요?물론 Listener 클래스를 직접 만들면서 지식이 깊어지고 그런건 매우 좋습니다. 하지만 제가 배우고 작성하는 클래스들의 완성의 수준을 가늠잡을 수 없어 불안합니다. 그래서 일부 클래스들은 TcpListener 같이 이미 나와있는 클래스들을 섞어가며 사용해보고 싶은데 이런 부분에서 강사님 의견이 궁금합니다.
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
파이어베이스 유저 저장 주기가 고민되요.
첫번째 질문..유저데이터 저장을 위해서 주기적으로 파이어베이스 리얼타임 데이터베이스에쓰기로 저장을 해주고 싶은데요.. 요즘 파이어 베이스에 관심을 가지고 이래저래 알아보고있는데1분주기로 데이터를 리얼타임데이터에 쓰기(저장)을 하게되면 유저가 적을경우는 괜찮을수있겠지만, 왠지.... 많은 유저가 접속을 한 상황에서그 유저들의 데이터가 1분마다 저장이 계속 된다면 파이어베이스 서버이용요금?? 도 엄청날것같은데일정시간마다 주기적으로 파베에 저장되게 해도 괜찮을까요?한명 유저당 파베에 아무리 자주 저장하더라도 파베 사용량 데이터량 변화는 크게 없는것인지...아직 파베에 대한 지식과 파베 요금 관련해서 아무런 개념이 없어서인지 잘 모르겠네요 ㅜㅜ ----------------------------------------------------------------------------------------두번째 질문..게임을 빌드 한 후 APK 파일을 앱플레이어(녹스, LD플레이어)에 설치후 플레이 하다가(정상적인 게임종료를 누르는게 아닌, 상단탭의 x버튼을 눌러서) 강제로 게임을 꺼버리는경우 OnDestroy 함수가 제대로 호출이 안되는건지.. 게임 데이터를 저장하지않은채로게임이 꺼지더라구요.(혹시나해서, OnApplicationQuit() 함수와 OnDestroy() 함수 내용에도 게임이 꺼지거나파괴될때 '파베에 쓰기'가 되게 코드를 짰을때, 정상적으로 백버튼을 눌러서 게임종료하겠다는버튼을 누르면 저장이 잘됬는데, 갑자기 또는 강제로 게임이 의도치 않게 게임이 꺼지게되면 데이터가 저장이 안되던데... 혹시 좋은 방법이 있을까요?? )
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + T2)
첫 강의 manager 가 재생이 안됩니다.
첫 강의 manager 가 재생이 안됩니다.
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + T2)
T2는 어떻게된걸까요?
T2가 지금 멈춰있는것같은데..어떻게 진행 되는걸까요?ㅜㅜ
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + T2)
9주차 강의 'Stage 분할' 이 로딩만 뜨고 재생되지 않습니다
전후 강의 동영상은 정상적으로 재생이 되는데, 이 강의는 로딩만 계속되고 화면이 나오지 않네요. 혹시 제가 뭐 세팅을 변경해야 하는 것이 있으면 알려주시기 바랍니다.맥/윈도우 크롬 브라우저를 이용해서 수강 중입니다.가능하다면 빠른 해결이 되었으면 합니다.
-
해결됨[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스
Animator오류
안녕하세요 똑같이 다 수정했는데 공격 애니가 실하지않고 사진처럼 저 오류 가나옵니다 뭐가 잘못되고있는건가요 선생님
-
해결됨[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
Selct에 대해서 질문드립니다.
안녕하세요 강사님 궁금한게 있어서 질문 드립니다.제가 구현하고 싶은 부분은 리그오브 레전드의 스마트키 기능과 같은 부분입니다.제가 이해한 것이 맞다면 강의 안에서는Select로 비동기적 처리를 할 때 추가 입력을고정된 입력값(마우스 클릭)을 받아서 Select의 비동기적 처리를 구현한것으로 이해했습니다.만약 제가 롤의 SmartKey 기능과 같은 눌렀다가 키를 뗄때(스킬이 등록된 키마다 받아야할 입력이 달라짐)의 입력으로 비동기적 처리를 구현하고 싶다면 어떤식으로 구현해야 할까요?제가 고민해본 방법은 다음과 같습니다.Skill에 ReleaseInput()이라는 함수를 만든다.그리고 TargetSelectionAction에 똑같은 이름의 ReleaseInput() 함수를 만든다.ReleaseInput() 함수는 SkillSlot의 바인딩된 키 값을 기준으로 키를 뗄 때 호출된다.Skill의 RealeseInput()호출되면 Skill -> TargetSearch -> TargetSelectionAction 의 순서로 TargetSelection에 접근하여 TargetSelection의 추가로 만든releaseInput()함수를 호출한다.TargetSelectionAction에 releaseInputOccur이벤트를 만들고 ReleaseInput()함수로 이 이벤트를 Invoke해준다."키를 뗌" 액션을 Select의 비동기 방식에서 추가 입력값으로 이용하고 싶다면 releaseInputOccur이벤트에 추가적인 함수를 구독하여 기능을 구현한다.이런 식으로 생각해봤는데. 제가 아직 이 TargetSearcher 시스템에 이해도가 부족해서, 구현해주신 TargetSearcher 의 흐름을 망치지 않고 추가 기능을 만든 것 인지 아직 헷갈립니다.그래서 강사님께서 SmartKey방식을 구현하신다면 어떤 방식으로 구현하실지 궁금해서 여쭤봅니다.
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + T2)
강의 완료 시기
강의 완료시기가 언제쯤인지 알 수 있을까요?
-
해결됨[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스
네트워크 오브젝트 설정
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요 안녕하세요 선생님 Hero에게 network Object 넣었을때 hash값이 저는 0이고 선생님은 다르네요 그래서 Default network Prefabs 에 자동으로 추가되지않아서플러스 버튼 눌러서 추가하면 정상 작동되긴하나 선생님이랑 방법이 틀려서 찝찝합니다 뭐를 실수하고있는건가요
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
싱글턴 적용된 클래스가 현재 씬을 재로드하면 이상해요
싱글턴이 적용된 클래스는 사라지지 않고또 한 개만 존재해야 할 텐데가끔식 씬을 재로드시 한 개가 더 생깁니다
-
미해결유니티 2D 로그라이크 게임 만들기 [한글자막]
플레이에는 문제가 없는데 빌드에서 문제가 계속해서 발생하네요.
Android 플랫폼에서 빌드하려고 하는데 아무리 해도 해결이 안되는 오류가 발생하네요. Building Library/Bee/artifacts/Android/d8kzr/libil2cpp.so failed with output:ld.lld: error: undefined symbol: JS_FileSystem_Sync>>> referenced by Assembly-CSharp.cpp:14373 (Library/Bee/artifacts/Android/il2cppOutput/cpp/Assembly-CSharp.cpp:14373)>>> Library/Bee/artifacts/Android/d8kzr/gqh0me0k2d9s.o:(GameManager_JS_FileSystem_Sync_m246A574BB47ADA18D3D17EE297B47F03B281F5C3)>>> referenced by Assembly-CSharp.cpp:16220 (Library/Bee/artifacts/Android/il2cppOutput/cpp/Assembly-CSharp.cpp:16220)>>> Library/Bee/artifacts/Android/d8kzr/gqh0me0k2d9s.o:(MainMenu_JS_FileSystem_Sync_m6882592881D0992397C77FED445CBB536B836232)clang++: [0;1;31merror: [0m[1mlinker command failed with exit code 1 (use -v to see invocation)[0mUnityEditor.BuildPlayerWindow:BuildPlayerAndRun () (at /Users/bokken/build/output/unity/unity/Editor/Mono/BuildPlayerWindow.cs:200)Chatgpt 한테 물어보고 제시한 해결책 전부 다 해봤는데도 안됩니다. 부탁드립니다- 빈 프로젝트에 파일 추가하면서 해봤는데 그 곳에서는 빌드가 잘됌- WebGL 관련 함수 사용 안함- Library 지우고 다시 해봤음- Android SDK & NDK Tools 있음
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
UseInAction에 대해서 질문드립니다.
제가 TargetSelectionTimingOption을 useInAction으로 했는데 SpawnSkillObjectAction클래스의 Apply부분에서 에러가 발생합니다.public override void Apply(Skill skill){foreach (var targetPosition in skill.TargetPositions) // 이 부분에서 에러 발생{var skillObject = GameObject.Instantiate(skillObjectPrefab).GetComponent<SkillObject>();skillObject.transform.position = targetPosition + (Vector3.up * 0.001f);skillObject.Setup(skill, targetSearcherForSkillObject, duration, applyCount, objectScale);}} 에러는 다음 오류가 발생합니다.NullReferenceException: Object reference not set to an instance of an objectSpawnSkillObjectAction.Apply (Skill skill) (at Assets/Scripts/Core/Skill/Action/SpawnSkillObjectAction.cs:25)Skill.Apply (System.Boolean isConsumeApplyCount) (at Assets/Scripts/Core/Skill/Skill.cs:643)InActionState.Apply () (at Assets/Scripts/Core/Skill/StateMachine/State/InActionState.cs:75)InActionState.Enter () (at Assets/Scripts/Core/Skill/StateMachine/State/InActionState.cs:23)StateMachine`1[EntityType].ChangeState (StateMachine`1+StateData[EntityType] newStateData) (at Assets/Scripts/Core/StateMachine/StateMachine.cs:88)StateMachine`1[EntityType].ChangeState (State`1[EntityType] newState, System.Int32 layer) (at Assets/Scripts/Core/StateMachine/StateMachine.cs:99)StateMachine`1[EntityType].TryTransition (System.Collections.Generic.IReadOnlyList`1[T] transtions, System.Int32 layer) (at Assets/Scripts/Core/StateMachine/StateMachine.cs:117)StateMachine`1[EntityType].Update () (at Assets/Scripts/Core/StateMachine/StateMachine.cs:135)Skill.Update () (at Assets/Scripts/Core/Skill/Skill.cs:396)SkillSystem.UpdateSkills () (at Assets/Scripts/Core/Skill/SkillSystem.cs:165)SkillSystem.Update () (at Assets/Scripts/Core/Skill/SkillSystem.cs:76)
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
스핀락이 올바르게 작동하지 않는 것 같습니다.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace ServerCore { class SpinLock { volatile int _locked = 0; // true: 잠겨있음, false: 잠겨있지 않음 public void Acquire() { while(true) { ////Interlocked.Exchange의 반환값은 원래값이다. //int original = Interlocked.Exchange(ref _locked, 1); ////original == 0이면 잠금 성공, original == 1이면 잠금 실패 //if (original == 0) //{ // //내꺼 // break; //} //CAS (Compare-And-Swap) 함수라고 한다. int expected = 0; int desired = 1; if(Interlocked.CompareExchange(ref _locked, desired, expected) == expected) { break; } } } public void Release() { //잠김을 푼다. _locked = 0; } } class Program { static int _num = 0; static SpinLock _lock = new SpinLock(); static void Thread_1() { for (int i = 0; i < 1000000; i++) { _lock.Acquire(); _num++; _lock.Release(); } } static void Thread_2() { for (int i = 0; i < 1000000; i++) { _lock.Acquire(); _num--; _lock.Release(); } } static void Main(string[] args) { Task task = new Task(Thread_1); Task task2 = new Task(Thread_2); task.Start(); task2.Start(); task.Wait(); Console.WriteLine(_num); } } } 다음과 같이 작업 후 디버깅해보았는데 결과값이 때로는 맛이 간 값을 출력합니다.제시된 코드와 같은 것 같은데 이유를 모르겠습니다!그리고 다음과 같은 상황일 때 어떻게 브레이크포인트를 잡아서 버그수정을 시도해야 할 지 감이 안잡힙니다ㅠㅠ
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
Instantiate 관련 질문 드립니다
GameObject Instantiate(string key, Transform parent = null, bool pooling = false) 함수에서 GameObject prefab = Load<GameObject>($"{key}"); 이 부분에 Load<GameObject>(key)가 계속 null이 반환 되는데 왜 그런걸까요 나머진 전부 똑같이 했고 어드레서블에 넣은 프리팹만 제가 아무 오브젝트나 이름만 바꿔서 프리팹으로 만든 뒤에 넣은거 말곤 차이가 없는데 이게 차이가 있는걸까요