![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
UE4 C++学习笔记
npchaha
这个作者很懒,什么都没留下…
展开
-
UE4 C++之实现二阶贝塞尔曲线
任务:实现物体沿着二阶贝塞尔曲线运动原理介绍参考链接:贝塞尔曲线 总结_PlayBoy's 部落格-CSDN博客_贝塞尔曲线关键代码如下:BezierCurve.h// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "Bez原创 2021-10-09 15:50:30 · 1126 阅读 · 0 评论 -
UE4 C++学习之解决中文输出乱码的问题
任务:解决UE4C++中文输出乱码的问题解决方案:将涉及到输出中文的文件编码格式改为UTF-8(VS默认为GB2313)。第一步:自定义菜单栏因为VS2019高级保存设置默认是没有开放的,所以我们需要先自定义菜单栏将其开放:第二步:设置文件编码为UTF-8这样,C++的中文到UE4的输出就不会乱码了。...原创 2021-08-01 16:18:25 · 3549 阅读 · 0 评论 -
UE4 C++插件开发之新增编辑器工具栏按钮
任务:在动画编辑器界面工具栏添加新按钮GetAnimNotifyInfo第一步、新建插件原创 2021-03-23 01:20:48 · 1674 阅读 · 0 评论 -
UE4 C++学习笔记之C++输出字符串及FString字符串转换
本篇文章将和大家介绍UE4中C++输出字符串和FString字符串转换,有不清楚的可以看看。C++输出字符串输出字符串到output log中FString filePathUE_LOG(LogTemp, Log, TEXT("%s"), *filePath);UE_LOG(LogTemp, Error, TEXT("Hello,World!"));输出字符串到屏幕上FString filePath;GEngine->AddOnScreenDebugMessage(-1转载 2021-02-25 16:33:35 · 1626 阅读 · 0 评论 -
UE4 学习笔记之粒子系统基础
什么是粒子系统?粒子系统:用于创建并管理粒子的系统。粒子:一个粒子本质只是游戏世界里的一个点。通过粒子系统,我们可以控制粒子的出现和表现。发射器:粒子系统的组件,负责生成粒子。模块:发射器的组件,模块负责控制发射器粒子的表现。模块通常包括许多参数,如粒子的材质和初始速度。Cascade:粒子系统编辑器,由四个主要面板组成 1.Viewport:该面板用于展示粒子特效的预览效果。 2.Details:显示你选中的任何组件(发射器,模块等)的参数。如果没有任何组件选中,则显示粒子系统...原创 2021-01-16 22:09:21 · 1926 阅读 · 0 评论 -
UE4 制作玻璃材质总结
玻璃材质总结材质基本项的设置: 混合模式选:半透明 光照模式可选:表面半透明体积(开销较小) 表面前向着色(开销较大,效果更好) 二者计算复杂度相差400玻璃效果的实现: 粗糙度:一般设为0即可 金属感(或者选高光度,二者效果几乎相同):视情况调整,主要影响材质的反射效果 不透明度:视情况调整 折射:应用在球体上的宏观表现:>1,表现为缩小 ...原创 2020-12-17 17:19:15 · 7722 阅读 · 0 评论 -
UE4 C++学习笔记之番外篇:Android打包基础
任务:将工程项目打包为Android apk文件第一步、安装Android Codeworks相关组件找到虚幻引擎安装目录,打开Engine / Extras / AndroidWorks / Win64文件夹,使用CodeWorks forAndroid安装程序来安装Android内部的Codeworks版本。运行程序后,全部采用默认设置,点next按钮,安装程序会在C盘为我们创建两个文件夹,如下:因为被墙的原因,有一些组件会下载失败,这时我们需要查看NVPACK文件夹下的loca原创 2020-12-10 15:33:34 · 438 阅读 · 0 评论 -
UE4 C++学习笔记之读取Json
任务:通过指令读取Json文件并打印相应Log第一步:工程名.Build.cs文件中添加相关依赖("Json", "JsonUtilities");第二步:在PlayerController类中添加相关函数;EJsonPlayerController.h代码如下:// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinim原创 2020-12-08 17:26:30 · 991 阅读 · 0 评论 -
UE4 C++学习笔记之Json基础
json全称:JaveScript Object Notation:轻量级数据交互格式语法:数据形式(键值对):"key":"value";数据由逗号分隔,大括号保存对象,方括号保存数组;实例:{"students":[{"name":"张三","adress":"山东"},{"name":"李四","adress":"天津"}]} //一个students数组,存储了两个对象,每个对象有name和value属性可嵌套;实例:{"name":"Michael","address"原创 2020-12-08 11:50:26 · 168 阅读 · 0 评论 -
UE4 C++学习笔记之创建多播委托
任务:利用多播委托实现同时控制场景中的多个灯光1、以Actor类为基类,创建MyTriggerBox类,在该类中声明多播委托FMultiDelegate,并实现该多播委托的触发;2、以Actor类为基类,创建蓝图PointLight类,利用蓝图绑定多播委托FMultiDelegate与灯光控制函数。...原创 2020-12-05 15:35:53 · 612 阅读 · 0 评论 -
UE4 C++学习笔记之单播委托
任务:创建单播委托,实现触发器控制灯光的亮和灭1、DelegateTestGameModeBase.h函数声明委托2、以Actor为基类创建TriggerListener类,在该类中实现灯光控制函数并绑定1中声明的委托3、以Actor为基类创建MyTrigger类,在该类中实现1中声明的委托的触发...原创 2020-12-05 12:09:59 · 635 阅读 · 0 评论 -
UE4 C++学习笔记之初识TArray
任务:学习使用官方文档TArray的一些基本操作TArrayTest.h代码如下:// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "TArrayTest.generated.h"UCLASS()class LEARNTAR原创 2020-12-04 19:49:12 · 1869 阅读 · 0 评论 -
UE4 C++ FPS多人游戏学习笔记之创建Actor
任务:创建一个Actor类,当它与角色发生重叠时,播放粒子特效FPSObjectiveActor.h代码如下:// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "FPSObjectiveActor.generated.h"cl原创 2020-08-28 00:20:31 · 304 阅读 · 0 评论 -
UE4 C++学习笔记之替换物品
任务:给武器修改功能,通过按键拾取并替换原有武器第一步、项目设置添加操作映射第二步、修改相关代码代码修改导图如下:Man.h关键部分代码如下:public: //声明物品类,储存当前重叠的Item类 UPROPERTY() class AItem* ActiveOverlapItem; //声明函数:设置当前武器 UFUNCTION() void SetWeapon(class AWeapon* Weapon); //声明函数...原创 2020-08-26 08:56:07 · 619 阅读 · 0 评论 -
UE4 C++学习笔记之拾取物品
任务:以Item类为父类,创建Weapon类,玩家在场景中可拾取该物品第一步、角色骨骼添加武器插槽第二步、编写Weapon类相关代码Weapon.h代码如下:// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "Item.h"#include "Weapon.generated.h"原创 2020-08-25 19:15:33 · 956 阅读 · 0 评论 -
UE4 C++学习笔记之使用UMG(下)
任务:将UI界面中的体力条与玩家体力值相关联,并制作相关的体力消耗机制第一步、项目设置添加相关操作映射Sprint第二步、在C++角色类中(我这里是Man)修改相关代码Man.h关键部分代码如下://定义枚举类型EStatus,表示当前玩家状态,有正常和加速两种状态UENUM(BlueprintType)enum class EStatus : uint8{ ES_Normal UMETA(DisplayName="Normal"), ES_Sprint UMETA(Disp原创 2020-08-25 17:02:10 · 342 阅读 · 0 评论 -
UE4 C++学习笔记之使用UMG(中)
任务:将界面中的UI血条,金币数量显示与玩家数据进行关联绑定,并编写相关的游戏逻辑一、将血条与玩家血量关联,并制作与炸弹的互动(碰到炸弹血量减少)第一步、在角色类(我这里是Man)中添加相关变量Man.h关键代码如下:public: //声明浮点型变量,用来储存角色当前生命值 UPROPERTY(EditAnywhere, BlueprintReadWrite) float Health; //声明浮点型变量,用来储存最大的生命值 UPROPERT原创 2020-08-25 14:21:56 · 650 阅读 · 0 评论 -
UE4 C++学习笔记之使用UMG(上)
任务:使用UMG创建UI,并将其显示在游戏界面第一步:创建相应的控件蓝图类并编辑第二步、以PlayController为基类,创建新的C++类,命名为MainPlayerController,在该类中实现调用UIMainPlayerController.h代码如下:// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMi原创 2020-08-22 20:01:58 · 769 阅读 · 0 评论 -
UE4 C++学习笔记之场景物品
任务:在场景中创建一个能与角色互动的金币,当角色与金币发生重叠时,金币消失并播放相应特效第一步、以Actor为基类,新建C++类ItemItem.h代码如下:#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "Item.generated.h"UCLASS()class LEARNTEST_API AItem : public AActor{ GENERATED_BODY(原创 2020-08-22 17:09:31 · 395 阅读 · 0 评论 -
UE4 C++学习笔记之浮动平台
任务:创建能在场景中按固定周期做上下浮动的Actor以Actor为父类,新建C++类FloatPlatformFloatPlamform.h代码如下:#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "FloatPlatform.generated.h"UCLASS()class LEARNTEST_API AFloatPlatform : public AActor{ G原创 2020-08-21 03:02:45 · 350 阅读 · 0 评论 -
UE4 C++学习笔记之动态创建Actor
任务:游戏开始时,在场景中某一限定区域内生成一个Creature类第一步、新建一个C++ Actor类SpawnVolumeSpawnVolume.h代码如下:#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "SpawnVolume.generated.h"UCLASS()class LEARNTEST_API ASpawnVolume : public AActor{原创 2020-08-20 14:51:35 · 4896 阅读 · 0 评论 -
UE4 C++学习笔记之初识时间轴,定时器
任务:在场景中做一个开关门,角色踩上开关后,门打开,离开开关2s后门自动关闭第一步、新建一个C++ Actor类命名为DoorSwitch,并编写相应代码DoorSwitch.h代码如下:// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#..原创 2020-08-19 17:11:50 · 1252 阅读 · 1 评论 -
UE4 C++学习笔记之初识Character
任务:创建C++角色类,并增加控制角色移动跳跃,鼠标镜头转向功能第一步、项目设置输入添加相应的轴映射和操作映射第二步、新建C++角色类Man,并修改相应代码Man.h代码如下:#pragma once#include "CoreMinimal.h"#include "GameFramework/Character.h"#include "Man.generated.h"UCLASS()class LEARNTEST_API AMan : public ACharacter原创 2020-08-18 17:59:01 · 1131 阅读 · 0 评论 -
UE4 C++学习笔记之控制Pawn的视角
任务:使用鼠标控制Pawn的Yow转向,已经Pictch的视角旋转第一步、项目设置添加鼠标X,Y轴输入第二步、修改Pawn类相关C++代码Creature.h关键代码如下:private: //2D向量储存鼠标的输入 FVector2D CameraInput; //接收Yaw旋转 void CameraYaw(float Value); //接收Pictch旋转 void CameraPitch(float Val原创 2020-08-17 19:27:44 · 1348 阅读 · 0 评论 -
UE4 C++学习笔记之给Pawn增加自制移动组件(实现碰撞滑行)
任务:给Pawn添加自制移动组件,使其碰到障碍物时沿着碰撞的边缘滑行第一步:新建运动组件C++类MyMovementComponentMyMovementComponent.h代码如下:#pragma once#include "CoreMinimal.h"#include "GameFramework/PawnMovementComponent.h"#include "MyPawnMovementComponent.generated.h"/** * */UCLASS()原创 2020-08-17 18:11:59 · 1630 阅读 · 0 评论 -
UE4 C++学习笔记之使用弹簧臂组件
任务:将摄像头绑定在弹簧臂上以获得更平滑的摄像机视角(另在Creature.cpp中设置球形根结点和默认静态网格体)Creature.h新增代码如下:public: //新增球形组件 UPROPERTY(EditAnyWhere) class USphereComponent* SphereComponent; //新增弹簧臂组件 UPROPERTY(EditAnywhere) class USpringArm原创 2020-08-12 16:41:32 · 3586 阅读 · 0 评论 -
UE4 C++学习笔记之控制Pawn做前后左右移动
任务:控制场景中的Pawn做前后左右移动步骤一、在项目设置---输入中,建立相应的轴映射第二步、修改C++ Pawn类Creature的相关代码Creature.h部分关键代码如下:public: //最大移动速度 UPROPERTY(EditAnywhere) float MaxSpeed; //当前移动速度 UPROPERTY(VisibleInstanceOnly) FVector CurrentVelocity;private:原创 2020-08-12 09:27:28 · 2258 阅读 · 0 评论 -
UE4 C++学习笔记之初识Pawn类
Pawn是一种由真实玩家或AI控制的Actor。任务1:创建一个C++ Pawn类,并给其添加静态网格组件和摄像头组件Creature.h代码如下:#include "CoreMinimal.h"#include "GameFramework/Pawn.h"#include "Creature.generated.h"UCLASS()class LEARNTEST_API ACreature : public APawn{ GENERATED_BODY()public: /.原创 2020-08-11 22:06:16 · 1436 阅读 · 0 评论 -
UE4 C++学习笔记之数学函数
任务:让场景中的Actor做上下浮动的周期性正弦运动Float.h添加变量如下:public: //振动幅度 UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Category = "Float Variates") float A; //振动角速度 UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Category = "Float Variates") float B;privat原创 2020-08-11 16:41:07 · 868 阅读 · 0 评论 -
UE4 C++学习笔记之力和力矩
任务:在游戏开始时,给场景中的Actor施加X轴方向上的力以及绕Z轴方向的力矩Float.h关键代码如下: //增加两个public向量,InitForce代表施加的力,InitTorque代表施加的力矩 UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Category = "Float Variates") FVector InitForce; UPROPERTY(EditInstanceOnly, Bluep.原创 2020-08-11 12:40:06 · 653 阅读 · 1 评论 -
UE4 C++学习笔记之初识三维向量结构体FVector
任务:获取场景Actor的起始位置,根据布尔值的设定,初始化Actor的位置,以及给Actor设定定向移动float.h关键部分源码如下:public: // Sets default values for this actor's properties AFloat(); UPROPERTY(VisibleAnywhere,Category="ActorMeshComponents") UStaticMeshComponent* StaticMesh; //Ini.原创 2020-08-10 17:10:17 · 4842 阅读 · 0 评论 -
UE4 C++学习笔记之UPROPERTY宏
UPROPERTY宏,可被添加在元数据类型或者属性前面,来控制其在引擎中的使用方式用法示例如下: //EditInstanceOnly表示该变量只可以在实例中进行编辑,BlueprintReadWrite表示变量可以在蓝图类中进行读写,Gategory表示变量的分类范畴命名 UPROPERTY(EditInstanceOnly,BlueprintReadWrite,Category="Float Variates") FVector InitLocation;常原创 2020-08-10 16:12:31 · 1149 阅读 · 0 评论 -
UE4 C++学习笔记之创建Actor类
任务:新建C++类Float,为其添加静态网格组件1、头文件新增UStaticMeshComponent指针变量,将其属性设置为可见,float.h关键代码如下:public: // Sets default values for this actor's properties AFloat(); //新增UStaticMeshComponent指针变量,将其属性设置为可见 UPROPERTY(VisibleAnywhere,Category="ActorMesh原创 2020-08-10 13:28:11 · 1471 阅读 · 0 评论 -
UE4 C++学习笔记之创建Object类
1、在UE4 C++工程中,以Object为父类,新建C++类MyObject,并且在VS中为该类添加public变量和函数MyObject.h头文件编辑如下:#pragma once#include "CoreMinimal.h"#include "UObject/NoExportTypes.h"#include "MyObject.generated.h"/** * *///UCLASS表示反射为系统自动生成,其中的Blueprintable表示可以由该c++类生成蓝图类原创 2020-08-09 18:48:41 · 1449 阅读 · 0 评论