自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(141)
  • 资源 (1)
  • 收藏
  • 关注

原创 UE SaveGame

定义SaveGame 继承自 UObject,用于实现游戏存档的数据序列化与持久化。功能提供简易的序列化机制,能直接将蓝图或 C++ 中的属性保存到硬盘文件中。与 UGameplayStatics 配合,使用 SaveGameToSlot、LoadGameFromSlot 等接口实现存档和读档。默认使用 FGenericSaveGameSystem 进行本地文件的读写,亦可通过实现 ISaveGameSystem 自定义存储方式(云存档、网络等)。

2025-02-07 13:00:01 720

原创 UE GameInstance

定义GameInstance 继承自 UObject,是在 UE4 中为游戏提供全局管理与控制的核心类。功能作为全局唯一对象(在大多数常见游戏场景下),贯穿游戏启动到退出的整个过程。可以在其中管理和创建玩家(CreateLocalPlayer 等),存储玩家列表。拥有对 GameMode 等类的重载、修改接口(如 OverrideGameModeClass)。提供对 OnlineSession 的管理功能,可进行网络会话的辅助控制。

2025-02-07 12:59:05 677

原创 UE UPlayer、ULocalPlayer、UNetConnection

定义UPlayer是 Unreal Engine 中表示玩家的基类。它并不直接与游戏场景中的对象(如角色或物体)关联,而是用于封装玩家的输入来源。功能作为输入信号的发起者,UPlayer代表了从本地或网络设备传递到游戏的所有输入。它与关联,帮助将玩家的输入转化为游戏世界中的动作和反馈。可以支持多种输入方式,如键盘、手柄或远程网络信号。定义是UPlayer的子类,专门用于表示本地玩家。它负责管理本地玩家的输入、视口配置以及与其他本地玩家的交互。功能。

2025-02-06 15:38:59 1094

原创 UE UNetConnection

定义是 Unreal Engine 中用于表示网络连接的类,它将每个远程玩家视为一个连接对象。功能管理玩家与服务器或其他客户端之间的网络通信。负责接收和发送玩家的输入数据,使网络玩家能够在游戏中进行互动。作为一个特殊的Player实现,可以被视作是一个远程玩家的代理。

2025-02-06 15:36:18 321

原创 UE LocalPlayer

定义是UPlayer的子类,专门用于表示本地玩家。它负责管理本地玩家的输入、视口配置以及与其他本地玩家的交互。功能管理输入设备(如键盘、鼠标、手柄)和视口的设置。在游戏的初始化过程中,负责创建并与其关联。它存储与玩家的本地游戏环境相关的信息,如显示设置、分屏配置等。

2025-02-05 12:54:53 411

原创 UE Player

定义UPlayer是 Unreal Engine 中表示玩家的基类。它并不直接与游戏场景中的对象(如角色或物体)关联,而是用于封装玩家的输入来源。功能作为输入信号的发起者,UPlayer代表了从本地或网络设备传递到游戏的所有输入。它与关联,帮助将玩家的输入转化为游戏世界中的动作和反馈。可以支持多种输入方式,如键盘、手柄或远程网络信号。

2025-02-05 12:53:41 385

原创 UE GameState、GameSession

定义GameState是用来保存游戏的当前状态信息的类,包括玩家状态、比赛进度等。功能比赛状态管理:追踪游戏的当前状态,如是否正在进行、是否已结束等。玩家信息收集:管理所有玩家的状态信息,如得分、生存状态等。网络同步:确保游戏状态在所有客户端之间同步。定义是在网络游戏中管理玩家会话和游戏连接的类。功能玩家登录管理:处理玩家的登录和登出过程。会话管理:维护游戏会话的稳定性,管理玩家的连接和断开。

2025-02-04 11:45:59 674

原创 UE GameMode

定义GameMode是Unreal Engine中定义游戏规则、控制游戏进程的类,是每个游戏世界(World)的逻辑核心。功能类注册:管理游戏中所需的类信息,如玩家和AI控制器、默认Pawn等。实体Spawn:控制游戏中角色和对象的生成,玩家Pawn和PlayerController,AIController也都是由GameMode负责。

