How to use PlayerInput for Multiple GameObjects (Not For Multiplayer)

Hi,

How do I allocate the Player Input (Script) with an ActionMap to multiple gameObjects without the Player Input thinking its a second player and allocating a controller scheme?

I’m trying to make a game where you interact with NPC’s using the “ActionButton” in the ActionMap

In the old input system it was as simple:

  • Creating an NPC class/Script
  • in the void update() statement just doing a if(Input.GetButtonDown(“ActionButton”)) {/do Something such as dialog/}

In the new input system, if you attach the Player input to every NPC, it allocates a controller to each NPC making it impossible to call the void onActionButton() {/do Something such as dialog/}

Any advice on how to do this would be great?

Thanks

I am new to Unity Input system myself.
That’s how the system works right it allocates the devices that have been connected and which is being used currently so u can switch between inputs at run time. Maybe you could create ur own NPC input script and always make it listen to Keyboard Control scheme.

Have one playerinput for multiple players or how many you wanna control. I have this player who uses his drone, so I just switch actionmap to drone when I press “certain button”

You can add more listeners to the related action events of your PlayerInput component. (Pluses in the image). Beware that the order of execution of listeners is not guaranteed, to my knowledge.
5917727--632153--upload_2020-5-29_17-51-34.png

  • Doesn’t the player have to be near the NPC to start an interaction?
  • If the player has to interact with NPC why does NPC need PlayerInput?

You can just use your action when NPC is near the player right, you just listen to the Action input and if there is an NPC nearby do your interaction.
Another way to do it is, when an NPC is nearby, trigger an event and enable interaction ActionMap which will then allow the player to use the Actions for interaction action.

I don’t think you need inputs in an NPC for this.

references
https://docs.unity3d.com/Packages/com.unity.inputsystem@1.0/manual/QuickStartGuide.html