UE4学习4 用射线控制物体转圈圈 C++
2017-03-04 10:15
417 查看
上一篇博客里 咱已经在TouchBegan里面获取了物体 还是射线获取滴。
思路:接下来。在TouchMove里面 再发射一条射线 然后。打中物体就按打中那里的坐标算 没打中就按射线的end坐标算
这个坐标减去物体的坐标 得到一个FVector 这个物体SetActorRotation就阔以转了
来。完整马
FCollisionQueryParams Trace(FName(TEXT("TRACE")), true, GetPawn());//建立射线
Trace.bReturnPhysicalMaterial = false;
Trace.bTraceComplex = true;
Trace.AddIgnoredActor(GetPawn());//忽略默认人物棋子
FHitResult Hit(ForceInit);//这个hit装反馈信息
UWorld*world = GetWorld();
if (world) {
ECollisionChannel CollisionChannel= ECC_Pawn;//貌似是个忽略Actor 。
world->LineTraceSingleByChannel(Hit, lbeg, lend, CollisionChannel, Trace);
if (Hit.GetActor())
{
FVector Dir = Hit.Location - Sphere->GetActorLocation();//如果打中实物 就实物坐标减去物体坐标得到一个方向FVector
Dir.Z = 0;
Sphere->SetActorRotation(Dir.Rotation());
}
else if (!Hit.GetActor()) {
FVector Dir = lend - Sphere->GetActorLocation();//没打中东西就按鼠标射线的末端算咯。。
Sphere->SetActorRotation(Dir.Rotation());
}
}嗯。就是酱紫
思路:接下来。在TouchMove里面 再发射一条射线 然后。打中物体就按打中那里的坐标算 没打中就按射线的end坐标算
这个坐标减去物体的坐标 得到一个FVector 这个物体SetActorRotation就阔以转了
来。完整马
FCollisionQueryParams Trace(FName(TEXT("TRACE")), true, GetPawn());//建立射线
Trace.bReturnPhysicalMaterial = false;
Trace.bTraceComplex = true;
Trace.AddIgnoredActor(GetPawn());//忽略默认人物棋子
FHitResult Hit(ForceInit);//这个hit装反馈信息
UWorld*world = GetWorld();
if (world) {
ECollisionChannel CollisionChannel= ECC_Pawn;//貌似是个忽略Actor 。
world->LineTraceSingleByChannel(Hit, lbeg, lend, CollisionChannel, Trace);
if (Hit.GetActor())
{
FVector Dir = Hit.Location - Sphere->GetActorLocation();//如果打中实物 就实物坐标减去物体坐标得到一个方向FVector
Dir.Z = 0;
Sphere->SetActorRotation(Dir.Rotation());
}
else if (!Hit.GetActor()) {
FVector Dir = lend - Sphere->GetActorLocation();//没打中东西就按鼠标射线的末端算咯。。
Sphere->SetActorRotation(Dir.Rotation());
}
}嗯。就是酱紫
相关文章推荐
- UE4学习笔记-人物旋转控制(c++实现)
- UE4学习3 射线获取场景中的物体
- Thinking In C++ 学习笔记(2)名字控制
- 复制控制(学习<C++Primer>)
- c++学习笔记之复制控制与stl算法
- c++反汇编学习笔记----------3.流程控制
- C++ 学习笔记 I/O流的常用控制符
- Unity3d 5.x 学习笔记(2)—— 键盘控制物体移动与转向 (move and rotate)
- C++学习之继承中的访问控制
- 【C++学习笔记】使用控制符及流对象的成员函数控制输出格式
- C++入门学习笔记(二)--类的复制控制
- C++学习第6篇-程序流程控制
- 【C++ rimer 学习笔记】ch13 复制控制
- libgdx 学习笔记(三)四个方向键控制物体移动
- C++学习之继承中的访问控制
- 智能指针:复制控制!《C++Primer 》第13章学习纪要
- C++学习笔记十三-复制控制
- C++学习笔记十三-复制控制
- C++学习之继承中的成员访问控制
- C++流程控制中用于跳转的return和goto语句学习教程