- 博客(24)
- 收藏
- 关注
原创 UE4C++中如何申明“TSubclassOf”型数组
之前查了查居然没人回答过,不废话,直接看代码:UPROPERTY(EditDefaultsOnly)TArray<TSubclassOf<AActor>> ArrayOfActor;
2019-09-30 12:18:52
743
原创 UE4 C++ 中如何控制武器开火频率
开火频率如果只是在Tick中简单实现会有诸多问题这里可以使用定时器函数来调用开火,定时器已在之前文章中讲到这里不赘述。 首先声明一些我们需要的变量:float LastFireTime; //记录之前开火的时间float RateOfFire = 400.0f; //每分钟的开火速率float TimeBetweenShots = 60/RateOfFir...
2018-08-14 00:03:01
984
原创 UE4 C++ 中如何设置物理材质
UE4中物理材质可以让游戏中的对象识别出材质的不同从而做出不同响应,如子弹打在不同材质上播放不同特效,人物走在不同陆面上发出不同的脚步声等等。 首先需要在工程设置中找到Engine->Physice滚动到PhysicalSurface:可以看到SurfaceType就是我们可以添加的材质类型 这我添加了两个。重启引擎后,就可以新建PhysicalMaterial:...
2018-08-11 11:34:06
4553
原创 UE4 C++ 中设置镜头抖动
镜头抖动可以为武器开火做出有“后坐力”的感觉 。 调用相机抖动需要获取PlayerController类型: APlayerController * PC = Cast<APlayerController>(MyOwner->GetController());之后调用ClientPlayCameraShake函数,函数的参数类型为UCameraShake:P...
2018-08-08 11:52:40
1979
原创 UE4 C++ 使用控制台变量
控制台变量可以控制游戏开发版中各项Debug信息。 列举AutoConsoleVariableRef: 首先声明要控制的变量,static int32 DebugWeaponDrawing = 0; 使用AutoConsoleVariableRef即可控制修改变量,FAutoConsoleVariableRef CVARDebugWeaponDrawing(TE...
2018-08-07 11:09:46
1808
原创 UE4 C++伤害应用基础(1)
“点伤害“通常应用与射击伤害:#include“Kismet/GameplayStatice.h” UGameplayStatics::ApplyPointDamage(HitActor , 10.0f , ShotDirection , Hit , MyOwner->GetInstigatorController() , this , UDemageType); 参数为...
2018-07-31 17:36:32
1052
原创 UE4 C++ 网络联机基础(3)
如果服务器需要对客户端广播执行一个函数可以使用UFUNCTION(NetMulticast),因为GameMode只在服务器中执行,所以通常这种广播执行可以在GameMode中指定GameState来调用该函数实现服务器广播客户端执行。 GameMode中获取GameState方法:AMyGameState * GS = GetGameState<AMyGameState...
2018-07-24 11:43:45
1054
原创 UE4 C++ 网络联机基础(2)
Pawn类当中拥有一个RemoteViewPitch成员变量,该变量已经复制客户端中玩家Pitch的旋转量,可以用其来进行服务器中pawn类型Pitch旋转的同步。值得注意的是RemoteViewPitch的类型是Unit8并且被压缩不接受负数 想要得到实际的旋转量需要将其乘以360在除以255即可。 IsLocallyControlled()函数用来检查当前Pawn是否受到本地控...
2018-07-23 17:47:26
1173
原创 UE4 C++ 网络联机基础(1)
若要允许当前Actor可以被服务器复制:SetReplicates(true); 若要允许当前Actor可以被服务器复制移动:SetReplicatesMovement(true); 客户端若要通知服务器调用函数:函数红参数为UFUNCTION(Server,Reliable,WithValidation)Server标记为服务器函数 ,Reliable确保能够链...
2018-07-16 17:36:40
2056
原创 UE4 C++ 中使用定时器
声明时间头FTimerHandle Hand; 时间头可以控制定时器的停止暂停等功能 这里不一一演示。绑定函数GetWorldTimerManager().SetTimer(Hand,this,&XXX::Fun, 3.0f, false ,-1.0f);参数为 时间头 调用对象指针 调用函数 等待时间 是否循环调用 首次执行延时。清除记时器GetWorldTimerManager()...
2018-07-15 17:39:52
2961
原创 UE4 C++ 中使用感知组建(PawnSensingComponent)
首先声明 这之后的文章只是供自己记录学习 并不是“教程” 如有错误欢迎指正 谢谢!使用AI功能首先要在 XXXProject.Build.cs中添加“AIModume” UE4中AI组建独立与引擎。头文件“Perception/PawnSensingComponent.h”类中添加PawnSensingComponent组件后无需设置层级关系视觉感知:SensingComp->OnSeeP...
2018-07-15 17:08:48
1710
1
原创 UE4 Multiple configurations specified on command line
这个问题我在重新安装ue4和vs后创建新C++工程遇到,一开始还以为是环境问题。其实八成是项目命名有问题我命名成了“test”改了就好了,尽量使用驼峰命名。...
2018-04-10 11:19:06
2546
原创 UE4打包安卓项目遇到UATHelper: Packaging (Android (ETC1)): ERROR: cmd.exe failed with args的解决方案
我假设你已经安装了UE4自带的安卓环境CodeWorksforAndroid-1R6u1并不会在此演示 详细请看https://docs.unrealengine.com/latest/INT/Platforms/Android/GettingStarted/1/index.html在打包几个小时后出现“UATHelper: Packaging (Android (ETC1)): ER
2017-12-13 12:45:29
13821
2
原创 UE4C++中函数以及变量公开到编辑器说明
ue4C++中定义变量如想公开到编辑器编辑,可在参数声明上方添加 UPROPERTY 宏即可公开 如下图其中UPROPERTY的参数EditAnywhere允许编辑器进行编辑,BlueprintReadWrite运行编辑器获取和写入,Category则是变量所在的类型名称没有的话会自动创建。上图中VisibleAnywhere则是不允许编辑器编辑,BlueprintRead
2017-09-02 18:55:01
3061
1
原创 UE4中灯光和天空大气的设置说明
ue4里常用场景简单的设置解释和说明1.射灯(其他灯光大同小异就不挨个解释了)2.天光(其他设置和射灯一样)3.大气4.雾气5.天空球(转载请注明作者!)
2017-09-02 18:14:17
33249
原创 UE4中的世界光照如何设置?
初学UE4肯定会对UE4强大的视觉效果所吸引,构建出以假乱真的效果需要多方面的调整和打磨。本人是程序员,对美术没有过多研究,所以简单介绍一下最重要的世界光照设置调整。
2017-07-16 10:04:41
30657
4
原创 UE4打包时出现 FMemoryWriter does not support data larger than 2GB 的解决方案
博主前段时间做一个小型别墅的场景,一开始还能正常打包,但在提高渲染效果构建场景后打包,出现了错误。仔细观察后发现大致意思是 FMemoryWriter 不支持超过2gb大小的场景 ,于是百度找了好久没找到。翻墙后才找到了一点头绪。它的意思是单个场景太大,于是我看了场景文件 发现只有800mb ,那为什么会提示场景超过了2gb呢?仔细思考后发现我的场景构建参数很高,平均每个物体的阴影
2017-07-02 11:35:29
5932
2
原创 UE4如何添加开场Logo动画?
我们可以看到好多游戏在开场的时候都有自家公司和工作室的Log动画,在UE4里添加开场动画很简单。首先要有一段mp4格式的视频动画,帧数不要超过30,可以看我这个2秒的log动画。视频准备好了打开项目设置,找到视频设置。点击StartupMovies的加号,添加一个视频位置后找到视频文件选择就好。然后保存选择独立窗口运行。这样就可以看到开场动画了!
2017-06-19 12:03:54
8030
2
原创 为什么UE4动态物体在哪里都会反射阳光?
这个问题在之前注意到过,但一直没时间解决,直到我看到了别人的动态物体和我的动态物体的差别时才意识到问题。先来看一下别人的工程内这个动态物体:在这个图中桌子和书都是动态物体,但光照效果也很自然,在来看一下我的这个书:这个桌子是静态的,而书是动态的 ,可以看到书的光照和桌子相差很多,因为书在室内也默认接收到了太阳的光照,还有这盆花的光照也很奇怪,所以我在仔细寻找对比后发现:
2017-06-11 17:21:28
2532
原创 如何在UE4 C++中进行按键绑定
ue4中C++的按键绑定虽然没有蓝图那么方便的调用 但也不难:(如有错误欢迎指正)首先要在编辑器中点开项目设置:选择输入设置:在这里看到有两种按键设置选项 第一个Action代表输入响应只有两种状态 按下和松开即1和0,第二种Axis代表输入时会返回一个轴值即按下和抬起的时间 返回的是一个0.1-1.0的数来模拟按下按键时移动速度慢慢增加 这里我们选Action的加号来新
2017-06-05 15:16:52
8387
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人