1. 输入控制指令设置
在Project Setting - Engine - Input 里设置输入按键
2. 360度自由旋转漫游相机
(1)创建蓝图类 - Pawn 此处命名为 "Pawn_360自由旋转查看_BP",点入编辑蓝图
(2)添加组件 Spring Arm (弹簧臂),在它下添加Camera;
弹簧臂设置要勾选“Use Pawn Control Rotation”以及“Enable Camera Rotation Lag”,弹簧臂长度Target Arm Length 可适当设置更长一点;
(3)在Event Graph 里设置Turn和LookUp事件分别控制左右和上下旋转
Compile之后把此蓝图拖入场景上空合适位置,点中此物件,在Details栏查找Possess,设置“Auto Possess Player” 为Player 0 点击Play预览
3. 第一人称漫游人物
(1)在文件夹新建蓝图类 - 角色Character,此处命名为“场景漫游角色_BP”,点入编辑;
(2)如前添加组件“Spring Arm” 和 “Camera”,勾选“Use Pawn Control Rotation” 和“Enable Camera Rotation Lag”;
(3)事件列表里设置“Turn”,“LookUp”,“MoveForward”,“MoveRight” 控制事件
(4)把此蓝图拖入场景地上某个合适位置,在Details栏里,取消之前给"Pawn_360旋转查看_BP"的默认Possess Player 0 设置,给"场景漫游角色_BP"设置为Player 0,点Play预览
4. 在两控制角色之间切换
(1)打开关卡蓝图,在变量中增加布尔变量“是否可以切换视野”,默认值设置为“是”;
(2)定义两个自定义事件(“切换到场景漫游”和“切换到360度漫游查看”),分别把视角和控制权给两个控制角色,并且用平滑过渡的方式(Set View Target with Blend节点),Target连Get Player Controller,New View Target 连对应的场景漫游角色(可从内容浏览器直接拖入面板);设置Blend Time和Blend Exp为2和3左右
连接Delay(数值要和之前节点的BlendTime一样)
然后连接Possess(“控制”)节点(也是连接Get Player Controller和场景漫游角色);
最后连接一个改变判断状态的节点,让“是否可以切换视野”的状态变为True
(3)设置切换触发按键事件,此处设置为键盘F键
节点搜索输入F Key,连接branch,Condition为“是否可以切换视野”,False不连节点,True的分支先设置“是否可以切换视野”的状态为“False”,然后连接Flip Flop,分别连上上面的自定义事件“切换到场景漫游”和“切换到360度漫游查看”,Compile,关闭,点击Play测试