묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
기초적인 질문
현재 16강을 듣고 있는데요. 코드를 짜시는 형태가 대부분 c#클래스와 인터페이스를 구조로 해서 필요할 때 가져와서 사용하는 구조인 것 같은데요. 궁금한 점은 하이어라키에 있는 스크립트와 그냥 스크립트로만 존재하는 것은 어떤 차이가 있을까요? 질문이 이해가 잘 되지 않으실수도 있을 것 같은데요. 저는 거의 모든 스크립트를 만들어서 하이어라키 오브젝트 안에 넣어서 만들었거든요.
-
미해결절대강좌! 유니티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. 클라이언트 실행과 클라이언트의 실행 요청은 다른 개념인거죠?
-
미해결절대강좌! 유니티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; }
-
미해결[유니티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등) 솔직히 로비나 로그인 처리등은 기술적으로 크게 부담은 없는데 인게임내에서 다량의 적이 싸울때 싱크로 문제가 있을거 같아 걱정입니다.
-
미해결[유니티6] 따라하면서 배우는 고박사의 Top-Down Shooting 게임
2d게임에서 의복 교체는 어떻게해야할까요?
이번 강의에서 무기교체는 배웠는데,모자, 망토, 상의, 하의, 부츠 이런것을 교체하려고하면 어떻게 해야할지 모르겠습니다.
-
미해결유니티 2D RPG 게임 만들기
Session11의 3강의 질문
10:17 부터 저장하기 버튼이 작동되지 않는 현상이 일어납니다. 저장하기 버튼을 눌렀을 때 깜박이는 표시는 뜨나 강의에 있는 것처럼 저장하기 버튼 누른 후 해당 UI가 사라지지 않습니다. 그래서 해당 강의 처음부터 다시 보고 진행을 하는데도 오류가 해결되지 않습니다. 그렇다고 Console창에서 오류가 뜨는 것도 아니라 난감합니다. 인터넷에 있는 방법들은 전부 시도를 해봤음에도 안되서 질문을 남깁니다. 어떻게 해결해야되나요?10장_저장 및 불러오기_3 << 해당 강의에 대한 질문입니다.10장_저장 및 불러오기_3https://www.inflearn.com/courses/lecture?courseId=331732&unitId=177277&tab=community
-
미해결유니티 2D RPG 게임 만들기
섹션4에서 Exp_Slider 연동하는 강의 내용이 없습니다.
섹션 4에서 Exp_Slider 연동하는 강의 부분이 없는데,섹션 4의 마지막 강의에서 갑자기 Exp_Slider가 움직이고, 정상적으로 움직이지 않는다고 하면서(4강_4(NPCUI) 강의 20분) 넘어갑니다. 강의 내용이 중간에 없어진 것 같습니다.확인 부탁 드려요.
-
미해결유니티 2D RPG 게임 만들기
하늘 배경 머티리얼 제거 방법은?
씬 처음 만들고 Material 씬에 넣으면 하늘 배경이 생성되잖아요.이 하늘 배경 머티리얼이 어디로 들어가나요?제거하려면 어디서 가능한가요?
-
해결됨유니티 2D RPG 게임 만들기
강의 순서가 바뀌어 있습니다.
안녕하세요. 섹션5의 맨처음에 나와야할 5강_Town구성_1, 5강_Town구성_2(페이드아웃) 이 맨 뒤에 있네요. 확인바랍니다.
-
미해결유니티 2D RPG 게임 만들기
3강 4 움직임, 점프 질문
더블 점프 기능을 구현할 방법은 없을까요?Floor 태그가 있는 곳에서만 점프가 되니까더블 점프 기능을 어떻게 구현할 지 모르겠습니다ㅜ
-
해결됨유니티 2D RPG 게임 만들기
강의 순서가 바뀌어 있습니다.
안녕하세요. 1강_3시작_UI구성3 과 1강_4_시작UI구성2 의 위치가 바뀌어 있습니다. 순서대로 듣다가 당황했네요. 그리고 섹션의 강의 제목도 일관성있게 적어주셨으면 합니다.(띄어쓰기, 언더바) 1강_1시작UI1강_2시작UI_구성1강_3시작UI구성31강_4_시작UI_구성21강_5 회원가입기능1강_6 회원가입기능21강_7_로그인 기능_찾기기능 감사합니다.
-
미해결유니티 2D RPG 게임 만들기
MemberShip 계정 개수를 늘리고 싶어요
강의 내용대로 하면 하나의 계정은 잘 만들어져요근데 두 번째 계정을 만들면 처음 계정이 삭제되는 듯 하네요계정을 두 개 만들고 싶으면 어떻게 하나요?
-
해결됨
unity 2d 이동 좀 알려줘용....
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Move : MonoBehaviour { private float Speed; public float WalkSpeed; public float RunSpeed; private bool isRunning = false; public float JumpForce; private bool isJumpping = false; Rigidbody2D rb; SpriteRenderer sr; Animator ani; void Start() { Speed = WalkSpeed; rb = GetComponent<Rigidbody2D>(); ani = GetComponent<Animator>(); sr = GetComponent<SpriteRenderer>(); } void FixedUpdate() { MoveControl(); TryRun(); Running(); TryJump(); } private void MoveControl() { float hor = Input.GetAxis("Horizontal"); rb.velocity = new Vector2(hor * Speed, rb.velocity.y); //MoveStop if (Input.GetButtonUp("Horizontal")) { rb.velocity = new Vector2(rb.velocity.normalized.x * 0.5f, rb.velocity.y); } //MoveSpeed if (rb.velocity.x > Speed) { rb.velocity = new Vector2(Speed, rb.velocity.y); } else if (rb.velocity.x < Speed*(-1)) { rb.velocity = new Vector2(Speed*(-1), rb.velocity.y); } //Animation if (rb.velocity.normalized.x == 0) { ani.SetBool("isWalking", false); } else { ani.SetBool("isWalking", true); } //Sprite Flip if (Input.GetButtonDown("Horizontal")) { sr.flipX = Input.GetAxisRaw("Horizontal") == -1; } } private void TryRun() { if (Input.GetKeyDown(KeyCode.LeftShift)) { isRunning = true; } else if (Input.GetKeyUp(KeyCode.LeftShift)) { isRunning = false; } } private void Running() { if (isRunning == true) { Speed = RunSpeed; isRunning = false; } else if (isRunning == false) { Speed = WalkSpeed; isRunning = true; } } private void TryJump() { if (Input.GetKeyDown(KeyCode.Space) && isJumpping == false) { rb.velocity = Vector2.up * JumpForce; isJumpping = true; } else if (Input.GetKeyUp(KeyCode.Space)) { isJumpping = false; } } } 제가 이번에 이제 유니티를 시작하게 되었는데요 유튜브를 여러 개 찾아 보면서 계속 연습을 하면서 이번에 제작에 들어가게 되었습니다 처음 시작이여서 2D 로 먼저 연습을 할려고 해서 이동하는 걸 만들어 보고 있는데요 지금 계속 중간에 가다가도 멈추고 점프도 될 때도 있고 안될때도 있고 그래서 질문 남깁니다... 빠르게 고쳐서 계속 만들어 보고 싶어요!!