【无标题】

Unity3d 使用InputSystem与Cinemachine实现鼠标右键按下旋转镜头

使用的unity版本是2021.3.10

一、组件添加和设置

1.两个插件的安装就不赘述,注意安装好后,在Project Settings\Player中启用InputSystem
在这里插入图片描述

2.Hierachy窗口中选择任意对象,编辑器上方菜单栏Component / Cinemachine / CinemachineFreelook,点击后自动创建虚拟相机对象和相关组件,设置好摄像机跟随目标 Follow 、朝向点Look At,其他设置看需要设置

在这里插入图片描述

3.重点:选择虚拟相机添加Cinemachine Input Provider 脚本组件,这个组件的作用是将input system的设置覆盖input manager,添加后CinemachineFreeLook默认轴设置会取消掉
在这里插入图片描述

二、InputAction

1.在Project窗口创建Input Actions

在这里插入图片描述

2.双击打开新创建的InputAction,打开编辑窗口

a.新建ActionMaps,任意命名,这里我命名为了CameraControl

b.选择CameraControl,添加Action,任意命名,这里我取名为XYAxis

c.选择XYAxis ,在最右侧栏中设置Action Properties,其中

    Action Type设置为Pass Through,表示输入的是持续变化的量

    重点:Control Type可以设置Delta 、vector2、Any 

        因为在ControlType下可添加的按钮path有限制:

            适配鼠标、滚轮、摇杆,推荐:Any,

            仅适配鼠标,推荐:Delta

            适配鼠标、摇杆,推荐:Vector2

        后续设置各个binding的path后,不要回头改变Control Type,否则可能会有游戏运动时切换相关按键,动作不生效的情况


    设置如图 (忽略Scroll和RightStick的binding)

在这里插入图片描述

d.点击XYAxis,点击+号,选择Add Binding With One Modifer(可以理解为组合键),创建名为MouseRigthDrag的输入组合

在这里插入图片描述

e.分别设置Modifier和Binding的Binding Properties ,注意两个输入的设置不能交换,Binding必须设置为Delta[Mouse]

在这里插入图片描述
在这里插入图片描述

注意,这里我在Binging的Prcocessors,添加了Scale Vector2,它的作用是对Pass Though进行再处理,这里我把Y的Scale设置为0,这样鼠标在Y轴的变化就不会影响镜头,可以根据需要添加,可以改变灵敏度

至此就完成了按下鼠标右键,拖拽鼠标的Action设置,记得保存设置

3.选择虚拟相机,在Project窗户中将设置后的Action拖入Cinemachine Input Provider脚本中的XY Axis 即可
在这里插入图片描述

最后的交互性建议:鼠标按下,最好隐藏鼠标指针,松开后重置鼠标位置。这样的交互体验会更好,相关Api可以阅读官方文档中Cursor
作者:幕云汨水 https://www.bilibili.com/read/cv18768387 出处:bilibili

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值