笔记
文章平均质量分 57
老夫写代码就是一把梭
这个作者很懒,什么都没留下…
展开
-
UE4_如何在UI中设置动态图片
导入3D场景中/导入到UI中1>打开PS,先把想要的动态图拆分成序列帧(有序列帧的请忽略这一步,直接看)前缀任意,点击运行后会得到这样一些图片2>拆分完成后合并图片为联系表这里的行列,根据你图片数量*对应的尺寸,算出宽度高度的像素即可,我是26张图,5*6=30张能摆开就行.3>前期准备工作完成,打开UE,导入我们把图片序列和联系表格都导入到UE中,先操作图片序列部分.创建完成后选中创建的所有Sprite,再次右键...原创 2022-05-17 13:35:32 · 4302 阅读 · 3 评论 -
笔记_新插件作为模块移动原插件_Widget里自定义属性_防止对象/变量回收
新插件作为一个模块移动到原来插件上1:移动原来插件的Source下的文件夹过来2:修改三处文件. <1>新插件.build.cs 添加上关于你要移动到哪个插件的名字 <2>最外面的插件.uplugin,添加上你添加的模块名字 <3>修改原来插件的style.cpp文件,FindPlugin后面的名字写你移动到的插件名 3:重新编译即可.Widget里自定义属性 SLATE_ATTRIBUTE...原创 2022-02-27 18:17:20 · 80 阅读 · 0 评论 -
笔记_Slate部分知识点/编译器扩展部分_世界大纲中物体右键添加自定义操作_对文件栏文件右键进行操作_添加一个Actor detail面板属性_自定义映射变量
零散知识点//菜单分隔符 Builder.AddMenuSeparator(); //子菜单 Builder.AddSubMenu( LOCTEXT("OOO","JJJJ"), LOCTEXT("CCCC","KKKK"), FNewMenuDelegate::CreateRaw (this,&FMyToolModule::SubPullDownBar) ); //图片Slate Builder.AddWidget( SNew(SImage), LOC原创 2022-02-27 18:11:02 · 365 阅读 · 0 评论 -
笔记_编译器插件文件转Source中_*&简单使用_Lambda断点问题_编译器扩展小知识点
编译器扩展插件转Source一:先改文件结构将文件剪切直接粘贴到Source中,并修改目录下的文件目录下为,1,private 2,public, 3Resources,4,xxxx.build.cs二:代码修改首先在xxxEditor.Target.cs文件中,添加好对应的模块,然后修改原来插件下面的xxxStyle.h,找到ReloadTextures 方法,点开后修改原来指向插件的路径,现在指向本身,例子: Style->SetConte...原创 2022-02-27 17:53:12 · 104 阅读 · 0 评论 -
笔记_断言_共享指针_共享引用_转换_弱指针_单播/多播/动态代理
一.断言1.checkNoEntry();检测程序进入到这个函数中了吗,进入则断开2.checkNoReentry();检测函数是否被执行了两次;3.checkNoRecursion();递归检测,如果递归就崩溃.4.ensure(0 && "打印信息");其中0为bool,为零会在此打断,程序会阻塞在这里,用于调试二.共享指针(TSharedPtr)1.优势1> 可以避免循环引用2> 由系统管理释放,无需手动操作3> 存在原创 2022-02-27 16:19:54 · 381 阅读 · 0 评论 -
UE4_Instigator_人懵逼了就会懵逼纪录1
今天被这玩意气到了,Instigator翻了翻源码在4.27中是这样的私有类,无法子类访问,了解,然后想了想,有没有GetInstigator找了下,还真有而且还是个Public,问题按理说解决了并不是Rider开始疯狂报错,:FAITestBase.error!.大约48个错,绕了很久最后花了20分钟,发现Rider不知道怎么引用了个这个头文件???另外,找了找4.24之前的源码好吧,之前还是共有变量,24后改为私有了.可能是写迷糊了,对着南墙就撞..原创 2022-01-23 18:42:12 · 885 阅读 · 0 评论 -
UE4每周小功能_UI二级菜单
做功能的前提是先设计,后实现思维导图分析这个功能比较简单,设计没有什么复杂的地方,主要点在于数据在各级菜单之间传递,理解这点,做出来很容易.实现过程由大到小主菜单一级菜单二级菜单第一次写的比较简陋,很多不好的地方等会会出一个简单的视频版教程.修正一些问题...原创 2021-12-18 09:30:39 · 755 阅读 · 1 评论 -
笔记_New与Delete_operator new 和 operator delete_内存池
New与DeleteNew不加括号的差别1>空类的话无区别。2>有成员变量,带括号的会把一些和成员变量有关的内存清零,并不是整个对象的内存为零3>当有构造函数的时候,两种写法一致,不会把内存清零了。由构造函数负责了。class Test3d{public: Test3d() { cout << "Init" << endl; } ~Test3d() { cout <&...原创 2021-12-07 16:48:21 · 434 阅读 · 0 评论 -
笔记_Atomic详解_复习_Async与Thread的区别_recursive_mutex_虚假唤醒_线程池
Atomic详解一般的原子操作,针对++,--,+=,&=,|=,^=是支持的,其他的可能不支持比如std::atomic<int> myato = 0;myato = myato+1;这种结果会不对.Async深入复习Async:用来创建一个异步任务.std::launch::deferrer[延迟调用]std::launch::async[强制创建一个新线程]async为什么不和Thread一样叫创建一个线程呢?因为async有时候不一定创建一个新线程,原创 2021-12-06 22:48:35 · 206 阅读 · 0 评论 -
UE4每日学习笔记_AI篇(五)
AI躲避玩家位置1.修改EQS_FindPlayer,在ProjectionData中的TraceMode,修改为几何体,这样可以无视导航,而是做一个垂直判定(垂直偏移),使得均匀球体可以分布到无导航区域.在FindPlayer中添加其他几个部分详细介绍此处会过滤玩家看不到的位置如图所示,此处添加一个判断Npc距离玩家的位置此处添加一个周围环境判定,其实线性不动,只是把得分改成-1,也可以起到同样的效果.最后在行为树中运行即可运行效...原创 2021-12-05 12:11:37 · 885 阅读 · 0 评论 -
UE4每日学习笔记_AI篇基本概念
什么是EQS(环境查询系统)?是UE4AI系统的一个功能,用于从周围环境中收集数据在EQS中,可以通过不同种类的测试向收集的数据提问,这些测试会根据提出问题的类型来生成最适合的项目生成器比如EQS_FindPlayer中的SimpleGrid,是生成器,用于产生将要测试和加权的位置或Actor,生成的是一个范围,一个形状测试节点主要是用于测试距离,自定义的边界,点,或者追踪某些命中或没命中的事件,还有寻路的长度等等.在Trace追踪测试中蓝色代表过滤掉的位置,即不选择.原创 2021-12-03 20:00:34 · 885 阅读 · 0 评论 -
笔记_async_future_promise_future成员函数_原子操作std::atomic
async future作用:创建后台任务并返回值定义:async 是一个函数模板,用来启动一个异步任务,启动后会返回一个future类模板对象(线程返回的结果)实现:可以通过调用future的成员函数get()获取结果调用get时,等待入口函数执行完毕,拿到结果后才往下走。wait只是等待,并不返回结果代码:int mythread4(){ cout << "mythread4()start " << "thread...原创 2021-12-03 16:56:55 · 394 阅读 · 0 评论 -
UE4每日学习笔记_AI篇(四)
EQS系统前期准备1.创建以下几个类文件1_1>创建必要的文件其中EQC_C是继承自EnvQueryContextBlueprintBase的类1_2>对EQC_C修改对这个方法重载,用一个玩家角色作为返回值2.对EQSAIController的操作2_1>先添加视觉组件2_2>重载AI感知中,当AI感知发生变化方法(视觉)代码解释:先保存看到的Actor,判断看到的Actor是否含有Player标签,并且是看到的情况下..原创 2021-12-02 23:55:00 · 1270 阅读 · 0 评论 -
笔记_单例设计模式_call_once_condition_variable_wait()
单例设计模式共享数据设计模式,把项目开发经验总结,模块化。单例模式:整个项目中,有某个或者某些特殊类,属于该类的对象,有且只能创建一个。class mySys{public: static mySys* GetInstance() { if (m_instance == nullptr) { m_instance = new mySys; static GC cl; } ...原创 2021-12-02 16:55:20 · 635 阅读 · 0 评论 -
UE4每日学习笔记_AI篇(三)
Npc伤害反馈功能 首先先添加一个蒙太奇通知打开之前的行为树,添加新的节点,并仿照听到行为设置好在人物中添加一个攻击节点,并且如果生成的触发器碰到了玩家,那么这里会报告一个伤害事件此处的TraceChannel为自定义通道,在人物碰撞处可看到,选择为阻挡即可判定成功最后此处为行为树的相关设置流控制(BlackBoard中装饰节点)重新解释下,原先内容解释不明确BlackBoard中装饰节点,所选中的黑板键值发生变化时,中止执行子树Self:正...原创 2021-12-01 22:33:53 · 502 阅读 · 0 评论 -
笔记_线程参数_多线程执行_互斥锁_死锁_unique_lock_lock_guard
传递类对象,智能指针作为线程参数class TA{public: int cc; TA(int a) :cc(a) { cout << "构造函数执行: " << this << " threadId: " << std::this_thread::get_id << endl; }; TA(const TA& a):cc(a.cc){ cout << "拷贝构造函数执行: " <...原创 2021-12-01 16:44:10 · 293 阅读 · 0 评论 -
笔记_线程概念_多进程并发_Detach()
并发,进程,线程基本概念并发两个或者多个任务同时发生,一个程序同时执行多个独立任务进程一个可执行程序运行起来了,就创建一个进程线程每个进程,都有一个主线程,并且主线程是唯一的,也就是一个进程只有一个主线程。当你执行一个可执行程序,产生一个进程后,这个主线程就随着一个进程启动起来了。F5运行的时候,进程的主线程来调用main函数的代码线程,代码的执行通路。除了主线程外,可以通过自己写代码来创建其他线程,其他线程是走别的地方每创建一个新的线程,就可以在同一时刻,多干一个不同的事原创 2021-11-24 16:38:30 · 540 阅读 · 0 评论 -
笔记_类模板成员函数_typename_模板_类模板_可变参类模板_using
类模板成员函数可以写在类模板定义中{}。那么这种写在类模板定义中的成员函数会被隐式声明为inline函数。一个实例化模板,它的成员函数只有在使用时才会被实例化注意,浮点型不能做非类型模板参数template<class T>class FVector{public: FVector(); typedef T* FIterator; FVector& operator=(const FVector&);private: F...原创 2021-11-19 16:58:02 · 584 阅读 · 0 评论 -
笔记_临时对象_移动构造函数_虚基类_虚继承_类型转换构造函数_静态成员函数_模板和泛型
临时对象:int &&ref = i++;r1 = 19; i =20;ref 和 i 之间没有什么关系一些临时对象,是代码写的问题,统一称临时变量为临时对象产生情况:1) 以传值方式给函数传递参数(不推荐,建议传引用,不产生临时对象)2) 类型转换生成的临时对象,隐式转换3) 函数返回对象的时候(用变量来接,&,或者&& 接收,都会少调用一次析构,防临时变量被析构掉)总结:Func();//函数引起消耗Test temp; 会消耗一个构造和原创 2021-11-18 20:54:00 · 205 阅读 · 0 评论 -
笔记_RTTI_typeid_type_info_final_静态动态_左值和右值
RTTI:(Run Time Type Identification) 运行时类型识别通过运行时类型识别,程序能够使用基类的阵阵或者引用来检查这些指针或者引用所指对象的实际派生类型1 dynamic_cast 能够将基类的指针或者引用安全的转换为派生类的指针或者引用2 typeid 返回指针或者引用所指对象的实际类型;以上方法,要求基类必须有虚函数因为只有虚函数的存在,这两个运算符才会使用指针或者引用所绑定的对象的动态类型(new的类型)强制转换 Human *p = new Men;..原创 2021-11-17 18:41:17 · 482 阅读 · 0 评论 -
笔记_内联_类_mutable_静态成员变量_纯虚函数
内联:一些简单的函数调用时间可能只用几毫秒,但是压栈出栈时间远比函数调用时间长,为了节约时间1系统尝试将调动该函数动作替换为函数本体,以提升性能。函数定义前增加了关键字inline2只是开发者对编译器的一个建议,编译器做不做取决于编译器的诊断功能3内联函数定义要放头文件。这样用这个内联函数的文件都能通过#include吧这个源代码放进来。1内联函数尽量要小const int &d = 100;函数中带const可以防止传参被修改,只是引用void func(const int原创 2021-11-16 22:51:51 · 268 阅读 · 0 评论