Home

win10下长路径异常

一下是官方对于这个长路径异常的说明 https://docs.microsoft.com/zh-cn/windows/win32/fileio/naming-a-file#maximum-path-length-limitation 操作方式 使用Win+R打开注册表 regedit 在注册表中找到一下的路径,将这个值改为1即可 Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled (Type: REG_DWORD)

Read more

unreal资源的元数据.

大纲 uasset的metadata是什么 uasset的metadata能做什么 使用蓝图增加metadata 使用python增加metadata 查看metadata link uasset的metadata是什么 metadata是在uasset导入后,在uasset上额外增加的自定的信息,该信息是key-value的结构,而且是只用在editor下,对正式发布的资源没有影响! 对于这类自定义增加的信息,可以有以下自定义的操作! uasset的metadata能做什么 前文已经说了,自定义操作可以对应自定的一些行为!这里就简单说一下行为有哪些: 增加一些自定义资源过滤的条件 因为第一条的信息,可以在工具中对特有信息进行自定义处理...

Read more

unity脚本获取AlwayIncludedShaders

大纲 大致原理 具体 大致原理 AlwaysIncludedShaders在unity的Project Setting->Graphics中有展示。但是无论是去查看RenderSettings、GraphicsSettings、EditorGraphicsSettings下都没有这个的一个字段或者方法! 所以最终的解决就是使用放射的方式去访问! 具体 GraphicsSettings.GetGraphicsSettings()返回的是一个UnityEngine.Object的对象,但时这个对象里就有我们需要的AlwaysIncludedShaders 通过查看unity反射的代码,可以看到以下的内容: var graphicsSettings ...

Read more

c++的class内存布局

大纲 vs中怎么查看c++ class的布局 额外的vs技巧 vs中怎么查看c++ class的布局 先搞个简单的代码例子: #include <iostream> class ClassA { public: int a = 10; }; int main() { auto cla = new ClassA(); delete cla; system("pause"); return 0; } 在vs中有这么一个参数/d1 reportSingleClassLayout, reportSingleClassLayout后紧跟随的是需要dump的类名称! 然后执行工程编译,就能在编译输出平台看到以下信息了! 1>cl...

Read more

c++关键词的简单说明

大纲 alignas alignof asm constexpr const_cast decltype default explicit export extern mutable noexcept register reinterpret thread_local throw typeid virtual volatile alignas 对齐 class alignas(long long) A { int a; } class A{ char[9] c; alignas(16) int a; } alignof int main() { std::c...

Read more

Lua内置类型的定向导出

大纲 CppBinding没有标志UFunction的导出 CppBinding的限制 CppBinding没有标志UFunction的导出 UObject的UFunction都会通过反射的方法自动导出给lua,但有的时候,某些UObject的方法并没有标记为UFunction,但是我们仍然希望导出给lua使用,例如: UCLASS(Abstract, editinlinenew, BlueprintType, Blueprintable, meta=( DontUseGenericSpawnObject="True", DisableNativeTick) ) class UMG_API UUserWidget : public UWidget, public I...

Read more

Lua使用自定义c++类型

这一章节的内容就只有一个,那就是如何将自定义的类型注册到lua中使用! 大纲 书写自定义class 标注导出 注意事项 lua中使用 书写自定义class 创建一个lua使用的c++类 class CustomClass { LuaClassBody() public: virtual ~CustomClass(); void TestMethod(); }; LuaClassBody这个必须的,因为在后面写导出的时候必须依赖这个! 方法体的具体事项这里就不做说明! 标注导出 DefLuaClass(CustomClass) DefLuaMethod(TestMethod,&CustomClass::TestMethod) End...

Read more

Lua使用UE内置类型

大纲 cppbinding 调用 cppbinding slua提供基于模板展开的lua接口绑定方法,我们称其为cppbingding,通过使用cppbinding,你可以在尽量不修改目标类文件(无侵入)的情况,将c++类和方法导出给lua使用。使用cppbinding方法导出的lua接口不使用反射机制,相当于你手写lua接口导出,所以在效率和速度上都是最优的,不用担心效率损失,因为你自己手写lua接口导出代码也不会再简洁了。 在slua的源码中,找到一下的代码: 通过上图,我们可以了解到,UClass、UScriptStruct和UEnum都是直接使用了unreal内置的反射去进行的!所以大部分unreal的内置类都不需要我们手动进行Regist到lua中才...

Read more