射线碰撞检测"/>
UE4第一人称游戏 ——(5)射线碰撞检测
1. 代码
角色cpp文件加入头文件
#include "Kismet/KismetSystemLibrary.h"
开火函数加入以下代码
射线起始位置用摄像机位置+100,要不然感觉在脑袋后面
射线结束位置在相机位置+1500+起始位置,大概15格距离
FVector FireStart,FireEnd;FireStart = TppCamera->GetComponentLocation()+ TppCamera->GetForwardVector() * 100; FireEnd = TppCamera->GetForwardVector() * 1500 + FireStart;FHitResult OutHit;TArray<AActor*> ActorsToIgnotre;UKismetSystemLibrary::LineTraceSingle(this, FireStart, FireEnd, ETraceTypeQuery::TraceTypeQuery1, false, ActorsToIgnotre, EDrawDebugTrace::ForDuration, OutHit, true);
如下图结果
注:
不要尝试删掉弹簧臂只用相机和胶囊体,因为这里用弹簧臂控制旋转了,我试过一次了,删掉之后动不了不说,视角也变换不了。
更多推荐
UE4第一人称游戏 ——(5)射线碰撞检测
发布评论