U4S1L11——Player Input Manager

PlayerInputManager

PlayerInputManager​组件,主要是用于管理本地多人输入的输入管理器,它主要管理玩家加入和离开

PlayerInputManager参数相关

image

  • Notification Behavior:通知行为

    image
    当玩家进入时,PlayerInputManager如何通知关联的对象,
    它的工作方式和PlayerInput相同

  • Join Behavior:玩家加入的机制

    image

    • Join Players When Button Is Pressed:
      当有新设备加入按下任意键,或者没有任何玩家时按下任意键
    • Join Players When Join Action Is Triggered:
      当有新设备加入按下指定按键触发玩家加入
    • Join Players Manually:
      不要自动加入玩家,需要自己手动加入玩家
  • Player Prefab:挂载PlayerInput组件****的游戏对象

  • Joining Enabled By Default:启用后,新加玩家按照 JoinBehavior 的规则加入,重要选项

  • Limit Number Of Players:启用后,可以限制加入游戏的玩家数量

    image

    • Max Player Count:允许参加游戏的最大玩家数
  • Enable Split_Screen:是否激活分屏

    image
    如果启用,会自动为每个对象分配可用屏幕区域的一部分,用于多人分屏游戏

    需要先为玩家的PlayerInput上关联一个摄像机

    • Maintain Aspect Ratio:假值使游戏能够生成屏幕区域,其纵横比与细分屏幕时的屏幕分辨率不同
    • Set Fixed Number:如果该值大于零,则PlayerInputManager始终将屏幕分割为固定数量的矩形,而不考虑实际的玩家数量。
    • Screen Rectangle:可用于分配播放器拆分屏幕的规范化屏幕矩形

PlayerInputManager的使用

这里讲的是PlayerInputManager的通知行为如何使用

  • 第一种和第二种模式很简单,按照弹出的要求声明函数即可,之后会在玩家加入或者离开时触发这些函数

    1. image
    2. image

    这两种模式要求在PlayerInputManager依附的对象(第一种)或者子对象(第二种)上的脚本内声明具有要求的函数名的函数即可

  • 第三种模式更简单,直接将要用于监听玩家加入或者离开的函数拖入即可

    image

  • 这里主要讲述第四种模式怎么使用

    1. 获取PlayerInputManager

      要为委托添加监听方法,首先要获取​PlayerInputManager​,由于PlayerInputManager​在场景上应当只有一个(也只需要一个,而不需要第二个)
      因此我们可以像获取单例模式的管理器那样获取它

      1
      PlayerInputManager.instance
    2. 玩家加入时触发什么方法

      PlayerInputManager​创建了一个玩家时,触发该委托,该委托所需的监听函数需要一个​PlayerInput​参数

      1
      2
      3
      4
      PlayerInputManager.instance.onPlayerJoined += (playerInput) =>
      {
      print("创建了一个玩家");
      };
    3. 玩家离开时触发什么方法

      当销毁,或者断开了一个PlayerInputManager​创建的玩家时,触发该委托,该委托所需的监听函数需要一个PlayerInput​参数

      1
      2
      3
      4
      PlayerInputManager.instance.onPlayerLeft += (playerInput) =>
      {
      print("离开了一个玩家");
      };

​​