2025-02-04 11:44:06 1723

原创 UE PlayerController、AIController

定义是Unreal Engine中用于处理玩家输入并将其转化为游戏世界中的动作的类。它是连接玩家和游戏角色(通常是Pawn)之间的桥梁,负责接收输入并通过Possess方法控制Pawn。功能视角控制:管理玩家的摄像机视角,通过来切换和控制摄像机。输入处理:构建输入堆栈来管理和路由来自玩家的输入命令。UI显示:管理和显示用户界面,如HUD。UPlayer关联:可以是本地的LocalPlayer,或网络控制UNetConnection。

2025-02-03 20:40:52 900

原创 UE PlayerState

APlayerState用于存储玩家状态信息(如得分、名称),并在多人游戏中跟踪玩家表现。AInfo是一个轻量级类,用于存储不参与物理交互的信息,如游戏规则和状态,帮助优化性能并管理游戏元数据。

2025-02-03 20:33:16 613

原创 【UE】 APlayerState

APlayerState

2025-02-02 16:28:15 316

原创 UE AController

【代码】UE AController。

2025-01-29 11:58:11 816

原创 【UE】 Pawn

Pawn专门用于表示可以被玩家或 AI 控制的角色。可被Controller控制2. PhysicsCollision表示3. MovementInput的基本响应接口主要功能可以被Controller控制,比如玩家控制器或 AI 控制器。支持物理碰撞,以便在游戏世界中与其他对象互动。响应移动输入,如键盘和游戏手柄指令。

2025-01-28 16:09:43 638

原创 UE WorldContext、GameInstance、Engine

主要用于管理和追踪不同类型的世界(World),它的作用是帮助引擎在不同的世界之间切换和保存这些切换过程中的上下文信息。每一个世界类型(如游戏世界、编辑器世界、预览世界等)都会有对应的,它通过结构来保存当前世界的信息,包括正在进行的旅行(Level切换)、上一次连接的服务器信息等。主要功能追踪当前世界的类型和状态在世界间切换时保存上下文信息管理与TravelURL相关的Level切换逻辑是一个比World层级更高的管理类,它保存了游戏级别的状态、数据以及游戏中需要跨 Level 保持的全局信息。

2025-01-27 11:52:12 1007

原创 【UE】Level、World

Level在Unreal Engine(UE)中代表游戏的关卡或地图,是游戏世界的一个组成部分。它是一个容器,包含了多个游戏对象(Actors),并支持环境的各种设定和行为脚本。World是UE中更高层级的概念,用于组织和管理游戏中的所有Level。它是一个全局容器,包含一个或多个Level。

2025-01-26 17:41:40 539

原创 UE UObject、AActor、Component

概述:设计理念:

2025-01-23 13:36:30 612

原创 C++ 强制类型转换运算符(八股总结)

(1)const_cast: 把const属性去掉,即将const转换为非const(也可以反过来),const_cast只能用于指针或引用,并且只能改变对象的底层const(顶层const,本身是const,底层const,指向对象const);(2)static_cast: 隐式类型转换,可以实现C++中内置基本数据类型之间的相互转换,enum、struct、 int、char、float等,能进行类层次间的向上类型转换和向下类型转换(向下不安全,因为没有进行动态类型检查)。

2025-01-22 12:32:49 1188

原创 C++ 智能指针(八股总结)

shared_ptr的循环引用(circular reference)是指两个或多个shared_ptr实例通过相互引用彼此共享的资源,导致引用计数无法归零,从而无法释放资源的问题。

2025-01-21 12:36:10 3434 4

原创 C++ 如何定义一个只能在堆上(栈上)生成对象的类?(八股)

