03 - Creating Obstacles

创建障碍物蓝图类BP_Blocker 继承自Actor类 添加StaticMesh组件 并设置mesh为SM_Rock



编辑BP_FloorTile 地板类 添加4个箭头 放在地板末尾处 用来作为随机生成障碍物的位置


添加函数SetSpawnPoints函数  保存各个箭头的相对位置到添加的 数组变量 SpawnPoints中(视频中GetRelativeTransform 方法在新版中一发生变化)


添加SpawnBlocker函数 用来生成障碍物

Random Integer in Range 根据数组大小生成随机数 AddChildActorComponent 根据位置 以及Deatail中设置的Child类 动态添加actor到当前actor上


在floor的构造函数中调用上面两个函数 运行后应该可以看到随机生成的障碍物


此时障碍物是可以被穿透的 因为当前障碍物还没有添加碰撞网格

进入SP_FloorTile StaticMesh 中的SM_Rock 为岩石添加Collision 点击Collision/Add Convex Collision 点击窗口中的Apply 生成碰撞网格


运行后角色不能穿透了

编辑character蓝图 添加自定义事件Death 当碰撞体检测到碰撞时 调用character的death事件

该事件的逻辑是 设置变量IsDead为true 禁用输入操作 在当前的角色位置播放死亡特效,在当前位置播放死亡声音,设置角色的网格不可见 延迟2s后 输入Restartlevel 重启关卡



上面保存的Is Dead变量是要在tick事件中判断角色时候还继续向前移动 如果没有死亡的话 继续移动


在BP_Block中添加碰撞检测 调用character的Death事件


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容