【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:不要自动加入玩家。显式调用【

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/961681.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[C语言日寄] 源码、补码、反码介绍

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…

记录 | 基于Docker Desktop的MaxKB安装

目录 前言一、MaxKBStep 1Step2 二、运行MaxKB更新时间 前言 参考文章:如何利用智谱全模态免费模型,生成大家都喜欢的图、文、视并茂的文章! MaxKB的Github下载地址 参考视频:【2025最新MaxKB教程】10分钟学会一键部署本地私人专属…

元宇宙下的Facebook:虚拟现实与社交的结合

随着科技的不断进步,虚拟现实(VR)技术逐渐从科幻走入现实,成为人们探索未来社交方式的重要工具。在这一浪潮中,Facebook(现为Meta)作为全球领先的社交平台,正在积极布局虚拟现实和元…

DeepSeek-R1 本地部署模型流程

DeepSeek-R1 本地部署模型流程 ***************************************************** 环境准备 操作系统:Windows11 内存:32GB RAM 存储:预留 300GB 可用空间 显存: 16G 网络: 100M带宽 ********************************************…

实验三---基于MATLAB的二阶系统动态性能分析---自动控制原理实验课

一 实验目的 1、观察学习二阶控制系统的单位阶跃响应、脉冲响应 2、记录单位阶跃响应曲线、脉冲响应曲线 3、掌握时间响应分析的一般方法 4、掌握系统阶跃响应曲线与传递函数参数的对应关系 二 实验仪器 计算机 MATLAB软件 三 实验内容及步骤 1、作以下二阶系统的单位阶跃响应…

爬虫基础(一)HTTP协议 :请求与响应

前言 爬虫需要基础知识,HTTP协议只是个开始,除此之外还有很多,我们慢慢来记录。 今天的HTTP协议,会有助于我们更好的了解网络。 一、什么是HTTP协议 (1)定义 HTTP(超文本传输协议&#xff…

ZZNUOJ(C/C++)基础练习1011——1020(详解版)

1011 : 圆柱体表面积 题目描述 输入圆柱体的底面半径r和高h,计算圆柱体的表面积并输出到屏幕上。要求定义圆周率为如下宏常量 #define PI 3.14159 输入 输入两个实数,表示圆柱体的底面半径r和高h。 输出 输出一个实数,即圆柱体的表面积&…

【电工基础】2.低压带电作业定义,范围,工作要求,电工基本工具

一。低压带电作业 1.低压带电作业定义 低压带电作业是指在不停电的低压设备或低压线路上的工作。对于一些可以不停电的工作,没有偶然触及带电部分的危险工作,或作业人员使用绝缘辅助安全用具直接接触带电体及在带电设备外壳上的工作,均可进行…

SpringSecurity:There is no PasswordEncoder mapped for the id “null“

文章目录 一、情景说明二、分析三、解决 一、情景说明 在整合SpringSecurity功能的时候 我先是去实现认证功能 也就是,去数据库比对用户名和密码 相关的类: UserDetailsServiceImpl implements UserDetailsService 用于SpringSecurity查询数据库 Logi…

如何解压rar格式文件?8种方法(Win/Mac/手机/网页端)

RAR 文件是一种常见的压缩文件格式,由尤金・罗谢尔(Eugene Roshal)开发,因其扩展名 “rar” 而得名。它通过特定算法将一个或多个文件、文件夹进行压缩,大幅减小存储空间,方便数据传输与备份。然而&#xf…

锁升级过程与优化操作

前文我们学习了CAS自旋锁知道CAS对应的就是一条指令操作,属于一种轻量级锁,那么有轻必有重,从无锁到轻量级锁到重量级锁是一个升级过程,此文我们对锁升级的过程以及一些优化锁的操作一探究竟。 1. 锁升级 从前文 《程序员不可能不…

IoTDB 2025 春节值班与祝福

2025 春节快乐 瑞蛇迎吉庆,祥光映华年,2025 春节已近在眼前。社区祝福 IoTDB 的所有关注者、支持者、使用者 2025 新年快乐,“蛇”来运转! IoTDB 团队的春节放假时间为 2025 年 1 月 27 日至 2 月 4 日,1 月 25 日、26…

neo4j-community-5.26.0 install in window10

在住处电脑重新配置一下neo4j, 1.先至官方下载 Neo4j Desktop Download | Free Graph Database Download Neo4j Deployment Center - Graph Database & Analytics 2.配置java jdk jdk 21 官网下载 Java Downloads | Oracle 中国 path: 4.查看java -version 版本 5.n…

matlab中,fill命令用法

在 MATLAB 中,fill 命令用于创建填充多边形的图形对象。使用 fill 可以在二维坐标系中绘制填充的区域,通常用于绘制图形的背景或显示数据分布。 基本语法 fill(X, Y, C)X 和 Y 是同样长度的向量,定义了多边形的顶点坐标。C 是颜色&#xff0…

ThinkPHP 8 操作JSON数据

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…

Java—三种遍历方式

迭代器遍历 特点&#xff1a;迭代器不依赖素引 迭代器使用案例一般在集合中使用 import java.util.ArrayList; import java.util.Collection; import java.util.Iterator;public class text1 {public static void main(String[] args) {Collection<String> collnew Arr…

线性调整器——耗能型调整器

线性调整器又称线性电压调节器&#xff0c;以下是关于它的介绍&#xff1a; 基本工作原理 线性调整器的基本电路如图1.1(a)所示,晶体管Q1(工作于线性状态,或非开关状态)构成一个连接直流源V和输出端V。的可调电气电阻,直流源V由60Hz隔离变压器&#xff08;电气隔离和整流&#…

leetcode——二叉树的最大深度(java)

给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3 示例 2&#xff1a; 输入&#xff1a;root [1,null,2] 输…

K8S中高级存储之PV和PVC

高级存储 PV和PVC 由于kubernetes支持的存储系统有很多&#xff0c;要求客户全都掌握&#xff0c;显然不现实。为了能够屏蔽底层存储实现的细节&#xff0c;方便用户使用&#xff0c; kubernetes引入PV和PVC两种资源对象。 PV&#xff08;Persistent Volume&#xff09; PV是…

IVD设备-GB4793.1 安规理解笔记

IVD设备-GB4793.1 安规理解笔记 参考国标文档 GB4793.1接地电阻试验试验通过的标准 耐压试验试验通过的标准 浮地危险带电部分与可触及导电零部件之间耐压试验通过的标准 参考国标文档 GB4793.1 接地电阻试验 图1GB 4793.1-2007标准 附录F.2 ⌘根据F.1要求内容是关保护接地电…