自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 UE-- 引入IOS framework 库 真机运行闪退

说没有动态库 我在ue 的 cs文件 弄了半天 不行以后。然后根据这个路径直接把Xcode中编译出来的文件 复制过去。我从Xcode编写了一个framework库(动态库)我直接解压.ipa 文件 (先把后缀名修改为.zip)我编写了一个插件 里面是 调用IOS原生代码的。然后先成压缩.zip 然后改尾缀为.ipa。后先成压缩.zip 然后改尾缀为.ipa。安装到ios真机上 跑起来了!安装到ios真机上 跑起来了!正常的打包出来了 ipa 文件。obj-c与swift混编。

2024-09-14 18:22:45 631

原创 UE----IPA 安装 在手机上后 显示 不受信任的开发者

进入设置 ----》 点击 通用 ----》点击 VPN与设备管理。在隐私与安全性里 下滑 最底部 即可看到开发者模式。点击信任 然后 再打开开发者模式即可。

2024-08-19 22:00:00 724

原创 UE 开发---- Ios ipa 安装包安装到IPhone手机上

由于最近 我在使用ue 开发手机软件 打包成为 Ios ipa 安装包时 安装到手机上遇到的问题。

2024-08-19 21:15:00 540

原创 c++之说_15|成员函数的const尾缀修饰 (& && const& const&&)

所以const尾缀修饰的成员函数 就是专门给 const对象调用的 const对象没有资格调用非const尾缀修饰的成员函数。完全的const 右值临时对象调用 get函数 调用的是const && 尾缀修饰的函数。kj().get();pp1 是const 修饰的右值引用对象(变量) 调用的是const & 尾缀修饰的函数。pp2 是const 修饰的左值引用对象 (变量)调用的是const & 尾缀修饰的函数。f2 是const 修饰的左值对象(变量) 调用的是const & 尾缀修饰的函数。

2024-06-19 00:55:31 360

原创 Ue不消耗輸入

1、介紹1、介紹我們都知道ue裏面使用輸入時,都是在PlayerController裏面進行獲取,使用官方的操作映射,軸映射,以及目前最新的增强型輸入但是我們發現了一個問題 那就是輸入會被消耗就是儅我鼠標按在一個按鈕上時 你另一個地方接受不到此次的輸入你會覺得很奇怪,我也覺得很奇怪現在我們需要一個功能 那就是游戲的全局中 我鼠標點擊一下就會有特效這該怎麽辦呢 一開始我覺得簡單 推送一個監聽事件 監控這所以輸入就好了。

2024-04-15 17:17:28 799

转载 2024.3.19笔记

首先ue联网使用的类是Http 请求的接口(使用 FHttpFactory 创建)这个是请求头模块是这是我目前使用的方式。

2024-03-19 19:02:17 61

原创 记录笔记的软件小技巧

这样在VsCode上就可以直接创建使用 md文件。左边是新建立文件 右边是建立一个新的文件夹。首先安装VsCode。在拓展一栏安装小插件。

2024-03-19 18:19:51 122

原创 ue WebUI插件下载官方Github方法

首先要先将EPIC账号绑定Github账号。好了就这样 别被割韭菜了。下滑找到对应版本下载即可。绑定以后点击这个链接。

2024-03-07 19:00:00 730

原创 c++之说_14|左值引用与右值引用

这样的函数 是有隐患的 我的本意是 这个返回值是即将销毁的值 然而外部可修改。我们也看到了引用是可以直接修改对象的 所以也是会有点问题 有些人不按照规则来。你不知道传进来的这个对象是 const 修饰的对象 还是 要表示的销毁对象。我的理解就是告诉我们 这个值是要销毁的 推荐使用一个新对象去存储。右值引用的右值引用 才是右值引用 其余都为左值引用。记住有名字的右值引用 是左值 所以可以取地址。对左值引用取地址 所取的是引用对象的地址值。由于是引用 当然可以改变所引用的对象。

2024-02-11 14:51:32 633

原创 c++之说_11|自定义类型 enum(枚举)与enumclass (c11新枚举)

enum 被称为无作用域枚举 , enumclass / enumstruct 被称为有作用域枚举。所以c++引入了enumclass / enumstruct 有作用域枚举。你会问 要是我用一个不存在于枚举里面的数 去强制转换为枚举会如何?无作用域枚举 定义以后可以直接访问到成员 仿佛是全局变量一般。这个是什么 它可以指定枚举的内存使用的大小。int ki = k;无作用域枚举 可以隐式转换到数值型。看下面的数 是上面数加1吧?

