您的位置:首页 > 产品设计 > UI/UE

UE4蓝图:自定义鼠标操作.

2018-03-19 19:05 2501 查看
之前提到过一些基本的键盘按键事件,以及用Is Input Key Down节点来判断指定节点是否被按下.这篇博客主要是一些关于鼠标事件的基本处理.

首先我们在地图编辑器中拖出一个Box.先把Box设置为静态模型,并且修改为可移动的属性,然后选中他之后进入关卡编辑器.右键获得Box的节点.不知道怎么修改的可以到http://blog.csdn.net/qq_37233607/article/details/79581262查看.

接下来我们想要通过鼠标左右键的的点击来让这个Box进行旋转.通过鼠标X轴方向和Y轴方向的移动来移动Box.

1.鼠标左右键旋转Box

右键输入left mouse获得Left Mouse Button节点.再添加旋转Actor的节点,当我们点击左键的时候,Box在Roll的方向逆时针旋转10°.





同理我们可以得到鼠标右键的节点.进行Roll方向的顺时针10°.不清楚Roll,Pitch,Yaw是怎么旋转的,可以到http://blog.csdn.net/yuzhongchun/article/details/22749521进行理解.



编译后执行可以发现,实现了简单的旋转.但是当鼠标键一直按下的时候,它却只执行一次,这个问题在前面的博客已经说过了,所以只需要用Event Tick帧事件节点去调用即可.

由于基本节点之前都说明过,这里就不赘述了.最后的蓝图是这样的.



编译后运行的结果是这样的:



2.通过鼠标的移动来控制Actor的移动.

鼠标的移动主要有两个方向,一个X轴,即我们水平平移鼠标,一个Y轴,我们竖直移动鼠标,斜着移动鼠标,分解后就是两个方向上的移动.

当我们编译运行任何一个Default的关卡,会发现鼠标的移动控制着视口,也就是摄像机的移动,所以当我们用鼠标的移动来控制Actor移动的时候,必须切换下

我们点击Settings下的World Settings菜单项.



看到现在的游戏模式,是没有使用游戏模式的,也就是默认的.



我们点击最右边的+号,创建一个新的游戏模式,然后重命名保存即可.然后发现游戏模式默认是新创建的模式了,然后我们把下面的Default Pawn Class设置为Node.说明把默认控制器设置为了Node.



接下来我们回到关卡蓝图中编译运行发现,所有的场景漫游的操作都失效了,只有刚才设置的鼠标左键和右键的操作还能旋转.右键获得Mouse X和Mouse Y节点.可以看到有两个Mouse X,分别位于Mouse Events和Mouse Values下面.分别是事件和值.Mouse X节点的返回值即是Mouse Values下的Mouse X的值.也就是鼠标水平平移的距离.



我们可以拖动这个返回值,获得Break Vector节点,发现原来这是一个结构体.分别有x,y,z三个float变量.



所以在后面我们通过Make Vector节点创建一个变量,用这个变量来设置Actor的移动.



编译后运行,发现鼠标左右键可以控制Actor的旋转,鼠标的移动可以控制着Actor的移动.这就是实现我们的目的了,当然如果你想要通过Event Tick帧事件去进行移动操作的话,也是可以的.同样用Is Input Key Down节点判断鼠标的移动.然后进行相应的操作.节点有点乱..不擅长整理.望见谅..

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  UE4