原因:在堆上生成对象,使用 new 关键词操作,其过程分为两阶段:第一阶段,使用 new 在堆上寻找可用内存,分配给对象;第二阶段,调用构造函数生成对象。将 new 操作设置为私有,那么第一阶段就无法完成,就不能够在堆上生成对象。原因:C++ 是静态绑定语言,编译器管理栈上对象的生命周期,编译器在为类对象分配栈空间时,会先检查类的析构函数的访问性。若析构函数不可访问,则不能在栈上创建对象。方法:将 new 和 delete 重载为私有。方法:将析构函数设置为私有。

2025-01-21 12:35:24 313

原创 C++ 内存分配和管理(八股总结)

(1)内存对齐的原因:关键在于CPU存取数据的效率问题。为了提高效率,计算机从内存中取数据是按照一个固定长度的。比如在32位机上,CPU每次都是取32bit数据的,也就是4字节;若不进行对齐,要取出两块地址中的数据,进行掩码和移位等操作,写入目标寄存器内存,效率很低。内存对齐一方面可以节省内存,一方面可以提升数据读取的速度;(2)内容:内存对齐指的是C++结构体中的数据成员,其内存地址是否为其对齐字节大小的倍数。(3)对齐原则:1)结构体变量的首地址能够被其最宽基本类型成员的对齐值所整除;

2025-01-20 12:51:14 1372

原创 C++ 抽象类、接口类、聚合类(八股总结)

抽象类是包含至少一个纯虚函数(purevirtualfunction)的类,不能直接实例化。接口类是特殊的抽象类,其所有成员函数都是纯虚函数,且通常不包含数据成员。没有用户自定义的构造函数。没有私有或受保护的非静态数据成员。没有虚函数。没有基类。

2025-01-20 12:50:14 401

原创 C++ 虚继承 vs 虚函数(八股总结)

虚继承是一种解决C++中多重继承导致的二义性问题的技术。它允许一个基类在多继承环境下只存在一个共享的副本,从而避免菱形继承(DiamondInheritance)中出现多个基类副本的问题。虚函数是通过在基类中声明为virtual的函数,用于实现运行时多态(动态绑定)的技术。虚函数使得派生类能够覆盖基类的方法,并确保通过基类指针或引用调用派生类的重载方法。

2025-01-19 12:43:57 496

原创 C++ 虚继承(八股总结)

虚继承(VirtualInheritance)指派生类通过关键字virtual继承其基类。用于解决多重继承中的,尤其是结构中的重复继承问题。

2025-01-19 12:42:53 532

转载 C++ 面向对象(八股总结)

面向对象程序设计(Object-orientedprogramming,OOP)是种具有对象概念的程序编程典范,同时也是一种程序开发的抽象方针。面向对象三大特征——封装、继承、多态。

2025-01-18 17:08:17 196

原创 C++ initializer_list 列表初始化(八股总结)

是C++11引入的一个类模板,用于支持列表初始化。它允许开发者使用花括号{}提供一组值直接初始化容器或自定义类型。提供了一种简洁优雅的语法来传递多个值。

2025-01-18 17:06:51 1089

原创 C++ 成员初始化列表

成员初始化列表是指通过在构造函数的冒号 () 后直接列出数据成员及其初始值来初始化成员的语法。// 构造函数体。

2025-01-17 13:13:26 719

原创 C++ 宏 define(八股总结)

宏是C++中由预处理器处理的一种功能,用于文本替换和代码生成。通过宏,可以实现代码的重复利用、条件编译等功能。宏在程序编译前被预处理器处理,不进行类型检查。

2025-01-17 13:12:40 304

原创 C++ 引用&(八股总结)

在C++中,**引用(Reference)**是一个变量的别名,本质上是一个已经存在变量的另一个名字。通过引用,我们可以直接访问和修改原变量的值。引用在C++中通过符号定义。int a = 10;// ref 是 a 的引用。

2025-01-16 13:20:56 471

原创 C++ decltype(八股总结)

decltype是 C++ 中的一个关键字,用于查询表达式的类型。在编译时,decltype能够根据表达式推断并返回其类型,主要用于模板编程和类型推导。

2025-01-16 13:20:16 385

原创 C++ enum 枚举类型