2024-02-10 18:22:06 517

原创 c++之说_13|模板 折叠表达式

调用处 call(integer_sequence());这个可以说就是 把 ... 左边的 成一个整体 get(_tuple)// return ((5*10)+...+ints);要根据 形参包实际的参数 ints 去调用并 铺开成为。从这里我们也可以看出 lambda 本质是是一个类里面。这是这里说的几种 实际上并还有一些写法。不和我们平时调用的一样。

2024-02-08 12:17:43 396

原创 c++之说_12|模板

我们看到 Tuple_text<int, char, float, long> 类里面有所有的 val。但是 继承的 父类 Tuple_text<char, float, long> 的 val。Tuple_text<int, char, float, long> 的 val 很简单。这就是模板特化的一部分特性 注意 特化版本的模板形参与主模版的模板形参并无瓜葛。看就显示实例化了没用到的 Obj 模板形参 我们人看上去也是可推导的。不限个数的啊 超过两个的形参 统统进入形参包。

2024-02-07 23:06:15 900

原创 c++之说_10|自定义类型 union 联合体

我们可以发现 union u1Obj.o = 0xFFFFFFFFFF;是直接写在了第一行 写了四个字节。给的数值是5个字节的却只写了四个字节。看到没 union 内存大小是 8 struct的内存大小是:24 同样的内部成员。union内部的成员变量的内存都是共用同一块的 大小一般是 内部成员最大的那个个。因为 o 这个变量是 int 型的 大小就是4字节 超出的就截掉了。union 类型名 { 内部成员 } 定义时实例的对象;左边是union的 右边是 struct的。

2024-02-05 17:26:21 893

原创 c++之说_9_6|自定义类型 struct operator 重载运算符关键字

所以 obj_2& operator= (const obj_1& Target)obj_2& operator= (const obj_1& Target) 函数。obj_2 里面有个这个 证明了 有转换到 obj_1类型的方法。textb2 是obj_2类型 a1 是obj_1类型。texta1 是obj_1类型 b2 是obj_2类型。顺序是按照 new(b, 9000,&p) obj_1。obj_3类型 c3 obj_1类型 a1;

2024-01-31 01:58:20 1351

原创 UE APlayerController玩家控制器 是如何取得系统所发的系统按下按键信息的?Windows平台

FWindowsApplication::ProcessMessage( HWND hwnd, uint32 msg, WPARAM wParam, LPARAM lParam ) 函数中进行消息处理。我们发现 UE是统一进入DeferMessage()函数中进行处理的。

2024-01-26 23:22:23 950

原创 UE创建数据表格

FindRow()函数可查询并返回对应行的行结构 FTableRowBase。创建一个数据表格需要行结构 继承自FTableRowBase的一个子类。在蓝图中给C++该类型的指针变量选用 UDataTable类型的。

2024-01-26 00:15:56 469

原创 UE创建数据资产 UDataAsset

UE创建数据资产 需要一个继承自UDataAsset的子类。所以数据资产在我觉得只是该子类的一个实例对象。如果在子类中写多个集合 和 其它数据。在编辑器里创建后的效果。

2024-01-26 00:05:57 696

原创 UE使用C++添加FGameplayTag(游戏标签)

我们直接通过 UGameplayTagsManager::Get()静态函数拿到。AddNativeGameplayTag()函数就可添加游戏标签了 就这么简单。首先Ue会有一个UGameplayTagsManager类型的对象。全局唯一的游戏标签管理器的实例 返回的是个左值引用。第一个参数便是标签 使用 . 分割父子标签。游戏标签管理器(全局中就有一个)

2024-01-25 23:49:40 1005

原创 c++之说_9_5|自定义类型 struct 析构函数

/error 使用了B 的无参构造函数 但是B中没有 无参构造函数。// 函数结束 销毁函数栈中的栈变量 cobj 被销毁。// 函数结束 销毁函数栈中的栈变量 cobj 被销毁。注意 new 实例类型变量时 返回的是堆空间中的地址值 需要使用指针存储。//ok 使用了B 的有参函数。//归还堆空间 销毁该B类型的对象。//这里我感觉其实应该放调用类型的构造函数。delete 掉 C类型构造函数中的 new 出来的地址值。它是对象销毁时进行自动调用的 一般是拿来做清理工作的。

