首页 > 编程 > C++ > 正文

UE4学习4 用射线控制物体转圈圈 C++

2019-11-06 07:49:39
字体:
来源:转载
供稿:网友

上一篇博客里 咱已经在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());				}			}嗯。就是酱紫


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选