묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨유니티 기초 챌린지: 2D부터 3D까지 나만의 게임 만들기
11월 30일 강의업데이트가 안되어 있네요.
안녕하세요. 11월 30일 강의업데이트가 안되어 있네요. 추후 강의 업데이트가 늦어질 경우, 별도 공지를 해주시면 감사하겠습니다.
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 아이템 시스템
안녕하세요 강좌 진행 순서에 대해 문의드립니다.
이번에 제대로 모듈식으로 학습해보고 싶어서 강의 3개를 모두 구매했는데요아이템 -> 스킬 -> 퀘스트 순서로 학습해도 이해하는데 무리가 없을지 궁금합니다
-
미해결절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
기초적인 질문
현재 16강을 듣고 있는데요. 코드를 짜시는 형태가 대부분 c#클래스와 인터페이스를 구조로 해서 필요할 때 가져와서 사용하는 구조인 것 같은데요. 궁금한 점은 하이어라키에 있는 스크립트와 그냥 스크립트로만 존재하는 것은 어떤 차이가 있을까요? 질문이 이해가 잘 되지 않으실수도 있을 것 같은데요. 저는 거의 모든 스크립트를 만들어서 하이어라키 오브젝트 안에 넣어서 만들었거든요.
-
미해결절대강좌! 유니티6 - ECS/DOTS 프로그래밍 마스터클래스
ecs관심이 있었는데 강의 잘 보았습니다.
현재 강의는 심화과정 2강의 빼고 다 보았습니다. 몇가지 궁금한 사항들이 있어서 질문드리려고 합니다. ecs, dots 병렬처리를 위해서 유니티에서 사용하는 시스템인데요. 이 강의에서도 여러 쓰레드를 사용하기 위해 잡에 작업들을 할당하는 코드를 사용하는 것으로 보입니다. 그리고 발사체와 적이 충돌시 HP를 깍는데 EnemyComponentLookup[enemy] = enemyData; 이런 코드가 있던데 이는 실제로 해당 컴포넌트에서 hp 변수를 수정하는 내용으로 보입니다. 하지만 멀티쓰레드에서 lock이나 뮤텍스같은 안전장치가 없는데 저런식으로 사용할 수 있는지 묻고 싶고... 두번째는Enemy오브젝트에서 여러 엔티티 update 이벤트를 사용하고 있습니다. EnemyComponent는 발사체에서도 사용하고 있고 moveComponent에서도 사용하고 있고 hpBarComponent에서도 사용하고 있습니다. Enemy가 죽었을때 수십만 이벤트가 현재 할당된 상태에서 문제가 없는것인지 추가적인 내용을 알 고 싶습니다. 현재 만마리 이상 스폰을 시키면 간혹 죽은 Enemy들이 살아있는 것 같은데 ecs, 멀티쓰레드 강의에서 젤 중요한 내용이 빠진게 아닌가 싶어서 여쭈어봅니다.
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 아이템 시스템
카테고리 클래스를 어떻게 해야할지 모르겠어요ㅜㅜ
1.이 강좌의 아이템 시스템과 전에 만드신 퀘스트 시스템 강좌를 합치려면 어떻게 해야 하나요?퀘스트 시스템에서는 아이텐티파이드 오브젝트가 없어서 어떻게 해야할지 모르겠습니다. 2.카테고리 클래스에서 Equals함수와 GetHashCode함수를 오버라이드하는 이유를 잘 모르겠습니다. 참조도 0개고 부모의 구현을 그대로 호출하는데 어떤 의미인지 궁금합니다. 아 다이얼로그 시스템 강좌 계획은 없으신지도 궁금합니다.
-
미해결절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
Default Player Prefab 파괴시 재생성
이번 강의에서 RPC를 통해 클라이언트의 클라이언트의 캐릭터들이 죽는것을 보았는데만일 클라이언트의 캐릭터를 리스폰 해야 한다면 Network Manager 컴포넌트에 설정된 Default Player Prefab을 spawn 하는 방법이 있는건가요?아니면 32강의 고블린 생성 방식처럼 Instantiate()로 워리어나 아처 캐릭터를 생성시킨 뒤 NetworkObject 컴포넌트의 Spawn()를 사용하는건가요?
-
미해결절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
캐릭터 네트워크 애니메이션 질문 (29강의)
캐릭터의 네트워크 기능 추가 : NetworkPlayer (29 강의)영상을 보면서 이해가 되지 않는 부분이 생겼습니다.1. 애니메이션 서버 권한? 클라이언트 애니메이션 요청 구조..?영상 13분 50초에서 Network Animation 컴포넌트는 서버 권한을 가지고 있기 때문에 A라는 클라이언트에서 '나(owner)'의 캐릭터 애니메이션 실행 요청을 서버에 전달하고 서버에서 '너'의 캐릭터 애니메이션을 실행시켜 주겠다고 하면 그때 다른 클라이언트 B,C.. 등 에서도 A 클라이언트의 애니메이션이 실행되어 보이는 구조라고 이해하면 될까요?만약 맞다면 서버권한을 그대로 사용한다면 서버에서 처리해주는 별도의 코드가 있어야 다른 클라이언트들에게 A라는 클라이언트의 애니메이션이 공유되는것일까요?2. Network Transform : Authority..?애니메이션과 달리 Transform은 Owner로 설정하게 되면 클라이언트에서 실행한것이 서버로 전송이 된다고 했습니다.그렇다면 애니메이션은 실행을 해달라고 요청을 하는것이고 Transform의 경우 Authority를 Owner로 설정했기 때문에 A 클라이언트 자체에서 실행되서 좌표의 결과값을 서버에 보내는 것인가요?? 그래서 서버에서 다른 클라이언트(B,C.. 등)들에게 A 클라이언트의 좌표값을 공유하는 형식인가요?3. 클라이언트 실행과 클라이언트의 실행 요청은 다른 개념인거죠?
-
미해결유니티 기초 챌린지: 2D부터 3D까지 나만의 게임 만들기
자료형 플로트는 더블 자료형으로 나눠도 오류가 발생하지 않는 이유가 뭘까요?
exp 가 플로트 자료형이고 뒤에 더블인데 나누기 했는데 이게 오류가 안나오는데 혹시 제가 비쥬얼 스튜디오 코드를 쓰고있어서 그럴까요??
-
해결됨유니티 기초 챌린지: 2D부터 3D까지 나만의 게임 만들기
맥에서는 비쥬얼스튜디오 2022 지원을 안하네요;;
강의듣는데는 상관이 없을까요? 비쥬얼 스튜디오 코드만 설치되어있는데요;;
-
해결됨유니티 기초 챌린지: 2D부터 3D까지 나만의 게임 만들기
영상관련
안녕하세요. 영상이 아직 안올라온게 맞나요?
-
미해결절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
Warrior가 Gobin에게 달려가 충돌하면 Gobin이 뒤로 튀겨나가는 현상??
Warrior가 Gobin에게 달려가 충돌하면 Gobin이 뒤로 튀겨나가는 현상이 있습니다. ChaseState 상태에서는 뒤로 튀겨나가도 다시 앞으로 가는데 Warrior가 계속 밀다가 사망 상태가 되면 Gobin은 IdleState가 되면서 계속해서 뒤로 밀리는 현상이 있습니다.아래와 같이 IdleState 상태로 진입하면 enemy.StopMoving(); 를 추가 해서 멈추도록 했는데 public void Enter(Enemy enemy) { Logger.Log("Idle 진입"); enemy.animator.SetBool(Enemy.hashIsRun, false); // Idle 상태 진입 시 물리 엔진으로부터 발생하는 이동/힘을 즉시 차단합니다. // Enemy.StopMoving()을 호출하면 리지드바디 속도를 0으로 만들어 밀림을 방지합니다. enemy.StopMoving(); } 이 것도다 정확한 방법을 알 수 있을까요?
-
미해결절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
Warrior의 InputHandler.cs 의 OnEnable(), OnDisable() 메서드 부분에서 공격에 문제가 있는 것 같아요.
Warrior의 공격에 문제점 발견마우스 왼쪽 버튼 Down 할 때 공격 애니메이션 동작마우스 왼쪽 버튼 Up 할 때 공격 애니메이션 동작마우스 한번 클릭(Down, Up) 동작에서 두 번의 공격 동작을 함.이 부분에서 canceled 부분==>마우스 Up 에서 애니메이션이 발생함.수정 전 코드attackAction.preformed += HandleAttack; attackAction.canceled += HandleAttack;수정 후 코드attackAction.started += HandleAttack; //attackAction.canceled += HandleAttack;이렇게 수정하면 정상적으로 마우스 한 번 클릭에 한 번 공격함.전체 수정 코드private void OnEnable() { inputActions.Enable(); // 이벤트 연결 moveAction.performed += HandleMove; moveAction.canceled += HandleMove; attackAction.started += HandleAttack; // attackAction.canceled += HandleAttack; // 버튼을 뗄 때 공격이 발생하는 문제를 막기 위해 제거 }private void OnDisable() { inputActions.Disable(); // 이벤트 해제 moveAction.performed -= HandleMove; moveAction.canceled -= HandleMove; attackAction.started -= HandleAttack; // attackAction.canceled -= HandleAttack; }
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 아이템 시스템
NPOI 오류가 뜨는데
프로젝트 다운받아서 빌드 해보니 Assets\Scripts\Test\NPOIExample.cs(2,7): error CS0246: The type or namespace name 'NPOI' could not be found (are you missing a using directive or an assembly reference?)이런오류들이 발생하는데 혹시 원인이 뭘까요? 제미나이에 물어보니 NPOI 관련해서 설정을 이것저것 해줬는데도 해결이 안되네요.. Assets\Scripts\Test\ExcelConvertTest.cs(656,45): error CS0246: The type or namespace name 'IRow' could not be found (are you missing a using directive or an assembly reference?)이런오류들도 발생을 하네요 ㅜㅜ
-
미해결[유니티6] 따라하면서 배우는 고박사의 Top-Down Shooting 게임
behavior 패키지 관련
#30 behavior영상중 2:57현 사용 unity 버전6000.0.32f1behavior가 패키지 매니저에 없어서add package by name으로 com.unity.behavior를 추가하였습니다.해당 패키지는 packages - unity에 들어가 있습니다.완전 처음 설치하는 사람에게 안뜨는건지저만 오류가 있는지는 향후 설치 이력이 없는컴퓨터에서 확인해봐야하지 않을까 싶습니다.
-
해결됨[유니티6] 따라하면서 배우는 고박사의 Top-Down Shooting 게임
볼륨 확인 요청
재화시스템에서4:10에 키보드 소리가 마이크에 들어가서 볼륨을 낮추셨는지,11:08에서의 스크립트 생성 한다는 이야기의 볼륨이 너무 낮아져있는듯합니다. 19:28에 갑자기 볼륨이 돌아와서이어폰으로 듣고있었으면 불편했을수도 있겠습니다.중요한건 아니지만
-
미해결절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
Netcode 사용시 운영관점 질문
안녕하세요 강사님,먼저 좋은 강의에 감사드립니다.1회차 완강하고 실습 병행하면서 2회차 들으려고 합니다. Netcode로 실서비스를 운영하면서 강의에서는 안 다루지만 실무에서 꼭 알아야 했던 것이 있을까요?예를 들어 서버 배포 자동화, 모니터링 툴 구성, 아니면 설계 단계에서 미리 고려했어야 했던 확장성 이슈 같은 것이 있었는지 강의 외적으로 실전 팁을 미리 알고 싶습니다!그리고 유니티6 이전의 방식과 이후의 방식간에 운영관점에서 어떻게 달라졌는지 궁금합니다.
-
해결됨절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
캐릭터 이동 방식을 A* Pathfinding 에셋으로도 한번 부탁드립니다.
좋은 강의 감사드립니다. 클라이언트만 작업하다 네트워크로 구현하는 방법을 따라해보고 있는데요.캐릭터 이동 방식을 A* Pathfinding Project Pro 에셋으로 구현하는 방법도 한번 알려주시면 너무나도 감사할 것 같습니다. :)평상시 A* Pathfinding Project Pro 에셋을 쓰고있는데 제가 잘 쓰고 있는건지 궁금하기도 하고 네트워크에서 이 에셋을 사용한다고 해서 별다른 이슈가 있는지 없는지도 알고 싶어서 의견 드려봅니다.마치 별책부록처럼 이 것만 한번더 다뤄주시면 정말 감사드리겠습니다~!!
-
해결됨절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
여기에 쓰인 기술이 적합할지 궁금하네요.
강사님의 다른 강좌들을 보니 네트워크 게임쪽에 상당한 경험이 있으신거 같아 조언을 구하고자 합니다. 현재 네트워크 대전 디펜스 게임을 만들고 있는데, 로비가 별도로 있고 여기서 대전신청을 하면 조건에 맞는 유저를 찾아서 1:1로 방 생성해서 대전을 하는 구조입니다.실제 인게임 내에서는 미니언들이 양쪽 모두 공평하게 생성되는 상황이고 내 크리처도 내보내고 타워도 지으면서 적의 미니언들을 막아내고 적의 본성을 부수면 이기는 게임을 작업 중에 있습니다. 한 화면으로 구성되며 한 화면에 최대한 등장하는 적들은 양쪽 합쳐서 30~60마리정도가 있을 수도 있을거 같습니다. 평균 10마리 내외일거 같구요.사실 기존에 순수 C#서버에 gRPC 프로토콜로만 작동하던 게임이 있었는데 좀 옛날거라 요즘 기술로 다시 만들고 있습니다. 서론이 좀 길었는데 질문은 이것입니다. 위 상황으로 짐작해 봤을 때 Netcode for GameObjects 방식으로 작업이 가능할까요? 아니면 다른 솔루션을 이용해야 할까요? (포톤, Netfish, Netcode for Entitiese등) 솔직히 로비나 로그인 처리등은 기술적으로 크게 부담은 없는데 인게임내에서 다량의 적이 싸울때 싱크로 문제가 있을거 같아 걱정입니다.
-
미해결[Unity6] 함께 만들어가는 서바이벌 게임 개발 - 스팀 출시 도전기
카드 Database ~ 스킬 구슬 강의 질문
누락된 부분이 있는거 같아서 질문드립니다CardSelector.cs 에서 SelectCard 함수를 정의는 했지만 사용하는 곳이 없음Base_Canvas.cs 에서 SetSkillFrame() 함수를 정의했지만 사용하는 곳이 없음.추후 강의에 나올 순 있지만 섹션3 까지 들은 상태에서는 찾을 수 없어서 질문 남깁니다. 추가로, 위 부분들을 사용하려면 카드 클릭(선택) 하는 함수 A를 만들고 A -> 1번 -> 2번 흐름으로 실행되어야 할 것 같은데, 카드 선택하여 1,2번을 호출하는건 직접 만들어야 하는 부분일까요?
-
미해결[Unity6] 함께 만들어가는 서바이벌 게임 개발 - 스팀 출시 도전기
선택 카드 UI 강의 중 발생 에러
안녕하세요. 강의 잘 보고 있습니다.선택 카드 UI 강의대로 진행 중 Selector의 Card 배열에 Card GameObject를 넣는 도중 아래 사진과 같은 에러가 발생해서 Q&A 드립니다.사용 Unity 버전은 6.0(6000.0.58f2) 입니다. 아래는 게임 실행 시 발생하는 콘솔 로그 입니다.혹시 이슈가 뭔지 아실까요?(첫번째 로그를 보면 Image 가 없다고 하는거 같은데 관련없는 내용인 것 같네요.) 추가로, 게임 시작할 때 다른 GameObject의 Inspector를 띄워놨다가 Seletor를 선택하는 순간 error 발생하고 게임이 멈추네요. 다른 Inspector를 선택하고 있는 상태로 계속 진행하면 잘 되네요! 혹시 이것과 관련해서 비활성화상태임에도 Selector를 클릭하는 순간 강제로 start나 awake 같은 유니티 함수가 실행되어서 문제가 발생하는걸까요?