2024-01-24 17:32:45 435

原创 c++之说_9_5|自定义类型 struct 构造函数

/ 或者 new A1 在堆空间 error 无法为该类型实例变量 因为 无参构造函数是 protected 外部无权访问。// 或者 new A 在堆空间 实例一个A类型对象变量并返回地址 使用的是 无参构造函数。//实例一个A类型名为 a1 的对象变量 使用的是 有参构造函数 A(int a)// 在堆空间 实例一个A类型对象变量并返回地址 使用的是。//实例一个A类型名为 a 的对象变量 使用的是 无参构造函数。使用有参构造函数 A1(const char* a)

2024-01-24 02:44:47 542

原创 c++之说_9_4|自定义类型 struct 访问修饰符

aPre = 102;//error 在父类 A 中 该 aPre 变量是 private 的 所以子类无权访问 只能在A自己的内部访问 同样我们也可以间接。struct B: public A // 继承写法 继承 其实就是 子类直接拥有了A 中的一切 函数 变量 typedef 的类型别名 using 的类型别名。//error aPr变量是protected 的 类的外部不可以通过实例对象访问。//error aPre变量是private 的 类的外部不可以通过实例对象访问。

2024-01-24 01:57:29 521

原创 c++之说_9_3|自定义类型 struct 前向声明 与 typedef与 using

/定义一个类型别名 前向声明可以定义别名。//定义一个类型别名 前向声明可以定义别名。//本质上就是 A类型的指针 别名并不创造新类型。A get(A b);//虽然不能定义对象 但定义在函数形参中可以。typedef 与 using 只是定义类型别名 而不是创造类型。using 新名 = 旧名;//error 前向声明不可定义对象。typedef 返回值(*类型名称)(参数类型);前向声明不可以访问(会提示你不完整类型)前向声明可以在函数形参中定义对象。

2024-01-23 11:32:28 447

原创 c++之说_9_2|自定义类型 struct 无名struct

