当前位置: 首页 > article >正文

【unity游戏开发之InputSystem——06】PlayerInputManager组件实现本地多屏的游戏(基于unity6开发介绍)

文章目录

  • PlayerInputManager 简介
    • 1、PlayerInputManager 的作用
    • 2、主要功能
  • 一、PlayerInputManager组件参数
    • 1、Notification Behavior 通知行为
    • 2、Join Behavior:玩家加入的行为
    • 3、Player Prefab 玩家预制件
    • 4、Joining Enabled By Default 默认启用加入
    • 5、Limit Number Of Players:限制加入游戏的玩家数量
    • 6、Enable Split_Screen 启用分屏
  • 二、PlayerInputManager使用实例
    • 1、创建玩家预制体
    • 2、给玩家添加PlayerInput组件
    • 3、玩家添加控制脚本
    • 4、PlayerInputManager组件配置
    • 5、结果不同设备控制自己创建出来的玩家
    • 6、分屏
    • 7、PlayerInputManager通知行为脚本
  • 专栏推荐
  • 完结

PlayerInputManager 简介

1、PlayerInputManager 的作用

PlayerInputManager 是 Unity 新输入系统 (InputSystem) 中的一个关键组件,专门用于管理本地多人游戏的输入。它简化了多玩家输入处理的过程,特别是在分屏游戏和多手柄游戏中,确保每个玩家的输入能够被正确识别和分配。

如果你想做本地多屏的游戏,比如目前非常火爆的《双人成行》,那么你就很有必要学习一下PlayerInputManager的知识。
在这里插入图片描述

2、主要功能

  1. 玩家加入与离开管理

    • PlayerInputManager 自动检测新玩家的加入(例如,当有新的控制器连接时)并为他们创建相应的 PlayerInput 实例。
    • 它也处理玩家的离开逻辑,如断开控制器或退出游戏时清理资源。
  2. 动态玩家分配

    • 支持根据可用的输入设备动态分配玩家编号。例如,在分屏游戏中,随着更多玩家加入,屏幕会自动分割成多个视图,每个视图对应一个玩家。
    • 对于双手柄游戏,可以根据连接顺序自动将不同的手柄指派给不同的玩家。
  3. 输入配置文件管理

    • 可以为每个玩家关联不同的输入配置文件(.inputactions 文件),以便支持多样化的控制方案。
    • 允许在运行时切换输入配置文件,以适应不同场景或玩家偏好。
  4. 事件驱动架构

    • 提供了一套事件系统,允许开发者监听玩家加入、离开等重要时刻,并执行相应的初始化或清理操作。
    • 这种设计使得代码更加模块化和易于维护。
  5. 集成 PlayerInput 组件

    • PlayerInput 组件紧密协作,确保每个玩家的输入都能被正确解析并与游戏逻辑挂钩。
    • 自动生成必要的 PlayerInput 实例,并将其添加到场景中,减少了手动设置的工作量。
  6. 支持多种输入设备

    • 不仅限于传统的键盘和鼠标,还支持现代的游戏手柄、触摸屏和其他专用控制器。
    • 确保所有类型的输入设备都能平滑地集成到本地多人游戏中,提供一致的用户体验。

一、PlayerInputManager组件参数

在这里插入图片描述

1、Notification Behavior 通知行为

当玩家进入时PlayerInputManager如何通知关联的对象。它的工作方式和PlayerInput的Behavior相同。忘记了可以回去看看:【PlayerInput组件的介】
在这里插入图片描述

  • SendMessage:将逻辑脚本挂载在和PlayerInput同一对象上,会通过SendMessage通知执行对应函数。
  • BroadcastMessage:将逻辑脚本挂载在其自身或子对象上,会通过BroadcastMessage通知执行对应函数。
  • Invoke UnityEvent Actions:通过拖拽脚本关联函数指明想要执行的函数逻辑。
  • Invoke C Sharp Events:通过C#事件监听处理对应逻辑,通过获取PlayerInput进行事件监听。

2、Join Behavior:玩家加入的行为

在这里插入图片描述

  • Join Players When Button Is Pressed:监听未与任何玩家配对的设备上的按键触发。如果玩家按下按钮并允许加入,使用他们按下按钮的设备加入新玩家。当有新设备加入按下任意键,或者没有任何玩家时按下任意键。实现比如按下任意键加入游戏。
  • Join Players When Join Action Is Triggered:类似于Join Players When Button Is Pressed,但是只有当玩家触发你定义的特定按钮时才加入玩家。例如,您可以设置玩家在按下特定游戏手柄按钮时才加入游戏。实现比如按下手柄中键加入游戏。
  • Join Players Manually:不要自动加入玩家。显式调用【

http://www.kler.cn/a/518778.html

相关文章:

  • 【云安全】云原生-Docker(五)容器逃逸之漏洞利用
  • uniapp 在线更新应用
  • 16.好数python解法——2024年省赛蓝桥杯真题
  • 政安晨的AI大模型训练实践三:熟悉一下LF训练模型的WebUI
  • YOLOv8改进,YOLOv8检测头融合DynamicHead,并添加小目标检测层(四头检测),适合目标检测、分割等,全网独发
  • 又是一年啊
  • 【Flask】在Flask应用中使用Flask-Limiter进行简单CC攻击防御
  • 钉钉群机器人设置——python版本
  • Android AOP:aspectjx
  • 二叉树的最小深度力扣--111
  • 嵌入式MCU面试笔记2
  • HBase的原理
  • c#使用Confluent.Kafka实现生产者发送消息至kafka(远程连接kafka发送消息超时的解决 Local:Message timed out)
  • 9.像素概念
  • 利用机器学习创建基于位置的推荐程序
  • 自定义数据集 使用tensorflow框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测
  • 【Linux】命令为桥,存在为岸,穿越虚拟世界的哲学之道
  • adc和dma的使用原理和过程
  • L9305驱动组件接口TESSY测试
  • OpenFGA
  • 小识JVM堆内存管理的优化机制TLAB
  • 基于模糊PID的孵化箱温度控制系统(论文+源码)
  • vue3 vue2区别
  • C#常考随笔1:const和readonly有什么区别?
  • [笔记] 极狐GitLab实例 : 手动备份步骤总结
  • Windows11离线安装wsl2(适用于 Linux 的 Windows 子系统)和Ubuntu