在 C++ 中,枚举类型(enumeration) 是一种用户定义的数据类型,通常用于表示一组具有相关性的常量集合。通过 定义枚举类型,可以提高代码的可读性和可维护性。主要用途1. 表示具有有限选项的常量集合枚举类型常用于表示一组有限的、离散的值,例如一周的天数、颜色等。示例:输出:2. 提高代码的可读性常用于表示一组有限的、离散的值,使用枚举值代替数字常量,使代码更清晰,语义更明确。示例:输出:3. 控制底层数据类型和范围从 C++11 开始,可以显式指定枚举的底层类型。示例:输出:

2025-01-15 12:38:29 421

原创 C++ :: 范围解析运算符(八股总结)

在类外部定义成员函数时,需要使用范围解析运算符来指定函数所属的类。private:public:// 构造函数定义// 成员函数定义std::cout << "矩形面积: " << rect.area() << std::endl;return 0;矩形面积: 15。

2025-01-15 12:37:41 950

原创 C++ using(八股总结)

另外,名称空间的开放性意味着名称空间的名称可能分散在多个地方,这使得难以准确知道添加了哪些名称。语句一次只引入命名空间的一个成员。它使得我们可以清楚知道程序中所引用的到底是哪个名字。使得某个特定命名空间中所有名字都可见,这样我们就无需再为它们添加任何前缀限定符了。using编译命令导入所有的名称,包括可能并不需要的名称。一般说来,使用 using 命令比使用 using 编译命令更安全,这是由于它。这在定义复杂类型时尤其有用,例如模板类型。如果该名称与局部名称发生冲突,编译器将。

2025-01-14 13:06:33 650

原创 C++ friend 友元类和友元函数(八股总结)

在 C++ 中,友元(friend)是一种特殊的关系,它允许指定的函数或类在不受封装限制的情况下访问另一个类的私有(private)或受保护(protected)成员。

2025-01-14 09:00:00 631

原创 C++ union 联合(八股总结)

union(联合体)允许在同一内存位置上存储不同的数据类型,所有成员共享相同的内存空间。

2025-01-13 18:21:10 692

原创 C++ 纯虚函数(八股总结)

纯虚函数是一个没有实现的虚函数,其声明中使用= 0表示,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。

2025-01-13 18:20:09 352

原创 C++ struct和class

在 C++ 中功能上几乎是一样的,都可以有构造函数、析构函数、成员函数、继承、多态等特性。总的来说,struct 更适合看成是一个数据结构的实现体,class 更适合看成是一个对象的实现体。最本质的一个区别就是默认的访问控制。

2025-01-11 22:08:06 293

原创 struct 和 typedef struct(八股总结)

特性C 语言C++ 语言定义结构体声明变量Person p1;使用 typedef通常不需要typedef,可以直接使用结构体名。

2025-01-11 22:07:28 345

原创 用c实现C++类(八股)

在 C 语言中,虽然没有内建的面向对象编程(OOP)特性(如封装、继承、多态),但通过一些编程技巧,我们仍然可以模拟实现这些概念。下面将用通俗易懂的方式,逐步介绍如何在 C 中实现封装、继承和多态。

2025-01-10 23:04:28 2455 4

原创 C++ 位域(八股总结)

(bit-field)是一种允许程序员定义一个结构体成员,以占用指定数量位的方式来精确控制内存中的存储。通过使用位域,可以有效地节省内存空间,尤其是当需要表示多个逻辑值(如布尔值、标志位等)时。

2025-01-10 14:00:00 340

原创 C++ #pragma pack(n) (八股总结)

设定结构体、联合以及类成员变量以 n 字节方式对齐。#pragma pack(n) 使用。

2025-01-10 13:00:00 273

ViewPager+Fragment+DrawableLayout 实现页面水平滑动与侧滑抽屉布局

ViewPager+Fragment+DrawableLayout + NavigationView实现页面水平滑动与侧滑抽屉布局

2020-10-13

空空如也

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

TA关注的人

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