UE设置和使用物理材质形成不同交互效果
UE可以通过设置物理材质,使物体对于不同材质产生不同交互效果。比如:射击地面和射击人物产生不同效果,不同材质地面行走脚步声不同。
项目设置/物理:
创建物理材质,设置表面类型:
把物理材质设置给物理资产
然后进入代码:
武器的射击函数(使用的是射线检测):
-
//添加头文件
-
-
-
FCollisionQueryParams QueryParams;
-
QueryParams.bReturnPhysicalMaterial = true;
-
-
FHitResult Hit;
-
if (GetWorld()->LineTraceSingleByChannel(Hit, EyeLocation, TraceEnd, ECC_Visibility, QueryParams))
-
{
-
EPhysicalSurface SurfaceType = UPhysicalMaterial::DetermineSurfaceType(Hit.PhysMaterial.Get());
-
-
UParticleSystem* SelectedEffect = nullptr;
-
switch (SurfaceType)
-
{
-
case SURFACE_FLESHDEFAULT: //SurfaceType1使用了#defind重定义
-
case SURFACE_FLESHVULNERABLE: //SurfaceType2
-
SelectedEffect = FleshImpactEffect;
-
break;
-
default:
-
SelectedEffect = DefaultImpactEffect;
-
}
-
-
if (SelectedEffect)
-
{
-
UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), SelectedEffect, Hit.ImpactPoint, Hit.ImpactNormal.Rotation());
-
}
-
}
遇到的问题(ue4.27 vs2019):
.build.cs中应加入PHYSICSCORE
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "PHYSICSCORE" });
在项目同名头文件xxx.h中加入#define后,想在武器类中使用,无法#include
-
//xxx.h 项目同名头文件
-
-
目前解决方法:打开解决方案属性/VC 目录/常规/包含目录/编辑/创建新行
把xxx.h所在文件夹绝对路径加进去。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhgbhf
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01