zoukankan      html  css  js  c++  java
  • 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后,门关,同时火焰也不会在复燃。

  • 相关阅读:
    预备作业03
    预备作业02
    寒假作业01
    1179 最大的最大公约数(水题)
    HttpWebRequest
    python模拟银行家算法
    Lock锁与Condition监视器(生产者与消费者)。
    synchronized(){}同步代码块笔记(新手笔记,欢迎纠正)
    详解~实现Runnable方法创建线程之为什么要将Runnable接口的子类对象传递给Thread的构造函数
    语义web基础知识学习
  • 原文地址:https://www.cnblogs.com/reluctante1/p/12702640.html
Copyright © 2011-2022 走看看