묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결밑바닥부터 시작하는 왕초보 유니티 2D 게임제작
이수증 관려 문의 드립니다.
강의 추가 예정 때문에 이수증을 발급 받을 수 없습니다.제가 이수증이 필요해서 그런데 강의 추가는 언제 쯤 가능한가요?아니면 현재까지 내용을 이수증을 받을 수 있을까요?
-
미해결새싹부터 시작하는 Unity 게임 개발
애니메이션 점프 적용되지 않는 문제
새싹부터 시작하는 Unity 게임 개발 섹션3 2D게임 애니메이션강의 시청 중 점프 애니메이션이 적용되지 않습니다. 유니티에서 transition은 아래와 같이 설정한 상태이고 코드는 강의와 똑같이 작성한 상태입니다.if (Input.GetKeyDown(KeyCode.Space) && isJump == false) { anim.SetTrigger("isJUMP"); isJump = true; anim.SetBool("isIDLE", false); anim.SetBool("isRUN", false); rigidbody.velocity = new Vector2(rigidbody.velocity.x, jumpPower); } if(rigidbody.velocity.y == 0f ) { isJump = false; } JUMP 애니메이션만 다시 재생해보면 점프하는 동작이 나오긴 합니다. 강의를 듣던 중GetComponent<SpriteRenderer>().sprite = JumpSprite;이런 코드가 있던데 저는 작성하지 않은 상태입니다혹시 이 코드가 점프가 안 되는 이유 중 하나인지 질문 남깁니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
따로 쓰레드를 만들지 않았는데 멀티쓰레딩 하는 이유
지금 Command 패턴강의 까지 수강중인데,멀티쓰레드 파트에서 배웠던 락 처리는Thread t 이렇게 만들고 시작해야멀티쓰레드 환경으로 변하는걸로 알고있습니다 하지만 지금까지 보면멀티쓰레드를 고려하여 락을 계속 추가해주고 있는데요args.Completed += new EventHandler<SocketAsyncEventArgs>(OnAcceptCompleted)이것때문에 다른 쓰레드들이 풀리기 시작한건가요?궁금합니다
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
uphandcast만 트리거를 쓰는건지 궁금합니다.
// 인자로 받은 animatorParameter가 bool Type이면 owner의 StateMachine으로 인자로 받은 command를 보냄// Transition이 Command를 받아들였으면, State로 UsingSKill Message와 Skill 정보를 보냄if (animatorParameter.type == AnimatorParameterType.Bool && ownerStateMachine.ExecuteCommand(command)) ownerStateMachine.SendMessage(EntityStateMessage.UsingSkill, (skill, animatorParameter));// 인자로 받은 animatorParameter가 trigger Type이면 행동에 제약을 주지 않을 것이므로 ToDefaultState Command를 보내고// Transition이 받아들였는지와 상관없이, State로 UsingSkill Message와 skill 정보를 보냄else if (animatorParameter.type == AnimatorParameterType.Trigger){ ownerStateMachine.ExecuteCommand(EntityStateCommand.ToDefaultState); ownerStateMachine.SendMessage(EntityStateMessage.UsingSkill, (skill, animatorParameter));} 왜 Uphandcast만 트리거 타입이 되는지와 행동에 제약을 받지않는건지 궁금합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
몬스터 AI 관련
강의 잘 듣고 있습니다.선생님 강의를 듣기 이전에 독학으로 클라이언트를 구축하다가 몬스터별로 각기 다른 ai를 만들고 싶어 찾다보니 행동 트리(Behaviour Tree)에 대해 알게되어 유니티 에셋스토어에서 판매하는Behaviour Designer 를 구매하여 사용하게 되었습니다. 대부분의 온라인 게임에서는 몬스터별로 패턴이 거의 비슷하지만 혹시 다양한 몬스터 ai패턴을 가지고 있는 게임회사에서는 해당 에셋을 사용하는 곳이 많은지자체적으로 구현한 툴을 사용하여 몬스터 ai를 구축하는지 궁금합니다
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Session#2, 3의 SendQueue의 Lock에 관한 질문
Send에 관한 비동기 처리에서 Send 메소드에서 Queue에 넣어주고, RegisterSend에서 Deque 하는데,Send 메소드에서는 Enqueue하면서 lock을 걸어주는데, RegisterSend에서 Dequeue 할 때는 lock이 없어서요.Enqueue 하는 동안 Dequeue 한다거나, Dequeue 하는 동안 Enqueue 하는 등의 문제는 발생하지 않나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
SpawningPool 클래스에서 몬스터 생성 시 유니티엔진이 멈춥니다.
while (_reserveCount + monsterCount < keepMonsterCount){ StartCoroutine(ReserveSpawn());}업데이트에서 해당 while문이 재생되는 시점에 게임이 멈추는것 같습니다. 주석처리하면 정상적으로 게임이 진행되는것 보면 해당 부분에서 문제인것 같습니다. 강의를 듣는동안에는 정상적으로 되었는데 지금은 안되네요ㅠ별도로 수정한 부분은 없습니다.
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
몬스터 AI
안녕하세요 강의 잘 보고 있습니다.현재 3d 모바일 게임을 만들고 있습니다 가상 조이스틱을 이용해 플레이어를 이동시키고 있구요현재 몬스터 AI를 구현하기 위해 A*를 이용해서 PathFinding을 구현중에 있습니다 구현을 위해 맵은 1X1단위로 위에서 아래로 Ray를 쏴서 맵 정보를 저장해 놓은 상태입니다. 이런 상황에서 만약 몬스터는 (2, 0, 2)좌표에 Target은 (5.5, 0, 5.5) 좌표에 있다면 절대 Target을 찾을 수 없겠다 싶어 거리가 1이하이면 찾은걸로 가정을 하려 했습니다 그런데 그 사이에 장애물이 있을 수도 있고 별의 별 상황이 있겠다 싶어 이게 맞는건지 의문이 듭니다 이런 그리드 단위로 움직이지 않는 게임에선 어떻게 Finding을 해야 좋을까요?
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
코드오류 (버전문제인지 궁금합니다)
유니티 버전을 22.3.6f 로 하라고 하셨었는데 lts버전이 아니여서 22.3.47f 로했는데그래서 그런건지 여기도 이렇게 글씨에 이렇게 그어져있고 자꾸 오류가 뜨네요 ㅠ#pragma warning disable CS0618 // 형식 또는 멤버는 사용되지 않습니다. 이렇게 넣어서 오류 문구는 안뜨는데 상관없는 걸까요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
체력바 관련
강의 잘 보고 있습니다 ㅎㅎ 체력바를 깎는 코드를 Update문에서 실행하고 있는데매 프레임마다 깎지 않고 action같은걸로 데미지가 들어왔을 경우에만 체력바가 깎이는 것으로 하면 어떨까 생각이 들었습니다. 현업에서는 어떻게 하시는지 궁금합니다.
-
미해결[Unity] 함께 만들어가는 방치형 게임 개발
이 오류가 계속뜨는데 어떻게 잡아야할지 모르겠습니다.
Parent of RectTransform is being set with parent property. Consider using the SetParent method instead, with the worldPositionStays argument set to false. This will retain local orientation and scale rather than world orientation and scale, which can prevent common UI scaling issues.UnityEngine.Transform:set_parent (UnityEngine.Transform)Object_Pool:Return (UnityEngine.GameObject,System.Action`1<UnityEngine.GameObject>) (at Assets/00_Scripts/Manager/Pool_Mng.cs:48)Pool_Mng:Add_Queue (string) (at Assets/00_Scripts/Manager/Pool_Mng.cs:111)Pool_Mng:Pooling_OBJ (string) (at Assets/00_Scripts/Manager/Pool_Mng.cs:83)Monster:GetDamage (double) (at Assets/00_Scripts/Monster/Monster.cs:62)Bullet:Update () (at Assets/00_Scripts/Bullet.cs:71)공격할 때 마다 계속 쌓이네요 ㅠ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
TLS 관련하여 질문 드립니다.
TLS를 사용하면 공용 공간에 있는 데이터를 최대한 많이 자신의 쓰레드로 가져와서 각각 처리하고 다시 돌려주는걸로 이해를 했는데 그럼 나중에 각각의 쓰레드에서 처리하고 난 결과가 서로 상충되는 경우가 나타날수도 있지 않나요?아니면 한명씩 싱글 쓰레드로 처리하는데 가져오는 데이터 양이 많아져서 처리속도가 빨라지는것이라고 이해해야 할까요? 1Rookiss2021.03.15데이터를 갖고 간다는게 의존성이 서로 묶여 있는 데이터를각자의 TLS로 갖고 가라는 것이 아니고독립적으로 사용할 수 있는 (Buffer라거나) 데이터를 갖고 가는 것이라 상관없습니다.그리고 애당초 TLS에 자신만 사용할 객체를 할당할 수도 있구요.위 글에 대하여 이렇게 답변을 주셨습니다.이에 대하여 궁금한 점이 독립적으로 사용할 수 있는 데이터를 갖고 가서 처리하는 것이라면 TLS를 사용하지 않고도 처리하면 되는 것이 아닌가요?위 과정에서 처리한 정보들이 계속해서 저장되어야 하기 때문에 TLS가 의미가 있는 것인지.. lock을 걸어 처리하고 있는 복잡한 일(의존성 있는 데이터?)을 가져와서 각자 처리한다는 내용이 잘 이해가 안되네요 ㅠㅠ
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
기능 구현 질문드립니다.
강의 영상 알차게 잘 보고 있습니다!출시까지 목표로 두고 있는 프로젝트라고 하셔서 캐릭터 장비요소는 필수라 생각되어 혹시나 장비드랍 및 장착기능 구현이 업데이트 내용에 있나 궁금해서 여쭤봅니다.1.장비아이템도 드랍 및 가챠뽑기방식2.장비아이템이 추가된다면 같은 장비라도 옵션이 다르게 보여지고 인벤토리로 저장되는 방식으로 구현되는지 궁금합니다. (예시 : 디아블로 아이템 옵션수치 및 옵션랜덤 방식)
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
(Interlocked) Race condition에서 number가 0이 되는 경우가 너무 신기합니다.
Interlocked 강의 부분에서 전역 변수 number = 0에 대해Thread 1은 for문으로 number++Thread 2는 for문으로 number-- 여기서 Thread 두 개가 race condition으로 인해 반복횟수가 많아지면 number를 가져오고, 연산하고 대입하는 과정에서 원자성이 보장되지 않아 number가 변한다고 설명하셨는데요. 오히려 그러면 for문에서 1만번의 반복 과정에서는 number = 0 으로 제대로 나타났는데, 그게 이해가 되지 않습니다. 반복 과정에서도 각 Thread가 race condition이기 때문에 number가 변동할 것 같은데, 제 컴퓨터로 돌려봐도 어느정도 연산량이 적으면 number = 0으로, 이상하게 올바르네요. 이유가 무엇일까요? Thread 2가 실행되기 전에, 컴퓨터의 연산이 빨라서 Thread 1에서 number를 1만번 ++의 계산이 끝나는 걸까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
WriteLock이 기존 진행 되는 ReadLock이 끝남을 기다리는 과정에 대해서 질문드립니다.
int desired = (Thread.CurrentThread.ManagedThreadId << 16) & WRITE_MASK; while (true) { for(int i = 0; i < MAX_SPIN_COUNT; i++) { if (Interlocked.CompareExchange(ref _flag, desired, EMPTY_FLAG) == EMPTY_FLAG) return; } Thread.Yield(); } desired 부분에서 마스크를 통해 WriteThreadId를 제외하고 밀어버린 뒤 Interlocked부분에서 비교를 통해 ReadLock과 WriteLock이 없는지 비교하고 있습니다. 위 과정에서 만약 먼저 ReadLock이 잡혀있다면 ReadLock이 풀릴 때 까지 기다리게 되는데 만약 끊임없이 Read가 일어나 ReadLock이 풀리는 틈이 없어 Write가 되지않는 극단적인 경우는 일어나지 않는건가요? 혹시라도 일어나지 않는다면 Read 하는 과정이 매우 짧기 때문에 그런 일이 발생하지 않는 것인지 궁금합니다.
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
안녕하세요 강의 무한로딩 문의합니다.
9월 20일 추가 하신 강의 중 가챠 2 강의 제외하고 모두 무한 로딩 뜨는데요 혹시 무슨 문제 일까요?
-
해결됨두고두고 써먹는 유니티 VR
xr 인터렉티브 툴키트를 수강하고 있습니다
강의에서 진행하는 유니티 버전 2021 2..13f 을사용하고 있습니다 강의 프로젝트셋팅때 버전은 같은데 설치하고 나서 하이어라키 메뉴 에서 xr 메뉴 xr oring (action based)라는 내용이 없습니다 받은 툴키에 셋업샘플에 컨트롤러도 내용이 강좌보다 많은 컨틀롤러가 있습니다 우선있는 컨트롤러는 디콜트 였습니다 하이어라키 메뉴 에서 xr 메뉴 xr oring (action based) 가 없어요 우선 시뮬레이터로 작업하려고 합니다
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
작성된 코드 다운로드 에 대해서 질문드려요
안녕하세요다름이 아니라 파트가 끝난 코드는 다운로드 받을수 있게 안되나요? 똑같이 따라 친거같은데 무언가 오류도 많이 발생하고 잘안되네요 파트가 끝난 부분에 대해서 코드 다운로드 를 제공해주실수 있는지 문의드립니다.
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
안녕하세요 어플 에서 실행
안녕하세요 선생님 컴퓨터로 강의 실행은 잘되는데 인프런 어플로 재생했을때 34강 부터 실행이 안됩니다 ㅠㅠ 동영상을 준비중에 있습니다 이렇게 나옵니다 확인 부탁드립니다
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
UI 창이 안떠요
UI 화면 관리 시스템 Pt4와 게임설정 강의에서팝업 창과 설정창이 안뜹니다..하이어라키 창에서는 창이 존재는 하는데씬창과 게임 창에서 보이지 않습니다.. .