虚幻C++
wjysg8408982
开摆
展开
-
虚幻4C++打印输出日志
在当前屏幕视口中输出GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT(“This is an on screen message!”));在编辑器output log窗口中输出UE_LOG(LogTemp, Log, TEXT(“Your message”));原创 2021-01-24 20:21:55 · 659 阅读 · 0 评论 -
虚幻C++限定蓝图类选项里的可选类型
通过继承C++的蓝图类里需要限定,可选的类的时候只需要在声明时加上TSubclassOf,就能使得蓝图类里选择类的时候只能选择<>里的类型或者它的子类只能选择这种类型,或者是它的子类原创 2021-01-21 15:34:50 · 160 阅读 · 0 评论 -
蓝图本地事件
蓝图可实现事件,是在C++中写函数声明,然后在蓝图脚本里面写具体逻辑实现的(什么是蓝图可实现事件),而蓝图本地事件,就是在C++中声明,然后在C++中也有默认实现,也能在蓝图中重写的函数。在UFUNCTION的宏内加入参数,BlueprintNativeEvent,那么它就是一个蓝图本地函数现在可以在C++中为它写默认实现虽然函数声明的时候函数名写的是:TestNativeEvent,但是我们为它做C++默认实现的时候,不能直接写TestNativeEvent,而是写TestNativeEven原创 2021-01-19 16:09:09 · 293 阅读 · 1 评论 -
虚幻4C++调用蓝图中的事件(蓝图可实现事件)
如果想用蓝图调用C++里面的函数只需要,创建继承C++类里面的蓝图类即可,反过来用C++调用蓝图中实现的事件需要在UFUNTION的括号中添加上BlueprintImplementableEvent这个参数虽然有绿色波浪线表示着C++中没实现,但是编译代码后并不是报错,而且打开对应这个C++类的蓝图类,可以呼出这个Test事件,可以看到它并没有像Test2一样,被标识为蓝图中的自定义事件,这就是蓝图可实现事件,在C++中定义,转而在蓝图中提供实现事件触发后的逻辑这么做之后,蓝图中自定义事件将不允许原创 2021-01-16 20:14:59 · 1874 阅读 · 0 评论 -
UE4中HUD、UMG、Slate之间的区别
这是目录SlateUMGHUDSlateSlate是为编辑器专门制作的窗口UI框架(以前的UE编辑器使用了Window的库),但它也可以用在游戏中。 但是Slate类不在UObject环境之外而在反射系统之外,这就是为什么它需要UMG包装来使其与蓝图一起工作。UMGUMG是Slate的蓝图延伸 ,上面可以直接在画布上添加文件按钮等等,方便快捷制作出UI界面同时可以在蓝图图表处添加点击事件等等的逻辑HUDHUD Canvas是来自UE3(甚至可能更老)的东西,在UMG被引入之前处于UE4中,原创 2021-01-10 15:25:51 · 6203 阅读 · 0 评论 -
UE4的GamePlay框架概述
GameInstance(游戏实例)贯穿一个游戏始终的东西,不关关卡是否在进行,是否在等待界面,是否已经结束了,都是可以访问到GameInstance的,适合放置一些独立于关卡的信息,以及一些功能,例如,显示UI登录,UI独立于任何关卡,比如刚打开一个游戏进入主界面/登录界面,就可以把显示它的逻辑放在GameInstance里。GameMode (游戏模式)指的是游戏玩法规则,里面通常会写明游戏玩法,游戏进行的规则,胜负条件等等,游戏模式是和关卡绑定的,一个关卡只能有一个游戏模式,但是一整个游戏可以有原创 2021-01-10 14:44:30 · 2883 阅读 · 2 评论 -
虚幻4C++核心类pawn类,解读
在看这篇博客时需要对Actor类有了解(Actor类解读)pawn类在游戏中是可以被控制的一类对象,他继承自actor类,和actor属于都可以被放置在游戏场景中的对象,只不过多了允许被玩家或者AI控制这种特性新建一个C++类选择继承pawn类创建完成之后可以看到默认创建完成之后,他和默认的Actor类相比仅仅多了一个叫SetupPlayerInputComponent的虚函数,就是通过这个函数,玩家能实现对pawn对象的输入并且控制接下来可以在C++类里实现控制自己定义的Pawn先进行项目原创 2020-12-20 22:24:47 · 1077 阅读 · 0 评论 -
虚幻4C++代码导致虚幻4编辑器崩溃打不开的应对办法
在虚幻4中使用C++,因为添加了不当代码而导致虚幻4编辑器崩溃,并且打不开,应该怎么办可以直接在文夹里找到对应崩溃的项目,可以通过sln后缀名文件直接打开整个项目进行修改,也可以点进Source文件夹里找到对应的.cpp文件进行修改,修改完代码之后在编译,编译完之后,基本都能解决,如果还没解决可以尝试删除掉图中的Binaries文件夹,这个文件夹放的是C++类编译的缓存文件在点右键.uproject的编辑器开启文件,点第三项,根据visual studio重新构建项目。这样一般的因为代码导致虚幻原创 2020-12-20 20:54:39 · 1971 阅读 · 0 评论 -
虚幻4基础物理设置,和碰撞检测
图像加上一些数学运算,一些逻辑,一些“物理”效果来模拟现实中的场景,最后和人进行交互,在加上一些奇思妙想这就是游戏。这篇博客会介绍虚幻4中基础的物理系统,和两种新手入门使用的碰撞检测方式物理系统开启给对象力和力矩通过物理碰撞简单碰撞复杂碰撞碰撞预设改变坐标的碰撞物理系统开启在虚幻4中如果需要场景中某个对象能获得现实中的物理效果,必须先开启实例对象细节面板中的模拟物理才行。默认是没勾选的,只要勾选上之后,当前的实例对象在场景中便有了现实中的物理效果,这个时候就可以测试这个对象是否启动了物理,当没启动物理的原创 2020-12-16 00:06:42 · 2424 阅读 · 0 评论 -
虚幻4 C++常用UPROPERTY,UFUNCTION宏内的参数
标题在蓝图脚本里面访问权限修饰在蓝图类细节面板中访问权限修饰在实例化对象细节面板中访问权限修饰在蓝图类和实例化对象中都可以编辑在虚幻4定义的C++类中,可以定义一些数据和函数,这些数据和函数通常不仅仅是在C++类中访问,也要给蓝图类或者在场景中具体的对象实例中通过编辑细节面板修改,这时候往往需要在相关的UPROPERTY宏内添加上控制访问权限的参数准备知识什么是蓝图类,什么是实例化对象:把准备好的蓝图类拖拽到场景当中时,表示实例化了一个对象在蓝图脚本里面访问权限修饰UCLASS(Blueprinta原创 2020-12-12 22:51:36 · 1690 阅读 · 0 评论 -
虚幻4蓝图类,蓝图脚本,实例化对象,和C++类的关系和区别
标题什么是蓝图类什么是蓝图脚本蓝图和C++的抉择刚开始学习的时候把C++类和蓝图类,蓝图脚本的概念混淆了什么是蓝图类蓝图类又叫蓝图系统是包裹一个游戏对象数据逻辑和各种内容及可编辑属性为一体的容器,通常命名以BP_开头,图标下带有蓝色条纹可以展开独立编辑页面,通常由视口和事件图表等组成什么是蓝图脚本在蓝图类的事件图表分栏,以很多小格子划分的背景,可以和C++代码一样可以添加数据类型,通过节点之间的连线实现代码,函数调用的逻辑的功能的就是蓝图脚本蓝图和C++的抉择虽然蓝图脚本的逻辑通过C+原创 2020-12-11 21:48:01 · 3082 阅读 · 0 评论 -
虚幻4C++,所有对象的根类Object
在虚幻4中所有对象都有一个根类,那就是objcet类,它是一个最基础的对象,不能被放置在视口的场景中,甚至不能创建蓝图类,是最简单最纯粹的根类。创建一个C++类选择继承Object类,可以看到只能申明一些简单的数据类型或者函数可以看到不允许创建蓝图类如果要允许它可以创建蓝图类需要做一些特殊的宏操作当添加上UCLASS(Blueprintable)这个宏时,它就可以创建扩展蓝图类创建出了一个以MyObject C++类的扩展蓝图类但是现在还不能在这个蓝图类的蓝图脚本里面访问到C++里面定义原创 2020-12-11 20:53:08 · 389 阅读 · 0 评论 -
虚幻4一个简单的actor,C++类解读
在虚幻4中创建一个C++类,选择继承actor类之后,我们会得到引擎中自动生成这样的代码之后在编辑器界面可以看到可以直接创建基于这个C++类的蓝图类,并不是像创建object类的定义,要在宏定义加上UCLASS处括号里加上(Blueprintable)来表示该C++类允许创建蓝图类这个时候可以按住ctrl点击我们当前MyActor继承的系统的Actor类,发现他里面已经写好了UCLASS(Blueprintable)这样的定义,这样我们通过继承系统的Actor类创建的C++MyActor可以直接创建原创 2020-12-11 16:49:33 · 704 阅读 · 1 评论