UE4(虚幻4)基础:蓝图初识--开关门(四)拾取钥匙打开门

拾取钥匙打开门:玩家通过寻找钥匙,通过钥匙来控制门的打开关闭,类似解密;

1.创建蓝图类和模型:

创建的方法如我的上一篇文章:  键盘控制门    <--戳这里

如果你看过我之前的几篇关于开关门的文章,就很容易了,这里我就不多说了;

其他此类文章  <--

2.处理蓝图,事件图表


和键盘控制门不同的是,键盘控制门是当玩家靠近时按下E键就发生相应的事件,而钥匙开关门是

1.玩家寻找钥匙

2.靠近门(进入盒体触发器区域)

3.按下E键

所以两者的不同之处就是先要寻找钥匙,不然门不会开

有编程基础的人可能一下子就会想到可以用一个bool变量来控制,1表示可以开门,0表示不能开门,当找到钥匙的时候就将这个bool变量置为1,默认情况下为0;

那我们在蓝图中实现:

1.门蓝图类:

保留之前”键盘控制门“的所有逻辑:

新增:

在左侧找到“变量”,点击+,添加bool变量,点击新建的变量可以在右侧修改变量类型及默认值

      

连接:

其中分支相当于是一个if,Condition是用于判断的条件

逻辑:按下E键,判断bool变量“是否开门”的值,如果为1走True执行开门,如果为0走False打印提示字符串

门蓝图类的总连接图:

编译,保存

2.钥匙蓝图类

点击蓝图,选择新建空白蓝图类,选择第一个Actor,然后保存路径,命名,完成后就会生成在的路径下

           

双击此蓝图类

点击左上角添加组件,选择common下的静态网格体组件,起名为key,点击该组件,在右侧可以添加网格体和材质

(你也可以去网上下载一个钥匙模型,我这里就用正方体代替了)

     

在左侧再次点击添加组件,搜索Sphere(球体触发器),选择Sphere Collision,点击添加的Sphere,调整大小,意义是玩家在进入该触发器区域内时才可以拾取钥匙

点击Sphere,在右侧滑倒最下面,添加事件中的开始重叠和结束重叠(进入触发器区域和离开触发器区域)

和开门一样,也需要按键拾取,这里假如还是E,原理和门一样,这里就不说了

(我在进入触发器区域的时候加了一个测试提示可以拾取)

 

Q:剩下的逻辑就是我拾取钥匙之后怎么才能设置刚刚的bool变量(这是两个毫不相干的蓝图类)

A:这时就可以用到     “获取所有Actor的类” (右键搜索)

在Actor Class中找到你自己刚刚建的门的类名

Q:一个场景中可能有很多个门,那我们怎么找到对应的门呢?

A:这里面是用数组存的(从开始),从Out Actors引脚拖拽拉出搜索get,选择工具->数组->get(复制)

因为我们这里只有这一个门,所以是0

最后一步就是拾取完钥匙之后,钥匙就没了,将其销毁

右键搜索“销毁” ,选择“销毁组件(key)”

总连接:

 

编译,保存

将制作好的钥匙和门拖拽到场景中尝试:

       

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章