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

UE4蓝图:自由控制Actor移动

2018-03-16 14:25 483 查看
之前一直是简单的输出,不免有些乏味,这篇开始就可以操作物体的移动.我们利用关卡蓝图让Box跟着我们的操作去动起来.首先我们创建好一个默认的关卡,然后拖动出一个Box.



然后我们在内容区域,右键点击Material,重命名后双击它.进入材质编辑器.



进入材质编辑器后,右键输入vector parameter,获得VectorParameter节点,进行如下设置用来改变Box的基础颜色.



白线连接后,保存.这就是所谓的材质编程.



我们可以在初学者内容找到材质文件夹,然后双击一个材质进去看看.





然后我们左键点击Box的一个面,然后点击Shift+B,用来选中所有的面.然后把刚刚通过材质编辑器编辑好的材质,拖动进去.



然后我们需要在这个Box的属性面板中去修改它.把它修改为静态网格物体.



还要把它设置为可移动的,因为默认是静态的话,还是不能被移动的.



然后我们就可以打开关卡蓝图去设置了.可以看到关卡蓝图中默认有两个事件节点,Event BeginPlay是指关卡运行起来的时候执行的节点,而Event Tick是指每帧调用的事件节点,一般来说每秒60帧是人眼最适合的帧数.Event Tick



我们可以利用Event Tick节点,定时每一秒输出一次.



编译后执行.



我们回到关卡中,左键选中Box,然后到关卡蓝图中右键,发现可以获得选中的Box的引用.



接下来从蓝点左键拖拽出去到空的地方释放,然后输出add actor local.获得AddActorLoaclRotation节点,它是根据当前的情况进行旋转.把X,Y,Z三个方向的数值设置为1,1,1.



可以看到这个Box在不停的旋转.



下面我们要自己按键去控制Box的移动.右键找到Input目录下,Keyboard Events,中找到Up,Down,Left,Right四个按键节点.分别对应键盘上的上下左右四个键.



然后四个方向键分别去连接一个移动Box的节点,修改好具体的偏移量.



编译后运行就可以发现每次按下一个方向键的时候,都会偏移一点距离,但是一直按住方向键,却不能一直移动,而只是移动一次.所以这样很麻烦,也很不友好.所以我们可以在帧事件中去判断,用户是否按下了某个键,然后去执行相应的节点.

关闭右上角的情景关联,输入is input key,获得Is Input Key Down节点,这个节点用于判断指定的键是否被按下.返回一个bool值.



然后我们输入get player control获得Get Player Control节点,用来获得控制器.然后连接节点.判断是否按下了Up键,如果按下了则向前移动.



然后我们可以复制这些节点.可以选中要复制的节点,然后把鼠标移动你要复制到的地方,按下Ctrl+W.就可以发现成功复制出来了.

完成四个节点,编译后执行,发现按下一个键后,可以一直执行某一个节点.



这里有个问题,当你通过Event Tick节点判断某个键是否被按下的时候,最好不要与已有的按键事件节点冲突.

当已经有按键N的事件时,再从Event Tick去执行按下N的节点.



可以发现先打印的是按键N的事件节点,然后才是Event Tick的帧事件节点.

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