EnableInput can only be specified on a PlayerController for itself 에러 발생.

한번 사라졌다가 rebuild 한 후 다시 발생.

시도해볼 해결 방안 링크를 첨부한다.

https://stackoverflow.com/questions/59857336/how-to-fix-enableinput-can-only-be-specified-on-a-pawn-for-its-controller-erro

 

How to fix "EnableInput can only be specified on a Pawn for its Controller" error in output log

I'm creating a weapon system for my third person shooter project and I'm having some problems getting input to the gun. With the way I have set up my classes, I have ACharacter parented player cla...

stackoverflow.com

Client에서 Interaction시 MovementMode가 변경 되었다가 다시 원상복귀 됨.

MovementComponent 내에 MovementMode가 호출되는 함수를 탐색해 보았다.

MovementMode
  DefaultLandMovementMode
    SetDefaultMovementMode
      Character::PostInitializeComponent
        - Controller is False, so SetDefautlMovementMode called
  GroundMovementMode
    SetGroundMovementMode
    ApplyNetworkMovementMode
  SetMovementMode
    SetDefaultMovementMode
    SetGroundMovementMode

OnMovementModeChanged
  SetMovementMode
  Character::OnMovementModeChanged

그 결과 Character의 PostInitializeComponent에서 Controller가 없을 경우, MovementComponent::SetDefaultMovementMode가 호출이 된다.

이 함수 내부에는 GameMode를 MOVE_Walk로 초기화 하는 구문이 있다.

 

이것이 원인이라면 Character를 찾지 못했다는 warning과 문제가 하나로 합쳐진다.

하지만 Interaction시 한번 수정되었다가 몇 tick 이후 원상복귀 된다는 점에서 이 부분이 문제라 하기에는 애매하다.

 

그래서 MovementComponent의 OnMovementModeChanged를 탐색해보았다. 

로그에서 Override 한 OnMovementModeChanged 함수의 로그가 찍혀있었기 때문이다.

하지만 이렇다 할 원인을 찾지 못했다.

 

현재 여기까지 탐색을 함.

다음 시도는 "Character에서 MovementComponent가 가지고 있는 MovementMode의 RPC Function 구현"입니다.

 

"ProcessRemoteFunction: No owning connection for actor THCharacterBP_Sample_C_0" Warning 발생

Controller와 Character가 연결되지 않아서 발생했다.

단순 네트워크 문제라는 것도 있고, Possess를 하라는 글도 있다.

이에 대해 그나마 가장 자세한 문서를 첨부한다.

https://dawnarc.com/2017/09/ue4no-owning-connection-for-actor-xxx.-function-xxx-will-not-be-processed/

 

[UE4]No owning connection for actor XXX. Function XXX will not be processed

keywords:UE4, Dedicated Server, Replication Issue Client execute a server function failed: LogNet: Warning: UIpNetDriver::ProcesRemoteFunction: No owning connection for actor TopDownCharacter_C_0. Function ServerMoveToDest will not be processed. Cause: B

dawnarc.com

우선 Possess를 따로 어떻게 해줘야 하는지를 잘 모르겠다.

그 부분을 먼저 고민해야 할 것 같다.

 

만약 Listen Server라서 발생하는 문제 중 하나라면 Climb 관련 기능들을 모두 Dedicate Server 구현 이후로 미뤄야 한다.

하지만 다른 Animation에서는 이런 문제가 발생하지 않는 것으로 보아 이런 가능성은 매우 낮다고 생각한다.

'개발일지 > Treasure Hunter' 카테고리의 다른 글

20.05.27 개발일지  (0) 2020.05.27
20.05.25 개발일지  (0) 2020.05.25
20.05.21 개발일지  (0) 2020.05.21
20.05.20 개발일지  (0) 2020.05.20
20.05.18 개발일지  (0) 2020.05.18

+ Recent posts