묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[AI 시대의 게임 개발을 지탱하는 기술들] 홍사부의 디아블로1 PCG 던전 생성 알고리즘
25번째 강의 첨부자료 코드 확인 부탁드립니다
25번째 강의 '25.Minset,후처리-Unity'에서CreateTileDecorationsTable(), Substitution(), CreateTileDecorationsTable()강의에 나오는 코드들이 첨부자료에서는 누락되어서 한번 확인 부탁드립니다. 혹시나 싶어서 다음강의나 마지막강의인 minimap강의도 첨부된 자료들을 확인했는데도 함수들이 없어서 한번 확인 부탁드립니다
-
해결됨유니티 기초 챌린지: 2D부터 3D까지 나만의 게임 만들기
빌드 파일 제출 기한
빌드 파일의 제출 기한이 정해져 있나요? 사정이 있어서 강의를 좀 뒤늦게 듣고있어서...
-
미해결절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
캐릭터 중복 생성 문제
안녕하세요. 질문이 있습니다! 에디터에서만 플레이 했고, 다음과같은 순서로 플레이하면 캐릭터가 중복해서 생성되는 문제가 있는데 어떻게 해야되는지 궁금하네요.Lobby 씬에서 Create Session으로 세션 생성Start Session으로 Level01 씬 이동Exit 로 Lobby 씬으로 이동다시 Lobby 씬에서 Create Session으로 세션 생성아직 Level 01로 넘어가지 않았는데 플레이어 캐릭터가 Lobby 씬에서 생성됩니다.여기서 Start Session으로 Level01 씬으로 이동하면 새로운 캐릭터가 생성되서 2개의 캐릭터가 생성됨을 확인했습니다.따로 Lobby 씬으로 돌아갈 때 정리해줘야하는게 있을까요?
-
해결됨유니티 기초 챌린지: 2D부터 3D까지 나만의 게임 만들기
마지막 주 수업은 언제 업로드 되는 건가요?
강사님. 안녕하세요.덕분에 유니티에 대해서 많이 공부하고 있습니다. 다름이 아니고 마지막 수업은 언제 업로드 되는 건가요?금일 중으로 업로드 되는 건가요? 별도 안내가 없어서 문의드립니다.
-
미해결유니티 1945게임으로 배우는 멀티플레이 Netcode
유니티 6.3 버전에서 해당 리소스의 영상 클립에서 오류가 뜹니다.
유니티 6.3 버전에서 해당 리소스의 영상 클립에서 오류가 뜹니다.영상에 나온것 설치했구요.그래도 뜹니다.VideoClip import error for Assets/Images/Video/Select.wmv(Filename: C:\build\output\unity\unity\Modules\VideoEditor\VideoClipImporter.cpp Line: 548)
-
해결됨[AI 시대의 게임 개발을 지탱하는 기술들] 홍사부의 디아블로1 PCG 던전 생성 알고리즘
콘솔프로젝트 파일 어디에 업로드되있나요?
설명자료만있고 프로젝트파일은 어디서 다운받는지 안나와있네요
-
미해결절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
완강 후 궁금한 것
먼저 정말 배우고 싶었던 부분을 강의해 주셔서 정말 감사합니다. 완강 후 질문 있습니다. 배운 것만 그대로 적용하더라고 멀티플레이 게임 제작이 가능한지 궁금합니다. 혹시 간단하게 100명정도 동시 접속하는 게임을 제작하게 된다면 예상되는 문제점은 무엇이 있을까요?그럼 사실상 로비나 릴레이를 구현하는 것은 거의 사용하지 않는다고 보면 될까요?
-
미해결절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
39강 질문
질문1. 로비까지는 릴레이를 쓰니까 유니티의 서버를 쓰는 것이고 게임을 시작하면 호스트를 서버로 쓰는 거라고 이해하면 되나요?그리고player.GetComponent<NetworkObject>().SpawnAsPlayerObject(playerId); 이 코드로 인해서 playerID를 가진 캐릭터가 생성되서 이 아이디를 가진 사람에게 제어권이 가는건가요?
-
해결됨유니티 기초 챌린지: 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; }