UE/虚幻 通过在线子系统访问线上服务(OnlineSubsystem/OnlineSubsystemSteam)
我们通过Steam访问线上服务不知道怎么配置的可以看我的另一篇 [UE /虚幻 Steam配置] 配置完成后在角色类的头文件中添加一个变量用于存储获取到的会话接口 123456public: // 指向在线会话接口的指针 // #include "Interfaces/OnlineSessionInterface.h" 添加头文件 IOnlineSessionPtr OnlineSessionInterface; // IOnlineSessionPtr 就是 TSharedPtr<class IOnlineSession, ESPMode::ThreadSafe> // TSharedPtr<class IOnlineSession, ESPMode::ThreadSafe> OnlineSessionInterface; 然后在角色类的构造函数中获取到在线子系统,并通过在线子系统获取会话接口,然后打印出在线子系统的名称 12345678910// #include...
UE /虚幻 Steam配置
第一步:在项目插件中,打开Online Subsystem Steam 第二步:打开项目C++文件,在 .Build.cs文件下的公共依赖模块名称中添加 OnlineSubsystem 和 OnlineSubsystem 第三步:找到官方文档的OnlineSubsystemSteam的DefaultEngine.ini中需要添加的配置,并找到当前项目文件夹内的该文件,将配置内容添加上去,其中 SteamDevAppId 既开发者应用ID需要自己去Steam申请,这里480是Steam“太空战”使用的开发ID 第四步:关闭项目编译器和VisualStudio,找到项目文件下三个文件,将其删除后重新生成VisualStudio文件 以上就完成了UE中的Steam配置
UE/虚幻 简单局域网连接
蓝图实现 创建一个联机地图,我命名为 “ onlineMap01 ” ,然后在角色蓝图中创建两个按钮事件,一个用于打开地图,另一个用于加入创建的地图 OpenLevel的options中的listen是指定监听服务器,简单来说就是将当前端设为服务端 可以利用UE编辑器直接开两个标准窗口测试,或者打包到同局域网下进行测试,不过如果是不同电脑,则需要修改ip地址,一端先按1键,创建地图,并将当前端设置为监听服务器,然后通过另一端按2键加入该地图 UEC实现 创建一个联机地图,我命名为 “ onlineMap01 ” ,然后去到角色类中,创建相关函数进行开启服务和加入服务 这里有两种方式加入服务 第一种是通过OpenLevel函数利用ip加入 第二种是通过获取当前玩家的玩家控制器,在利用玩家控制器的Client Travel 函数通过ip加入 头文件,申明所需要的自定义函数 123456UFUNCTION(BlueprintCallable) void OpenOnlineMap();UFUNCTION(BlueprintCallable) void...
UE/虚幻 蓄力攻击思路
蓄力攻击:按住攻击键一段时间后自动或松开时释放攻击 这里写的是按住攻击键一段时间后自动攻击。 通过两个布尔值进行判断,一个判断是否正在攻击(IsAttack),一个判断是否蓄力完成(IsFocoEenrgia),这里当蓄力部分完成时,那么这一次攻击就是蓄力攻击,在松开时就不需要进行普通攻击了。然后在每次按下攻击键时,重置一下蓄力的判断。 没有蓄力攻击(IsFocoEenrgia)这个布尔值,也能达到蓄力攻击的效果,不过这时如果一直按住攻击键到蓄力攻击结束,再松开攻击键,就会进行一次额外的普通攻击 但是如果蓄力攻击是在释放攻击键时进行的攻击部分就不需要考虑这个问题
UE/虚幻 组合键攻击思路
通过第一次按键改变一个布尔值当松开或按下一段时间后重置该值,在短时间内值重置之前按下第二个按钮,达到组合键的效果 这是只有两个键的组合键,如果需要增加组合键的数量,只需要重复增加判断值,和1键按下的操作即可
UE蓝图 利用轴输入计算运动方向
首先获取到轴输入,前后为 Y 轴输入,左右为 X 轴输入,将这两个值存为一个 向量2D 再通过获取到的向量2D的值计算出运动的方向值 其中Direction得到的值为与具体方向如下图
UEC++ 利用代理/委托写一个生命组件
首先基于ActorComponent创建一个组件 HealthComponent,将需要的变量与函数创建 123456789101112131415161718192021222324252627282930313233343536#include "CoreMinimal.h"#include "Components/ActorComponent.h"#include "HealthComponent.generated.h"UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) )class PVETPC_API UHealthComponent : public UActorComponent{ GENERATED_BODY()public: // Sets default values for this component's properties UHealthComponent(); ...
UEC++ 播放蒙太奇动画
在蓝图中播放蒙太奇动画,可以使用 PlayAnimMontage 和 PlayMontage,并且PlayMontage可以在,蒙太奇动画播放完的时候执行想要执行的程序 但是在UEC++中,没有PlayMontage(emmmm有可能只是我没找到) 这时候需要实现在播放蒙太奇动画之后需要的程序时间,可以在蒙太奇动画中添加一个通知,通过通知执行需要的程序 譬如利用蒙太奇播放一个攻击动画 12345678910// 头文件声明变量与攻击函数// 是否正在攻击bool IsAttack = false;UFUNCTION(BlueprintCallable) void Notify_EndAttack() { IsAttack = false; }// 需要播放的蒙太奇动画资源UPROPERTY(EditAnywhere, Category = "Anim") class UAnimMontage* AttackMontage;// 攻击void...
UE C++实现第三人称角色基本功能
首先基于Character创建一个角色类,在头文件为其添加弹簧臂和摄像机组件 1234UPROPERTY(VisibleAnywhere, Category = "Comp") class UCameraComponent* CameraComp;UPROPERTY(VisibleAnywhere, Category = "Comp") class USpringArmComponent* SpringComp; 在构造函数中将相关组件创建出来 12345678910111213141516171819202122// 所需要添加的头文件#include "Camera/CameraComponent.h"#include "GameFramework/SpringArmComponent.h"#include "GameFramework/CharacterMovementComponent.h" // 创建摄像机组件 CameraComp =...
UE 文件目录结构
在最高一级目录中,是你的引擎(Engine)目录以及你的所有游戏项目目录。Engine目录包含引擎自身及其随附工具。每个游戏目录都包含与该游戏有关的所有文件。与先前的引擎版本相比,UE4中的引擎和游戏在目录结构上有了更明显的区分。 根目录 Engine - 包含构成引擎的所有源代码、内容等。 Templates - [创建新项目](Basics/Projects/Browser) 时可用的项目模板集合。 GenerateProjectFiles.bat - 用于创建在Visual Studio中使用引擎和游戏所需的UE4解决方案和项目文件。请参阅 [](ProductionPipelines/BuildTools/UnrealBuildTool/ProjectFilesForIDEs) 以了解详细信息。 UE4Games.uprojectdirs - 辅助文件,帮助引擎找到子目录中的项目。 通用目录 某些子目录在引擎目录和游戏项目目录中都能找到: Binaries - 包含可执行文件或编译期间创建的其他文件。 Build -...











