inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

Camera #2

계속 의문이 듭니다

해결된 질문

423

Hyobin Kim

작성한 질문수 81

2

이전강의에서 부터 좀 의문이 가던 건데 유니티 문서를 찾아보니까 더 헷갈려서요

지금 구조가 

InputManger.OnUpdate() - 키보드/마우스가 눌러졌는지 감지 (Input.anyKey 혹은 Input.GetMousebuttonDown을 사용)

각 Input마다 정의된 Action을 Invoke

각 Action을 구독하고 있는 함수들에게 Event 발생을 알림

(현재로선, PlaterController.cs의 OnKeyBoard(), OnMouseClicked)

거기다

Manager.cs에서 각 매니저들의 인스턴스를 들고 있고

Manager.cs의 Update() 속에서 _input.OnUpdate()를 불러주도록 되어있습니다

이런 구조랑 설명에 대해서 이해는 가거든요

나중에 디버그 할 때나 기능을 추가할 때, 딱 필요한 부분만 찾아서 거기서만 작업해주겠구나 하는 느낌은 드는데

100% 납득이 안갑니다 굳이 이렇게까지 많이 쪼개야 하나 하고요

아직 기능이 많이 추가 된게 아니라서 이렇게 쪼개는 단계가 너무 많아 보여서 그런걸까요?

unity C#

답변 6

2

Hyobin Kim

와 대박 어제 공부한거라 혹시나 했는데 맞네요

강의 듣기 전에는 질문은 어떻게 해야 하나 했는데 

이렇게 답변 잘 해주셔서 정말 감사드려요

지금 이거 말고도 Unity C#시리즈 다 구매해두고 다 공부하는날을 기다리고 있는데

그 와중에 이렇게 피드백을 잘해주셔서 더욱 든든합니다

아, 유니티 끝나면 얼마전에 발표하신 C++ 언리얼도 들을겁니다

강사님덕분에 공부복 터졌습니다 ㅋㅋ

2

Rookiss

네 바로 그 Observer 패턴이 맞습니다 ㅎㅎㅎ

유니티의 Input은 누르고 있는지, 처음으로 눌렀는지, 떼고 있는지 등을 판별할 땐 좋지만
더블 클릭이라거나, 드래그와 같은 것을 자동으로 인지해주진 않습니다.
(사실 드래그라는게 마우스를 몇초 이상 눌러야지 드래그인지, 주관적이죠)

그런 부분은 자체적으로 이전 상태를 저장하면서 우리가 직접 처리를 해야 하는데,
그런 경우라면 InputManager가 중앙에서 처리해서 뿌리는 방식을 채택하면 편합니다.

0

Hyobin Kim

아 그건 제가 캐나다 살고 있어서요ㅎ

일을 집에서 하는터라 쉬는시간마다 한강씩 듣거든요 아니면 전날 들은거라 

그래서 시간대가 항상 그래요 ㅎㅎ

다시 한번 감사드립니다

0

Rookiss

도움이 됐다니 다행입니다 ㅎㅎ

답변이 달린 시간대를 보니 저 못지 않은(?) 올빼미족(?) 같아 보이는데
IT는 평생 공부이므로. 잠은 주무시면서 공부하시기 바랍니다.

0

Hyobin Kim

알겠습니다

그럼 조금 원론적인 질문으로

말씀하신걸 예시로 들면 마우스라는 장치에서 다양한 인풋이 들어오는걸 InputManager가 받아서 그걸 분류해서 PlayerControlelr로 쏴주는 형식의 코딩이 많은 편인가요?

다른 곳에서 공부한 Oberser Pattern이랑 매우 비슷한거 같이 보여서요 

관련이 있나요?

0

Rookiss

InputManager는 잊어주시기 바랍니다.
제 이전 프로젝트에서는
클릭 기반의 게임이라서 사용하면 편리한 점이 많았는데
(클릭, 더블클릭, 드래그 이벤트 발생 등)
사실 터치 기반이나 키보드 방식의 게임이라면
유니티의 Input 클래스에서 제공하는 static 기능들을 활용하는게 더 편리합니다.
그런 이유로 Part7부터는 InputManager는 제거하고 진행됩니다.

UI 기능 관련 질문이 있습니다!

0

30

2

픽셀 좌표 스크린 좌표

0

31

0

전체적으로 코드 읽는게 굉장히 오래 걸리네요...

0

70

2

카메라 #2 수업 캐릭터 쓰러짐 해결

0

82

1

플레이어 움직임이 끝날때, 기울어짐 현상

0

81

1

Input 적용과 관련하여 질문 있습니다.

0

73

1

디버그 불가.. Unity에 연결 불가

0

79

1

달리기 애니메이션 에러

0

86

2

오랜만에 게임을 만들다가 사운드 관련해서 뭔가 궁금한게 있어서 봤습니다

0

64

1

GetKey 오류

0

109

2

에셋을 어디에 올려두신지 알 수 있나요?

0

105

1

재귀호출? 오류나는데 왜 이래요 ?

0

167

6

Animation blending 파라미터 계산

0

66

1

newPos와 to지점이 겹쳐져야 하는거 아닌가요?

0

95

3

오브젝트 복제하니까 자꾸 이런게 뜨면서 꺼집니다

0

86

2

질문있습니다

0

142

2

아 이거 소스코드 같은거 없나요?

0

140

3

질문 드립니다. string.IsNullOrEmpty(name)

0

85

2

@Managers 가 씬에 배치되어 있어도 문제가 되지 않나요?

0

134

2

유니티6 NavMesh 안되는분들

1

174

1

Unity6 Unity-Chan Material 마젠타 문제 해결법

7

525

1

GetComponent<Poolable> 질문드립니다.

0

100

2

UI 불러오지 못함

0

116

2

UI 자동화 #1 - Util.cs의 FindChild함수에서 component.name에 컴포넌트 이름이 뜹니다.

0

155

2