ue4 打中物体,物体销毁
来源:互联网 发布:云服务器ecs绑定域名 编辑:程序博客网 时间:2024/05/01 08:27
如何让子弹或者一个物体发射出去之后让打中的物体消失呢?
在这里修改ue4的第一人称射击设计项目的模板。让子弹打中的物体消失
修改项目 .h 文件
改为
打开人物蓝图【.h】文件,添加一个方法
private: void RayCast();
右键该函数,选择【QuickActorSAndRefactorings】–>【Create Declaration/DeFinition】实现它
找到人物蓝图的【.cpp】文件。找到刚才实现的方法
void ARCCharacter::SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent){ //InputComponent->BindTouch(EInputEvent::IE_Pressed, this, &ARCCharacter::TouchStarted); if (EnableTouchscreenMovement(PlayerInputComponent) == false) { //注意修改这边的一个函数。调用Onfire函数变为执行RayCast // 原来的 PlayerInputComponent->BindAction("Fire", IE_Pressed, this, &ARCCharacter::OnFire); PlayerInputComponent->BindAction("Fire", IE_Pressed, this, &ARCCharacter::RayCast); }}
然后开始编写函数
void ARCCharacter::RayCast(){ //新建一个hitresult FHitResult * HitResult = new FHitResult(); //获得起始点 FVector StartTrace = FirstPersonCameraComponent->GetComponentLocation(); //获得forwardVector FVector ForWardVector = FirstPersonCameraComponent->GetForwardVector(); //设置最终点 FVector EndTrace = (ForWardVector*2000.f) + StartTrace; // Collision Query Params 碰撞查询参数 FCollisionQueryParams* CQP = new FCollisionQueryParams(); //判断发出射线是否碰撞 if (GetWorld()->LineTraceSingleByChannel(*HitResult,StartTrace,EndTrace,ECC_Visibility, *CQP)) { //如果有碰撞,就做一条射线 DrawDebugLine(GetWorld(),StartTrace,EndTrace,FColor(255,0,0),true); //判断是否打中Actor if (HitResult->GetActor()!=NULL) { //物体销毁 HitResult->GetActor()->Destroy(); } }}
忘记了很早以前参考哪位大神的了,在此谢过大神
阅读全文
0 0
- ue4 打中物体,物体销毁
- 销毁物体和ExecuteInEditMode
- UE4物体移动
- UE4物体描边
- UE4拾取物体
- UE4物体破碎
- 动态生成和销毁物体
- ue4制作可破碎物体
- UE4物体的碰撞检测
- UE4物体下落破碎效果
- UE4:物体查看小功能.
- UE4之物体描边
- 物体
- 物体
- 在一个父物体下面创建并及时销毁物体
- UE4 FBX静态网格物体通道
- UE4 Persona:骨架网格物体动画
- UE4:编辑器中显示物体包围框
- typedef struct和struct区别
- Linux下按扇区读写块设备
- JBDC介绍
- 存储过程和触发器
- 欢迎使用CSDN-markdown编辑器
- ue4 打中物体,物体销毁
- 各种开源协议介绍
- 基于R-CNN的物体检测
- 关于.getClass()和.class的区别
- 强制刷新组策略
- 通过(Node Js||.Net)基于HTML5的WebSocket实现实时视频文字传输1
- 单链表的简单冒泡排序
- C代码笔记(一)
- 二维表n*m转一维表n*1