目录1 资源1.1 通用1.2 动作1.3 AI1.4 蓝图1.5 材质1.6 纹理1.7 杂项1.8 2D1.9 物理1.10 声音1.11 界面2 目录3 蓝图 & C++3.1 编译3.2 变量3.3 函数 & 委托 资源 通用 资源类型 前缀 后缀 Level / Map Level (Persistent) _P Level (Audio) _Audio Level (Lighting) _Lighting Level (Geometry) _Geo Level (Ga
网页全屏显示 – 项目代码
目录1 进入终端2 复制文件3 查看镜像4 制作镜像5 保存镜像6 载入镜像 进入终端 docker exec -it [容器 ID] [解释器] 一般情况下 解释器 为 bash ,如果出现报错可尝试 sh 、 /bin/bash 、 /bin/sh 或 /bin/csh 。 复制文件 docker cp [容器 ID]:[路径] [容器 ID]:[路径] 如果在不写 容器 ID 则表示目标为宿主机。 查看镜像 docker images 制作镜像 docker commit -p [容器 I
问题 众所周知 UE 的 HTML5 平台默认显示如下。 这存在如下几个问题。 Canvas 只在中间显示。 下面有多余的按钮。 解决 将 Canvas 设置为自适应分辨率。 将 Project Settings > Platforms > HTML5 > Canvas Scaling Mode 设置为 Stretch 。 将 Canvas Wrapper 设置为自适应分辨率。 修改 .css 文件中如下一段。 .wrapper { position: relative; ma
在 C++ 中对应 \x200f ,Alt码 为 8207 的特殊字符。
PS:由于 WP-Editor.md 的 Bug ,脚本中的 $ 符号不显示,需手动添加。 PS:换成 WP Githuber MD 之后就没有这个 Bug 了。 解决方案 cmake_minimum_required (VERSION 3.8) # Main project string(REGEX REPLACE ".*/(.*)" "\\1" CURRENT_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}) project ($
虚幻引擎打包时,将在根目录中创建 BootstrapPackagedGame 启动 EXE 文件,并在 Binaries/Win64 中放置真正的 UE4 游戏 EXE 文件。 它通过以下过程创建: 将 引擎/Binaries/[平台]/BootstrapPackagedGame-[平台]-Shipping.exe 文件复制到根目录 更新 Build/Windows/Application.ico 图标 更新要执行的游戏 EXE 文件相对路径参数 更新游戏的基本参数 BootstrapPacka
class FTestTask { public: FTestTask(const FString& InTaskName) : TaskName(InTaskName) { } TStatId GetStatId() { RETURN_QUICK_DECLARE_CYCLE_STAT(TestTask, STATGROUP_TaskGraphTasks); } ENamedThreads::Type GetDesiredThread() { return ENamedThreads::
众所周知,UE 没有提供优先队列这一常用容器。 但是在 TArray 中有一些堆函数,可以实现优先队列的操作。 这里提供一个简单封装,其中 Priority 值越小优先级越高。 template<typename ElementType, typename ArrayAllocator = FDefaultAllocator> class TRFurPriorityQueue { public: FORCEINLINE TRFurPriorityQueue() = default;
目录1 换源2 安装依赖包3 处理 install.sh4 安装5 启动蜜罐 国内原因 Github连接极其卡顿 虚拟机重复安装五六次还未成功。今早终于成功,有感写下这篇教程 环境:Debian 10 设备:华为ECS 2核8G 50M 流量计费 VNC控制台安装 T-Pot 项目链接 换源 Linux一键换源 bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh) apt
目录1 加锁的原则1.1 规则10.1 多线程 进程并行访问共享资源时 一定要加锁保护1.2 规则10.2 锁的职责单一1.3 规则10.3 锁范围尽量小 只锁对应资源操作代码1.4 规则10.4 避免嵌套加锁 如果必须加锁 务必保证不同地方的加锁顺序是一样的1.5 建议10.1 进程间通讯 使用自己保证互斥的系统1.6 建议10.2 可重入函数尽量只使用局部变量和函数参数 少用全局变量 静态变量1.7 建议10.3 锁中避免调用函数 如果必须调用函数 务必保证不会造成死锁1.8 建议10.4
一键跳转至题目 题目描述 机器上有 $n$ 个需要处理的任务,它们构成了一个序列。这些任务被标号为 $1$ 到 $n$,因此序列的排列为 $1 , 2 , 3 \cdots n$。这 $n$ 个任务被分成若干批,每批包含相邻的若干任务。从时刻 $0$ 开始,这些任务被分批加工,第 ii 个任务单独完成所需的时间是 $T_i$ 。在每批任务开始前,机器需要启动时间 $s$,而完成这批任务所需的时间是各个任务需要时间的总和。 注意,同一批任务将在同一时刻完成。 每个任务的费用是它的完成时刻乘以一个费
目录1 研究背景2 研究内容2.1 框架设计2.2 实现方法与步骤2.3 出现的问题与解决过程2.4 项目创新点3 研究结果3.1 核心代码3.2 实物展示3.3 结论4 参考文献 本文用来水暑假的研究性学习报告 不要认真 摘要 本文给出了朴素 Marching Cubes 算法体素网格体在 Unreal Engine 4 中的实现方案,通过生成一个具有“光滑”表面的球体来演示算法的可行性。 关键词 MarchingCubes UnrealEngine 网格重建 游戏开发 研究背景 《Minec
目录1 研究背景2 研究内容2.1 框架设计2.2 实现方法与步骤2.3 出现的问题与解决过程2.4 项目创新点3 研究结果3.1 实物展示3.2 结果分析3.3 结论4 参考文献 本文用来水暑假的研究性学习报告 摘要 本文给出了一种基于 HFish 的网络威胁捕捉与诱骗系统的简单搭建模式,并通过此系统捕捉了当今互联网上的部分网络攻击,通过这些数据进行简单的整理分析,透漏出网络中的潜在威胁。 关键词 网络安全 黑客攻击 网络攻防 密码破译 研究背景 作为一个小型个人网站的站主,可能并不会感觉到自
目录1 UMaterialExpression2 UMaterialExpressionSphereMask2.1 输入输出引脚定义2.2 参数缺省定义2.3 编译函数实现3 类与函数 引擎: UE4.26.2 构建版本 事情的起因是写体素构建器的时候,想生成个球,就想到抄材质的 SphereMask 节点。 这里以 SphereMask 节点为例,分析材质蓝图节点的定义。 UMaterialExpression 材质节点的 C++ 父类为 UMaterialExpression ,定义在 Ma
问题 在从 UE4.24 升级到 UE4.26 后,想打包安卓,删除了以前的 NDK 然后根据官网指示安装新的 NDK ,在打包时提示打包失败,Log 关键内容如下。 UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): ====2021-08-09 14:35:59====PERFORMING FINAL APK PACKAGE OPERATION=====-armv7====================================
目录1 基本信息2 硬件连接图3 软件框图3.1 小车3.2 控制端4 软件流程图4.1 小车 测速计数 线程4.2 小车 超声 线程4.3 小车 电机 线程4.4 小车 图像采集 线程4.5 小车 UDP 线程4.6 控制端5 实现过程6 关键代码7 创新点8 市场前景9 产品展示 这是 2021年山大未来科学营(夏季)- 人工智能与发明创造未来科学营 的作业 所以看看就行 基本信息 名称:远程智能房间巡逻警报机器人 解决家里/房间长期无人,但是有设备运行或其他需求,需要远程监控。可以方便远程
假设我们有一个带 USTRUCT 宏的结构体,我们希望在蓝图中可以以自己的方式 Make 或者 Break ,这个需求通常是因为我们在结构体里用了 C++ 中不支持反射的成员。 USTRUCT(BlueprintType, Meta = (HasNativeMake, HasNativeBreak)) struct FMeshVertex { GENERATED_BODY() UPROPERTY(EditAnywhere) FVector Position; UPROPERTY(EditAnyw
Establish Battlefield Control, Stand By — 战场控制建立,请等待。 Battle Control Online — 作战控制连线。 Incoming Transmission — 信号输入。 New Objective Received — 收到新的任务目标。 Objective Complete — 任务目标完成。 Mission Accomplished — 任务完成。 Missi
Lengyel-VoxelTerrain.pdf
ParallelFor 是 UE 内置的支持多线程并行处理任务的 For 循环,在渲染系统中应用得相当普遍。 调用方式 函数签名 void ParallelFor(int32 Num, TFunctionRef<void(int32)> Body, bool bForceSingleThread, bool bPumpRenderingThread = false); void ParallelFor(int32 Num, TFunctionRef<void(int32)>
UFUNCTION() virtual void FunctionName(…) PURE_VIRTUAL(ClassName::FunctionName, … );
CornerCoordOffset[8] – 表示顶点索引到顶点空间位置的映射,如 CornerCoordOffset[0] = (0,0,0) 表示 顶点-0 的位置是 (0,0,0) 。 Triangulation[256][5][3] – 表示三角形拆分,可以通过顶点状态(通过位掩码)拆分三角形,得到三角形对应的边索引,如 Triangulation[2][0][0] = 0 表示 顶点-1 在“内部”其余顶点在“外部”时,第一个三角形的第一个顶点在 边-0 上。
Vertices = { { -50.0f, -50.0f, -50.0f }, { 50.0f, -50.0f, -50.0f }, { 50.0f, 50.0f, -50.0f }, { 50.0f, 50.0f, -50.0f }, { -50.0f, 50.0f, -50.0f }, { -50.0f, -50.0f, -50.0f }, { -50.0f, -50.0f, 50.0f }, { 50.0f, -50.0f, 50.0f }, { 50.0f, 50.0f, 50.0f
目录1 语法1.1 类2 定义类3 定义类成员3.1 返回值3.2 泛型类型3.3 修饰4 定义关系4.1 关系的基数5 类注释6 评论 基于 Mermaid 类图规范编写: Mermaid: Class diagrams “在软件工程中,统一建模语言 (UML) 中的类图是一种静态结构图,它通过显示系统中的类以及它们的属性和操作(或方法)再加上类之间的关系来描述系统的结构。” 维基百科 类图是面向对象建模的主要构建基础。它可以用于应用程序一般结构的概念建模,以及将模型转换为编程语言代码的详细建
目录1 类图1.1 UStaticMesh 类图1.2 UStaticMeshComponent 类图2 流程2.1 动态构建流程2.2 网格应用流程2.3 渲染整合流程 引擎: UE4.26.2 构建版本 StaticMesh 简称 SM ,表示引擎中的 静态网格体 ,在新版本的引擎中, SM 也被允许在运行时构建,渲染一个 SM 需要 SMC 的支持, SMC 使用 静态/动态渲染路径 ,在允许的情况下优先使用 静态渲染路径 ,会缓存所有渲染命令。 类图 UStaticMesh 类图 cla
目录1 类结构1.1 游戏 类图1.2 渲染器 类图1.3 简介2 流程2.1 分段创建流程2.2 渲染整合流程2.3 碰撞构建流程2.4 分段更新流程 引擎: UE4.26.2 构建版本 ProceduralMeshComponent 简称 PMC ,提供一个程序化网格组件,可以通过自定义的三角形制作可渲染网格,使用动态渲染路径,在每帧收集渲染数据,没有任何数据缓存。 类结构 游戏 类图 classDiagram Interface_CollisionDataProvider <|..
众所周知 UE4 把 RTTI 给禁止了,这导致 dynamic_cast 的支持是不完全的,也就是说不支持从基类转换到子类,但是在阅读 TSoftObjectPtr (SoftObjectPtr.h) 代码时却看到: /** * Dereference the soft pointer. * * @return nullptr if this object is gone or the lazy pointer was null, otherwise a valid UObject point
开始记录状态到文件 stat startfile 停止记录状态到文件 stat stopfile 便捷作用域计时器 可以直接使用 QUICK_SCOPE_CYCLE_COUNTER(STAT_ClassName_FunctionName); 声明状态组 DECLARE_STATS_GROUP(TEXT("Group Name"), STATGROUP_GroupName, STATCAT_Advanced); 声明计数器 DECLARE_DWORD_ACCUMULATOR_S
目录1 成果1.0.1 效果图1.0.2 代码1.0.2.1 Texture2DArrayWrapper.h1.0.2.2 Texture2DArrayWrapper.cpp2 原理分析2.0.1 FTexturePlatformData [Texture.h]2.0.2 FTexture2DMipMap [Texture.h]2.0.3 GPixelFormats [RHI.h]2.0.4 纹理构建基本流程 成果 引擎版本 4.26.2 实现一个 UTexture2DArray 包裹器。 支持
N 北 X+ S 南 X- E 东 Y+ W 西 Y- T 上 Z+ B 下 Z-
表现 Assertion failed: !FPaths::IsRelative(Dir) [File:/Engine/Source/Runtime/Projects/Private/ProjectDescriptor.cpp] [Line: 337] ../../../UGCExample/../RemappedPlugins/ is not an absolute path 解决方案 将 ProjectDescriptor.cpp 第 143 行处修改: // If this is a pa
为了防止 ICP 信息硬编码,试图修改主题 PHP 代码时发现,主题自带一个底部社交菜单,但是社交菜单会把菜单项换成图片,此操作是完全通过 CSS 代码进行的,所以只需要在自定义 CSS 中加入下面的 CSS 代码,即可覆盖。此代码通过重置社交区域的 li a 标签设置使其恢复文本显示。 .social-menu li a { all: revert; all: unset; } .social-menu { display: -webkit-box; display: -ms-flexbox;
洛谷P4781 题解公式 inline int FastPow(int x, int y) { if (y == 1) return x; if (!y) return 1; int tmp = FastPow(x, y >> 1) % mod; return tmp * tmp % mod * (y & 1 ? x : 1) % mod; } inline void Lagrange() { go(i, 1, n, 1) { up = down = 1; go(j, 1,
洛谷P3834 教程视频 #pragma once #include<algorithm> #include<bitset> #include<cmath> #include<cstring> #include<cstdlib> #include<cstdio> #include<complex> #include<fstream> #include<iostream> #include&
void AsyncTask(ENamedThreads::Type Thread, TUniqueFunction<void()> Function); 一般任务线程: ENamedThreads::AnyHiPriThreadNormalTask 一般回调线程: ENamedThreads::GameThread
PRAGMA_DISABLE_OPTIMIZATION // Code PRAGMA_ENABLE_OPTIMIZATION
原文传送门 FRunnable & FRunnableThread FRunnable提供了最为原始的线程支持,类似std::Thread,虽然没那么优雅,但是功能略多于std::Thread FRunnable—-承载业务逻辑 +[f] Init : 初始化,可以失败 +[f] Run : 线程运行函数,返回退出代码 +[f] Stop : 提前终止这个线程 +[f] Exit : 进行退出前的清理 +[f] GetSingleThreadInterface : 平台不支持
原生插件 Adblock Plus – 通用广告拦截器 Adblock for Youtube™ – Youtube 广告拦截器 Dark Reader – 自适应暗色主题 Proxy SwitchyOmega – 网络代理智能控制 Tampermonkey – 油猴插件支持 User-Agent Switcher and Manager – 伪造客户端信息 Violentmonkey – 油猴插件支持 YouT
lli fac[maxn]; // 阶乘 lli inv[maxn]; // 逆元 lli invf[maxn]; // 逆元的阶乘 inline void init() { fac[0] = 1; for (lli i = 1; i < maxn; ++i) fac[i] = fac[i – 1] * i % mod; inv[1] = 1; for (lli i = 2; i < maxn; ++i) inv[i] = inv[mod % i] * (mod – mod / i)
struct fenwick_tree_t { lli n; vector<lli> tre; fenwick_tree_t(lli n) : n(n), tre(n + 1, 0) { } lli lowbit(lli x) { return x & -x; } void build(lli* arr) { for (lli i = 1; i <= n; ++i) upd(i, arr[i]); } void upd(lli i, lli x) { for (; i
lli gcd(lli x, lli y) { return y ? gcd(y, x % y) : x; }