• UE4复习1_碰撞事件


    学的东西不用就容易忘,所以决定认真梳理一下学习ue4时的知识点。

    首先就是ue4里的碰撞事件了。碰撞事件是ue4里比较常用的事件,用来判断某actor或者某character是否处于或者不处于某个空间中,并执行相应的命令。

    1. 自动门的实现

    场景里有一个“门”,需要人物靠近才能打开。

     (这个白板相当于自动门的一半)

    首先要设置一个 triggerbox,也就是一个 正方体的触发器。

    ps.要记得把白板设成可移动的。

    然后打开关卡蓝图,在场景中选中cube的情况下右键,创建引用。

    碰撞事件的触发使用的是,OnActorBeginOverlap这个事件,代表triggerbox接受到碰撞了。

    同时用 OnActorEndOverlap这个事件表示碰撞中止了,比如你的人物离开了该区域。

    2.灯光的开关

     如图,三个橙框里面分别是一个 灯的类蓝图,同时自带triggerbox。同时外面还有一个绿色的框,也是一个triggerbox。

    假如我们想实现游戏中灯光的开关,首先我们得靠近灯,然后按开关,这样比较符合逻辑。

    在这个项目里我实现的是,进入某灯的triggerbox之后按键来控制该灯开关;进入绿色box后三灯全亮,离开绿色box三灯全灭。

    蓝图如下:

     上图为灯的类蓝图。首先进入box后得使用enable input才能接受输入,同时离开box后便不允许接受输入。

     

     ps. turn on是写在灯类蓝图中的函数。

    这里要重点说一下,两种控制灯光函数的不同。

    一种是在灯类蓝图中使用控制单个灯开关的toggle visibility,另一种是在函数里使用的set visibility。

    简而言之,前者不接受布尔值,后者接受布尔值。

    在项目中来看就是,使用toggle visibility,你可以连续触发(如狂按F),按一下开,再按一下关。

    但假如换成 set visbility,因为他通过接受布尔值来决定灯光是否可见,所以你只能按一次。按一次开,在按就没用了。因为你已经给他通过输入事件设定了布尔值,再按设定相同的布尔值是没用的。

    toggle visibility也可以用来设置辅助文本的显示与否。比如靠近一个灯之后,显示“按F开灯”之类的。

    3.着火的石头门

     

     火焰的添加是在左上角,添加粒子效果,particle system

    该类型的“熄灭”控制的函数是set active

    另外要重点说一下的是set relative location

    是指类蓝图中物体相对于 Root的位移,即左上角的DefaultScenceRoot

    最终效果是进入box,门开,火焰在延迟0.2s后开始熄灭。离开box后,门关,同时火焰也不会在复燃。

  • 相关阅读:
    docker容器跑tomcat遇到的坑
    PCL 编程多个点云合成
    PCL 常用小知识
    PCL点云库中的坐标系(CoordinateSystem)
    Ubuntu14.04(64位)下gcc-linaro-arm-linux-gnueabihf交叉编译环境搭建
    Windows cmd 快捷操作
    #Pragma Pack与内存分配
    线段上的整数点个数
    基于PCL绘制模型并渲染
    rosbag数据记录及转换图片、视频
  • 原文地址:https://www.cnblogs.com/reluctante1/p/12702640.html
Copyright © 2020-2023  润新知