• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

Managers 질문

23.08.07 17:22 작성 조회수 233

0

안녕하세요.

선생님께서 말씀해주신 내용에서 궁금한 점이 있어서 두 가지 질문 드립니다.

 

  1. 1:00 강의

선생님께서 컴포넌트와 관련된 클래스를 많이 생성했을 때

Update() 함수가 많이 호출되고

그 안에서 각각 Input.GetKey를 많이 호출하면 성능부하가 생길 것이라고 이해했습니다.

KeyAction 에다가 OnUpdate 함수를 구독하면

각 함수들이 독립적, 순차적으로 실행될 것으로 이해됩니다.

위처럼 이해한다면 Update에서 각각 호출하는 것과 성능부하가 생긴다는 것이 잘 이해가 되지 않습니다.

 

선생님께서 말씀하신 인풋을 각각 관리하면 추후 유지보수에 어렵다는 내용에는 이해가 가지만 성능부하 관련해서는 아직 제 지식이 짧아서 이해가 잘 가지 않습니다..

 

  1. Managers 내부 InputManager 변수

Managers 클래스를 싱글톤으로 생성한 이유는 Managers를 여러 오브젝트에 붙였을 때 따로 생성되고,

여러개가 생성될 필요가 없기 때문이라고 이해했습니다.

그렇다면 Mangers 내부 변수들도 저는 한번씩 생성되어야 된다고 생각이 됩니다.

 

하지만 InputManager _input = new inputManager();

를 변수에서 생성한다면 Managers 클래스는 한번씩 생성되지만

InputManager 클래스는 여러 object에 Managers.cs를 어태치 한다면 계속 생성된다고 이해됩니다.

혹시 제가 이해한 내용이 맞을까요?

 

맞다면 static 변수로 선언해야 되나요??

 

 


그리고 좋은 강의 제공해주셔서 정말 감사합니다!

답변 1

답변을 작성해보세요.

0

  1. 의 경우 Update 한 번을 통해 체크하고,
    중앙에서 그 사실을 전체로 뿌리면 효율성을 더 챙길 수 있다
    (100번 Update해서 일일히 체크하기 보단)
    는 의미이지만 이 부분은 너무 많은 혼동을 야기해서
    다음 강의부터 사라지니 그냥 넘어가주시면 되겠습니다.

  2. 이해하신게 맞습니다. 하지만 managers는 일일히 여러 GameObject에 붙이진 않고
    싱글톤 패턴을 이용해 딱 한 번만 만들어서 사용해서 그런 문제가 발생하진 않습니다.

HAHA님의 프로필

HAHA

질문자

2023.08.07

빠른 답변 감사합니다!