其实就是这个 struct { int a;答案是 可以的 集合体 集合体 本质上就是各种类型变量的组合。A.a = 100;就和正常的struct 一样使用变量。//error 这两个其实是不同类型。也就是说 在定义时 可以直接就 定义一个变量。无名结构体 且在定义时 定义了个 变量 A。struct 有一个 定义时不给名字的操作。无名结构体之间能转换么?基本数据类型定义的变量 才叫变量。这种集合体 定义的变量。无名结构体的类型是什么?//在main 函数中。//main 函数中。

2024-01-23 11:07:31 446

原创 c++之说_9_1|自定义类型 struct 位域操作

2 ^6 = 64 是代表 一位 能表示64个数 0 1 2 3... 63。计算 就是 每一位乘以 自己位对应的十进制数 再相加 结果就是最终的十进制数。2 ^1 = 2 是代表 一位 能表示两个数 0 / 1。// 3 = 11 b (二进制)// 2 = 10 b (二进制)// 2 = 10 b (二进制)sizeof Bit = 1 //一字节大小。sizeof Bit = 2 //刚好二字节。一字节 内的 位不够分配时 会自动开启下一字节。

2024-01-23 10:52:05 902

原创 c++之说_9|自定义类型 struct 结构体

/object.b = 100 object.c = 200 这是struct初始化的一种方法。//object.c = 100 object.b= 200 这是struct初始化的一种方法。-› 这是一个箭头 你想通过自定义类型的指针 变量 去访问 该地址的使用此类型解释时的对应成员 就得用它。* 解引用 (我喜欢叫 解地址符 因为本质它就是拿到这个地址所代表的类型对应的变量)//创建 struct a 类型的 A变量(对象)

2024-01-23 01:18:52 339

原创 UE GAS系统 UAbilitySystemComponent组件中UAttributeSet 的属性集合的存储问题

今天学习时,当时一直在思索 我 UAttributeSet类的子类 并没有在 UAbilitySystemComponent 的子类中 去进行附加 但是为何 使用时 能获取出来。这里可以看到 AbilitySystemComponent中的OwnerPrivate存的是当前的PlayerState对象。会把当前的调用它的对象存到 UObjectBase::OwnerPrivate 中。根据以前我的一个老师告诉我的一句话。我大为震撼UE的开放者们是如何去把我类外的对象找到的。

2024-01-06 00:14:11 404

原创 UE UMG控件有些反常识问题 构造事件

我们发现执行了SetPr以后 又执行了构造事件 所以发生了执行流的错误认知 导致的bug。c++是 先父母 后客人 再自己 的顺序调用构造函数的 析构函数调用顺序是反过来的。我以前理解的是 创建对象时就开始调用构造事件了 和 C++上面的构造函数 一样的用法。创建控件 运行完这里我们就已经创建了一个main UMG蓝图的实例对象了。我们主要是这个 setPr的事件 这个事件是拿来给子类实现的。我们发现我们的滑动条使用了构造事件里面的设定了。按原来的想法我们创建对象时就要调用构造事件了。

2023-12-13 00:50:31 197

原创 UE动画蓝图的状态机 如何运行 |随笔

我们看到线上方多了一个双向符 这个符号可以点进去 里面返回的是一个布尔值 当布尔值为真时候 该转换条件成立 运行流便从状态 State1 运行到 状态State2。这里是动画图表最终输出的动作 我们也看到了蓝图运行时 那可视化的运行流 这个便是当前正在运行的运行流。我们发现 都不运行了 状态机其实也只是输出当前运行时此状态机内 状态的动画。State1是运行该状态机时 运行的第一个状态 现在我们来建立第二个状态。我们可以看到几个状态机都在运行 但是我们新创建的状态机并没有运行。

2023-12-03 16:43:52 762

原创 UE4 轴映射和操作映射的区别|随笔

/存使用的操作映射名,按键事件(按下 抬起)与调用函数的地方 这个需要在玩家控制器中的PlayerInput -> ActionMappings;//存使用的轴单按键与调用函数的地方 这个是直接使用按键 不需要映射 不过这个绑定的函数参数是 一个FVector类型 不过这里好像只有鼠标2D轴。//轴映射名 FKey Key;//存使用的轴映射名与调用函数的地方 这个需要在玩家控制器中的PlayerInput -> AxisMappings 有对应映射。

2023-11-30 17:34:46 583

原创 c++之说_8|函数

/如 int n(int a,int b = 0){ return 0;void 无返回值的函数 也是可以使用 return 只是无需在后面带上返回值。//这个函数可以写多个参。//区别就在于 定义 fnvoid1函数时 ()里没写参数。//而定义fnvoid2函数时 ()里 写了个 void。//如此 v 就是函数里 return语句 返回的值。返回到调用处 而函数的返回值 也是它一起拿出去的。(没有默认参数的情况下,有默认值的参数可以不传值)//如此以后 程序的执行流 就会跳转去函数语句块。

2023-11-29 11:43:24 44

原创 c++之说_7|循环语句

下一次循环条件判断 成立后 去执行 for( int i = 0;指令后 此时 a = 7 然后回到 while 处 继续判断 条件是否成立 周而复始 直到 while 处 判断的条件不成立 不再允行循环语句块。就是 它会先运行一次 循环语句块后 再去判断while 处的条件 就算第一次 的条件都不成立。不会再执行 这个循环语句了 就当这个循环语句已经完成了 循环条件已经为 false 了。就不会执行 以下的语句 直接跳循环 所以通常我们是在 需要跳循环的执行尾部使用。

2023-11-28 23:02:58 27

原创 c++之说_6|判断语句

c++中 有 if 语句 switch 语句 这两个语句 都是拿来判断的。注意 运行只要遇到 break 就会跳出 不会运行以下的语句。if( a < 8 ) 这是整个 if 语句的开始。int b = a;看到没 上述条件是 数值 而不像 if 一样是个判断。这里是上述 case 上的数值 都不匹配时。所以一条语句的概念兴许 与你理解的有点不同。这个会运行这个语句块。这个语句 和 if 的规则 不太一样。当a 7 时运行这个语句块。

2023-11-28 11:45:01 35

转载 c++为何要有虚析构函数

虚析构 就是为了防止 delete 释放 堆栈资源时 保证释放的地址值是正确的。看到的 父类类型里的析构函数 而不会调用子类析构函数。这样就导致了 delete 的地址值其实是错误的。这样就导致了 delete 的地址值其实是错误的。会直接调用静态类型的析构函数 就是明眼上去。fp 里面存的值 会与 cp里面存的值不同。fp 里面存的值 会与 cp里面存的值不同。推荐看看上述转载的博客 那个比我说得详细。但是释放时的地址值 却指向了正确地址值。释放时也是错误地址值。

2023-11-28 10:48:53 66

原创 UE RPC 调用失败的情况

也就是 客户端本地控制对象 大概是因为这个对象有一个PlayerController 这个玩家控制器 在服务器还是有连接副本的 在客户端除本地玩家操作的对象 在此客户端的其他客户端操作的玩家对象是没有控制器的 这些对象只是服务器端的副本。当客户端攻击服务器对象副本的血量为零时 我便要 使用ServerBloodChanged函数 发送到服务器去验证 看看攻击的服务器对象副本对应的 服务器的对象的血量是否为零 让服务器往下分发一下 血量。所以本客户端的其它玩家的副本对象 想要调用RPC函数的话。

2023-11-27 16:52:01 424

原创 C++左值引用|随笔

我们使用 k 改变 k 里面的变量时 pb 里面也会改变 别名而不是新的对象 共享 pb的内存块。左值引用 初始化时 引用了一个对象 而后续 是否可以 更改 去引用另一个对象?k 的引用地址始终没变 但是 内部的 Val 值却是改变了 怎么回事呢。这句话就是 左值引用变量 k 初始化时引用了 pb 这个M类型的对象。而正常的左值引用 正是引用 可以放在等号( = ) 左边的变量的。左值引用 是 初始化引用后 无法再次修改引用其它对象的。引用必须初始化 在函数参数里的除外。

2023-11-27 16:32:14 166

原创 UE多人游戏变量复制|随笔

会下发到连接着该服务器的(不同)客户端中,对应连接的对象中。服务器端中对象的该变量改变时 (不是马上 )是 服务器端 到 客户端的顺序。UE 的多人游戏变量复制。

2023-11-19 23:20:18 85

原创 ue编辑器启动程序文件路径

Epic Games\UE_5.2\Engine\Binaries\Win64\UnrealEditor.exe

2023-11-08 22:34:37 476 1

原创 c++之说_5|变量作用域

是一片可以由你自由定义的一片内存,你可以指定,该区域的内存不可使用的时候 该区域的内存从你定义使用时 到你自己释放该内存之前 都可以访问使用。所谓失效 就是白虎 认为这些失效的内存 变成未使用的内存 之后指令中新定义的变量 白虎考虑从这些未使用的内存中寻找代表内存的大小。是一种你在指令流中,在{}之间静态修饰定义的变量 该变量所代表的内存 从声明起,到游戏结束之前都可合法使用。从一次游戏开始的时候,到游戏结束都合法存在的区域(全游戏过程中都可以使用 该区域划分代表变量的内存)

2023-10-12 21:20:06 40

原创 c++之说_4|代码实践

这个是bool 类型 b变量的值 内存值 01 h 布尔类型 1 字节 非零值都为 true (是的负数也是true) 0值 就为false。给a变量填入的是1 这串内存的值是 00 00 00 01 h (在这上面是显示的都是十六进制)这两个文件是啥,就是我们九宫格游戏上所写的纸条,上面写的都是你用编程语法所创造的代码指令。这是 定义变量的方式之一 这是未初始化的变量 因为没有给变量所代表的内存放入值。上面这是变量的赋值 是的这两种叫法情况不一样 执行结果虽然都是一样的。

2023-10-07 23:41:49 68 1

原创 c++之说_3|数据类型

随着游戏的进行 你发现 一个小格子能表示的东西太少了,而且究竟是表示数字还是文字 是混淆的。白虎并不知晓人类文字 它只知道根据 指令和小格子里摆放的小棒去对照你所写的ASCII 编码。char * 字符指针型 至少是四个字节数(至少四个格子数)具体字节数根据操作系统有关。数据类型 将不同或相同的格子数中的小棒 代表不同的东西 如 文字、数字。就这样白虎根据变量名前面的数据类型 将对应的小棒放入九宫格中的空余的小格子中。因为数字是有正负的 所以你规定了默认情况下 代表数字的类型都是有正负的。

2023-10-03 14:06:07 40

空空如也

空空如也

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

TA关注的人

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