自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (4)
  • 收藏
  • 关注

转载 【UE4】UMG 生命周期

参考资料&原文链接GCCONF '20:UE4で作成するUIと最適化手法【UE4】使用UMG创建UI,了解内部机制及相应优化方法猫でも分かるUMGUMG widget构造初始化函数中获取其内部组件【UE4】UMG_自定义UMG并实时预览什么是生命周期以下摘自百度百科:生命周期就是指一个对象的生老病死。生命周期(Life Cycle)的概念应用很广泛,特别是在政治、经济、环境、技术、社会等诸多领域经常出现,其基本涵义可以通俗地理解为“从摇篮到坟墓”(Cradle-

2021-11-19 08:05:38 2503 1

原创 【UE4基础】解决资源Migrate后蓝图的Parent变成了None的问题

在新项目的Config目录下找到DefaultEngine.ini配置文件,新增以下配置文件:[/Script/Engine.Engine]+ActiveGameNameRedirects=(OldGameName="Project1",NewGameName="/Script/Project2")+ActiveGameNameRedirects=(OldGameName="/Script/Project1",NewGameName="/Script/Project2")Project1是老项

2021-10-25 11:33:21 565

转载 【UE4基础】UE4 GEngine->GetWorld() == NULL

在Dedicated Server模式下,load玩Map后我想在我的C++代码中想获取GameInstance,通过GEngine->GetWorld()->GetGameInstance()语句获取,但是程序运行到这,出现段错误。然后尝试获取World,GEngine->GetWorld()发现程序运行出现段错误,也就是说GEngine->GetWorld() == NULL。经过一段搜索,在这篇文章(https://zhuanlan.zhihu.

2021-09-11 13:45:51 2948

转载 【UE4基础】全面理解UE4委托

转载自:全面理解UE4委托 - 可可西 - 博客园UE4中的delegate(委托)常用于解耦不同对象之间的关联:委托的触发者不与监听者有直接关联,两者通过委托对象间接地建立联系 监听者通过将响应函数绑定到委托上,使得委托触发时立即收到通知,并进行相https://www.cnblogs.com/kekec/p/10678905.html总体UE4中的delegate(委托)常用于解耦不同对象之间的关联:委托的触发者不与监听者有直接关联,两者通过委托对象间接地建立联系监听者通过将响应函数绑定到委

2021-09-10 16:50:02 2425

原创 【UE4基础】解决WidgetInteraction中的Debug Line打包后无法使用的问题

根本原因UE中的ENABLE_DRAW_DEBUG只在测试的时候是打开的,打包后就关闭了解决方案继承UWidgetInteractionComponent,将UWidgetInteractionComponent中的绘制圆点与线的部分移出来。第一步[项目名].Build.cs添加依赖PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });第二步创建绘制圆点与线的工具包(.

2021-09-10 08:11:09 1104

原创 【UE4基础】如何在C++中访问蓝图中的变量之方法二

接上篇,本篇使用第二种方法来访问UMG中Widget变量,主要使用的方法是添加标签:UPROPERTY(meta = (BindWidget))步骤第一步添加继承于UUserWidget的C++类头文件:SessionRow.h#pragma once#include "CoreMinimal.h"#include "Blueprint/UserWidget.h"#include "SessionRow.generated.h"/** * */UCLASS()

2021-09-10 07:26:49 1441

原创 【UE4基础】如何在C++中访问蓝图中的变量之方法一

背景很多时候,我们不想在蓝图类中写过于复杂的逻辑,希望能够在C++中处理复杂逻辑,但是有一些情况需要使用蓝图来做一些事,比如绘制菜单,用C++绘制菜单可能比较麻烦。那有没有一种方法可以在蓝图中创建菜单,然后在C++中访问这个菜单蓝图中的变量,然后处理复杂逻辑呢?答案是:有!!!步骤第一步创建菜单 WBP_HallMenu为了测试方便,这里就创建一个Button好了。第二步创建一个菜单逻辑代理的C++类:HallMenuHandler。HallMenuHandler.h.

2021-09-09 20:40:49 1971

转载 【UE4基础】UE4 垃圾回收

UE4GC简介UE4为我们搭建了一套UObject对象系统,并且加入了垃圾回收机制,使我们用C++进行游戏开发时更加方便,而且游戏本身也可以极大程度的避免了内存泄漏问题。UE4采用了标记-清扫垃圾回收方式,是一种经典的垃圾回收方式。一次垃圾回收分为两个阶段。第一阶段从一个根集合出发,遍历所有可达对象,遍历完成后就能标记出可达对象和不可达对象了,这个阶段会在一帧内完成。第二阶段会渐进式的清理这些不可达对象,因为不可达的对象将永远不能被访问到,所以可以分帧清理它们,避免一下子清理很多UObject,比如

2021-08-24 08:41:17 2659

转载 UE4内存检测工具使用

UE4提供了2个工具用于检测内存使用情况,这里记录下使用方法:1.MemReport命令:直接在UE4编辑器窗口的命令控制台上输入MemReport或MemReport -full即可得到内存分析报告。MemReport -full 会得到更加详细的分析报告。报告保存在Game/Saved/Profiling/MemReports目录下,文件格式为.memreport,使用文本编辑器就能打开查看。MemReport这个指令可以在引擎目录下的\Engine\Config\BaseEngine.in

2021-08-23 19:50:02 3145

原创 【UE4基础】蓝图使用Media Player播放自定义文件路径的Mp3文件

1、创建一个Media Player命名为:TheMediaPlayer。打开刚才创建的 TheMediaPlayer,勾选下Play on Open2、在Content目录下创建Movies文件夹,并将Mp3文件放进去注意:也可以创建其他文件夹,不过Movies文件夹会默认打进包中,如果不是Movies文件夹,则不会默认打进包,需要在打包配置中配置一下(可参考上一篇:https://blog.csdn.net/yekong1225/article/details/11977..

2021-08-19 14:36:46 2545

原创 【UE4基础】将自定义文件(非Assert)打包进Android包中

背景近期做的项目中需要在代码中读取歌曲、图片等文件,打包Android应用后运行时发现读取不到在项目中的那些文件。解决方案在项目设置中将非Assert文件目录加入到配置中。Project -> Packaging ->Additional Non-Asset Directories to Package 中添加Content下的自定义目录。C++ 代码中读取: // 读取所有的Track TArray<FString> ...

2021-08-18 11:29:44 1021 2

转载 简单adb 命令抓Android app 闪退日志

系统:Windows1.手机连上电脑,打开开发者选项,打开调试模式2.打开cmd,输入命令adb devices查看设备连接成功下面进入正题:查看手机的所有日志 adb logcat 只获取该应用的日志adb logcat | findstr 应用包名开始抓取日志并保存到D盘的crash.txtadb logcat >D:\crash.txtctrl +C 停止抓取辅助命令:清空日志:clsctrl +C停止日志,输入其他命令ctrl +F 搜索fo.

2021-08-18 09:28:20 2222

转载 【UE基础】创建PLUGINS

如何使代码模块化,使用Plugins可能是一种比较好的方式,下面通过一个例子,讲一讲如何创建和使用Plugins。一、创建C++工程TestPlugins:从菜单中选择"Edit"->"Plugins",会弹出如下窗口:点出“New Plgin”,在弹出的窗口中选中“Blank”,然后输入“Shape”,点出“Create Plugin”后,会创建一个名为“Shape”的plugin:工程的目录结构如下:从上图可以看到,Shape Plugin的代码目录和Test

2021-08-17 18:19:47 1190 1

转载 【UE基础】UE4导入第三方库_4.25/4.26

对于所有第三方库都应该先加入对头文件目录的包含:在模块的Build.cs文件中,加入对应的第三方库的头文件包含路径:PublicIncludePaths.Add(path);//包含目录中的头文件并公开到外部模块 PrivateIncludePaths.Add(Path);//包含目录中的头文件并不公开到外部模块 对于插件中的模块:PublicIncludePaths和PrivateIncludePaths可以接受特殊字符串开头的字符串:$(ModuleD...

2021-08-17 18:11:51 3648

原创 【UE4基础】FString字符串拼接-Append的坑

使用 “+” 来进行字符串拼接,使用Append会出现多个“\0”的情况。推荐:FString imgPath = "hello.jpg";FString fullImgPath = FPaths::ProjectContentDir() + imgPath;不推荐:FString imgPath = "hello.jpg";FString fullImgPath = FPaths::ProjectContentDir().Append(imgPath);...

2021-08-16 09:59:54 5107

原创 【UE4基础】使用Visual Studio调试C++代码

1、先设置 DebugGame Editor2、右键项目,选择Debug -> Start New Instance

2021-08-15 18:16:35 1175

转载 【UE4基础】UE4 C++ 创建一个结构体Struct

创建一个结构体用于存储数据结构,如果你需要实现更复杂的逻辑,请使用class通常创建一个类需要在UE编辑器中新增,而结构体可以在VS中添加1,右键你的项目,选择“添加->新建项”,在对话框选择"头文件(.h)",设定好名称及存放路径即可2,添加头文件#include "CoreMinimal.h"#include "结构体文件名.generated.h"3,编写结构体主体/* 为了让你的结构体可以被蓝图访问 */USTRUCT(BlueprintType)struct

2021-08-13 11:34:21 4421 2

原创 【UE4基础】使用C++解析JSON字符串

1、在[Project].Build.cs文件中添加Module添加Json这个modulePublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "Json"});2、解析 FString jsonStr; bool result = FFileHelper::LoadFileToString(jsonStr, fullPath.GetCh

2021-08-12 16:49:30 1111

原创 【UE4基础】C++文件管理

简介UE4文件管理主要涉及到标准目录的获取,文件及目录的创建、删除、读取,文件内容的读写。涉及到的主要类有:Paths、IFileManager、FFileHelper。UE4标准目录的获取(Paths)项目相关的目录...

2021-08-12 16:43:09 1344 1

转载 【UE4基础】对象创建与资源获取

一、对象与销毁1. 纯C++类的创建与销毁创建:对于纯C++类(这里指非继承自UObject的类,一般以F开头),可以通过new来创建对象,并使用TSharedPtr和TSharedRef来管理对象。TSharedPtr<MyClass> MyClassPtr = MakeShareable(new MyClass());销毁:使用智能指针的计数器方法,自动销毁2. UObject及其子类创建与销毁创建:继承自UObject但不继承自Actor的类可以通过NewO...

2021-08-12 08:51:20 1012

转载 Spring的BeanFactoryPostProcessor和BeanPostProcessor

BeanFactoryPostProcessor和BeanPostProcessor,这两个接口,都是Spring初始化bean时对外暴露的扩展点。两个接口名称看起来很相似,但作用及使用场景却不同,分析如下:1、BeanFactoryPostProcessor接口该接口的定义如下:public interface BeanFactoryPostProcessor { /** ...

2018-11-26 17:03:30 133

转载 红黑树深入剖析及Java实现

红黑树是平衡二叉查找树的一种。为了深入理解红黑树,我们需要从二叉查找树开始讲起。BST二叉查找树(Binary Search Tree,简称BST)是一棵二叉树,它的左子节点的值比父节点的值要小,右节点的值要比父节点的值大。它的高度决定了它的查找效率。在理想的情况下,二叉查找树增删查改的时间复杂度为O(logN)(其中N为节点数),最坏的情况下为O(N)。当它的高度为logN+1时,我...

2018-10-23 13:56:41 131

原创 LInux安装jdk8

1.在/usr/目录下创建java目录[root@localhost ~]# mkdir /usr/java[root@localhost ~]# cd /usr/java2.下载,然后解压[root@localhost java]# wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http:...

2018-10-11 10:40:29 112

转载 Linux下rz/sz安装及使用方法

新搞的云服务器用SecureCRT不支持上传和下载,没有找到rz命令。记录一下如何安装rz/sz命令的方法。      一、工具说明      在SecureCRT这样的ssh登录软件里, 通过在Linux界面里输入rz/sz命令来上传/下载文件. 对于某些linux版本, rz/sz默认没有安装所以需要手工安装。      sz: 将选定的文件发送(send)到本地机器;      ...

2018-10-11 10:14:31 153

转载 深入分析Java ClassLoader原理

 一、什么是ClassLoader?         大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一个class文件中的方法,如果另外一个文件不存...

2018-08-16 09:46:43 92

转载 Java中Unsafe类详解

java不能直接访问操作系统底层,而是通过本地方法来访问。Unsafe类提供了硬件级别的原子操作,主要提供了以下功能:1、通过Unsafe类可以分配内存,可以释放内存;类中提供的3个本地方法allocateMemory、reallocateMemory、freeMemory分别用于分配内存,扩充内存和释放内存,与C语言中的3个方法对应。2、可以定位对象某字段的内存位置,也可以修改对象的...

2018-07-24 10:00:23 189

原创 Java位移操作

    对于Java位移操作,有三种左移(&lt;&lt;),规则 : 低位始终补0 右移(&gt;&gt;),规则:  正数符号位补0,负数符号位补1(符号位为最高位,0-正数,1-负数) 无符号右移(&gt;&gt;&gt;),规则:符号位(最高位)始终补0     下面直接上一段代码:@Testpublic void testWeiYi(){ //右移比较简单 ...

2018-07-19 11:13:58 1955

原创 使用jxl导入和导出excel

前言      使用java来处理excel的读写操作,通常会有两种工具包,一种是jxl,一种是poi。jxl相对poi来说,比较轻量级,api简单一些。我在工作中通常采用jxl来处理excel的导入和导出,并且自己把常用的导入和导出写成了一个小工具类,方便excel的操作。不过有一点需要注意一下,jxl只能处理2003版的excel,也就是.xls结尾的文件,2007版的.xlsx结尾的文件...

2018-07-13 14:33:09 3074

转载 Java多线程系列--“JUC锁”07之 LockSupport

概述本章介绍JUC(java.util.concurrent)包中的LockSupport。内容包括:LockSupport介绍LockSupport函数列表LockSupport参考代码(基于JDK1.7.0_40)LockSupport示例LockSupport介绍LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。 LockSupport中的park() 和 unpark() ...

2018-07-12 19:30:52 154

原创 AccessController的doPrivileged使用

Java默认不打开安全检查,如果不打开,本地程序拥有所有权限。但是如果程序中加了System.setSecurityManager(new SecurityManager());则Java程序会检验权限。假设有这样一种情况:A程序想在 C:\\Users\\taohuan\\Desktop\\test1  这个目录中新建一个文件,但是它没有相应的权限,但是它引用了另外一个Jar包B,刚好B有权限在...

2018-07-12 11:21:41 11572

原创 IDEA运行Tomcat8源码

前言           Tomcat作为J2EE的开源实现,其代码具有很高的参考价值,我们可以从中汲取很多的知识。作为Java后端程序员,相信有很多人很想了解Tomcat的运行原理。Tomcat的构建是基于Ant和Eclipse的,然而现在很多人都喜欢IDEA+Maven的项目构建方式,本文描述了在Win7的环境下,使用IDEA导入Tomcat 8.0.53源码,并运行tomcat源码。一、准备...

2018-07-11 15:03:12 9542 14

spring 5.3.21源码

spring 5.3.21源码

2022-07-05

spring boot 2.7.1 源码

spring boot 2.7.1 源码

2022-07-05

Linux命令行与shell脚本编程大全(第3版)高清晰PDF(带源码)

Linux命令行与shell脚本编程大全,运维同学的必需品,服务器端同学的必需品,赶紧拿走

2018-10-27

JDK1.8 sun 包源码

安装完JDK后,会在%JAVA_HOME% /jdk文件夹下生成一个src.zip,此文件夹对应rt.jar中的java源码,但细心研究后发现rt.jar中sun包下的文件不存在,也就是说sun包下的java源码并没有打包到src.zip中,可以到http://download.java.net/openjdk/jdk7/该网站上下载相应的OpenJDK源码,在\openjdk\jdk\src\share\classes目录下即为rt.jar的源码,此文件夹下的源代码是完全的,包括sun包下的java文件。 此包为JDK1.8 sun 包源码

2018-07-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除