ue4

UE4非绑定C++输入键盘鼠标输入检测

好久不见. 提交于 2019-12-11 08:20:45
鼠标输入事件:FPointerEvent 键盘输入事件:FKeyEvent virtual FReply OnMouseButtonDown(const FGeometry& InGeometry, const FPointerEvent& InMouseEvent) override { //点击点 InMouseEvent.GetScreenSpacePosition(); //检测左键输入 InMouseEvent.IsMouseButtonDown(EKeys::LeftMouseButton); return FReply::Handled(); } virtual FReply OnKeyDown(const FGeometry& MyGeometry, const FKeyEvent& InKeyEvent) override { //输入按键检测 const FKey Key = InKeyEvent.GetKey(); if (Key == EKeys::Enter) } 来源: CSDN 作者: 游戏鸟 链接: https://blog.csdn.net/a359877454/article/details/103482100

在UE4 Editor中改变一个变量时同时更新相关联的其它变量

三世轮回 提交于 2019-12-10 15:21:36
在UE4 Editor中操作时,有时候我们希望,在详情面板中更改某一属性的值时,与其相关的其它属性的值也会重新计算,这种时候,用C++可以这样实现: #if WITH_EDITOR virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangeEvent) override; #endif 这个方法将会在任意属性的值被变更时调用。 来源: oschina 链接: https://my.oschina.net/u/1052862/blog/738327

UE4-(UI)第七十八课Border

牧云@^-^@ 提交于 2019-12-10 02:08:48
一、Border是一个容器只能包含一个子元素,可以用来做元素背景 二、将Border拖拽到Canvas Panel下,调整大小,并在Border下拖入Text控件,因为Border和Text的颜色均为白色,所以没有看到明显效果。 三、设置Border颜色、图片 注意: 1.设置Border自身颜色选中Border在细节面板Appearance下的BrushColor设置 2.设置图片 3.如果颜色和图片一起设置,得到的预览结果为(背景图片颜色 * 设置颜色) 四、设置子控件的颜色 1.在Border的细节面板,Content中有Content Color and Opacity参数 该参数可以设置子控件的颜色和透明度: 效果: 2.如果选中Text控件,进行调整颜色 最终的颜色效果是与Border中设置颜色叠加也就是颜色参数相乘得到的结果。 五、Border中可以绑定鼠标操作事件 来源: CSDN 作者: 懒猫睡大觉 链接: https://blog.csdn.net/lei_7103/article/details/103462207

UE4-(UI)第七十五课Text

烈酒焚心 提交于 2019-12-09 14:59:39
一、导入准备好的一个字体文本,直接将字体文本拖放到UE4的内容浏览器中 二、在内容浏览器中创建一个控件蓝图,添加TextBlock到CanvasPanel下。 三、设置字体 1.选中TextBlock细节面板中的Appearance下ColorAndOpacity:设置字体颜色 . 2.Font下 Font Family:设置字体样式 Typeface:设置字体加粗倾斜 Size:设置字体大小 FontMaterial:设置字体使用材质 使用方法:创建材质球命名为M_Font,将材质球内的Material Domain更改为User Interface。 在蓝图中右键添加一个TextureSampeParameter2D节点,并将节点连接 保存材质。 返回到控件蓝图,在字体中选择材质,可搜索M_Font 设置完成后,字体采用了材质球, 注意:此时更改字体颜色,为材质球+字体设置颜色的混合色(字体颜色*材质颜色 叠加效果),并且材质在体现时是拉伸效果,字体个数越多,材质效果拉伸越大 Outline Settings: Outline Size:描边尺寸 Outline Material:轮廓材质,创建方法与上面创建方法一致要与Outline Color 配合使用,如果边框为黑色,不易看到效果(效果颜色为:字体颜色*材质颜色 叠加效果) 3.Shadow Color:阴影颜色

剔除算法总结

…衆ロ難τιáo~ 提交于 2019-12-08 23:39:29
剔除算法汇总: (1)距离剔除:物体与相机的最大或最小距离,可能最大距离还要加上fadeDistance,来判断物体是否被剔除。距离剔除原理简单,效率高,cpu端运行。ue4的实现在FScene的ComputeViewVisibility函数调用的FrustumCUll函数。ue4可以用culling volume,根据物体的体积设置剔除距离,这个剔除volume可以嵌套。 (2)视锥体剔除:应用程序阶段,判断是否在视锥体内,将视锥体外的物体剔除。用物体的包围盒和fov、近裁剪面、远裁剪面的距离等计算。ue4默认开启的,在FrustumCUll函数中实现,分为包围球和包围盒两种方式。 (3) occluder剔除(软件剔除):应用程序阶段,首先用cpu绘制一个低分辨率的z-buffer,在z-buffer上绘制较大的遮挡体,然后绘制小物体的包围盒,执行遮挡查询操作。纯cpu,集成简单,需要美术设置遮挡体(ue4的遮挡体还可以设置lod),消耗基于正在构建场景的lod网格和遮挡物的数量。 (4)视口剔除:投影变换之后,屏幕映射之前。几何阶段后期,是渲染管线的必要一环。图元完全或部分在ndc中时,才将其送到光栅化阶段。完全在ndc内的直接送下一阶段,完全在ndc外的完全舍弃,部分在ndc外的需要裁剪,可能会产生新的顶点。 (5)背面剔除:光栅化阶段,先判断多边形朝向,并和观察方向比较

Twinmotion_业余学习

时光总嘲笑我的痴心妄想 提交于 2019-12-07 18:55:15
LZ测试的是Twinmotion2019,国内软件你懂得,常规步骤。。。 Twinmotion基于UE4底层的,但是效果据说没有lumion8效果好 (lumion8的效果真的真的真的真的真的真的真的真的真的很棒) 毕竟LZ不是设计专业的,不太懂这种小差别 这个软件主要是为了实时渲染观看 几种漫游模式,包括VR模式,带上头盔直接可以漫游查看效果,有较好的尺度感 软件呢 操作很友好,偏好设置成中文,半个小时就够入门的了 渲染效果方面: 相对于unity来说,场景渲染简单的多(对我美术一窍不通的菜鸡而言) UE4的话,差不多吧,因为软件是UE4底层的,so,差别不太大 功能: 模拟四季天气效果 包含搜索地图实时加载,搜到过北京兰州拉面 可以添加各种路径 预制各种植物,交通工具,家具,材质,2D/3D人物,海洋等等 调节光照,模拟白天黑夜,制作动画 导出渲染图,全景图,视频,BIMmotion单独运行 以及其他小功能 :目前LZ测试,speedtree导进去之后不支持风效,不动很尴尬 明儿把安装文件放在网盘里,想玩的可以自己搞一搞效果 来源: CSDN 作者: 一只不想吃鱼的猫 链接: https://blog.csdn.net/qq_40956951/article/details/89195508

全面理解UE4委托编程

馋奶兔 提交于 2019-12-06 07:15:17
UE4中的 delegate ( 委托 )常用于解耦不同对象之间的关联:委托的拥有者不与监听者有直接关联,监听者通过将响应函数绑定到拥有者的委托上,使得委托触发时能及时收到通知来做相关的逻辑处理 委托本质是一个特殊类的对象,它可以储存(一个或多个)函数指针、调用参数和返回值 UE4在 DelegateCombinations.h 提供了一些宏来方便开发者快速来自定义一个delegate类型,目前引擎(4.23)最多支持4个负载数据和9个参数 大致地使用流程如下: ① 使用DECLARE_*宏声明一个自定义delegate类型FDelegateXXX ② 声明一个FDelegateXXX类型的代理对象 ③ 绑定需要执行的函数指针到代理对象上( 注: 绑定函数与代理对象的参数、返回值必须完全一致) ④ 触发代理对象中的函数指针按顺序立即执行 ⑤ 不需要某个函数指针时,可将其从代理对象中解绑 UE4提供了五类Delegate: 名称 宏 是否支持反射 能否有返回值 触发代理 绑定个数 支持的绑定实例类型 单播代理 DECLARE_DELEGATE_* DECLARE_DELEGATE_RetVal_* 否 可以有 ① 无返回值情况 bool ExecuteIfBound(...) void Execute(...) ② 有返回值情况 RetValue Execute(...) 注

fastbuild联编ue4 shader的使用

巧了我就是萌 提交于 2019-12-05 19:32:48
1. 更新\Engine\Binaries\ThirdParty\FastBuild,进入Engine\Binaries\ThirdParty\FASTBuild目录 有一个setting.bat文件 setx FASTBUILD_BROKERAGE_PATH "\\DESKTOP-5UA8611\FASTBuild" reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v FASTBuildWorker /t REG_SZ /d %~dp0FBuildWorker.exe /freg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v FASTBuildWorker /d %~dp0FBuildWorker.exe 第一句是远程存放每个client配置文件的路径,配到环境变量里面去。第二句表示设置开机启动,但我自己机器上并不好使。 运行该bat文件 重新启动机器 注意 如果安装某数字杀毒软件或者某讯管家 会拦截掉 甚至开机启动项注册不进去 那么就要修改注册表,将FBuildWorker.exe手动添加到开机启动的注册表里 win10系统在:“计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft

UE4入门学习笔记开篇

时间秒杀一切 提交于 2019-12-05 06:25:59
做了3年的Unity, 现在开始转入到做UE4,一来就进入一个超大项目组中学习,度过了最初2个月的生涩和紧张后,现在准备开始慢慢总结,慢慢学习,逐步深入理解和研究UE。 做了3年的游戏开发后,个人感悟最深的,就是非工作时候,是如何安排个人时间的。因为游戏开发的特殊性,大部分程序员都是在不断的被策划和PM追逐着去做各种功能,很少有时间去做自我研究。回顾过往的3年,个人感觉成长最快的,是负责项目相关框架搭建的时期,这时候没有具体的任务需求,可以全心的投入到相关功能的设计,开发,迭代,进一步优化中。   如何快速成长,个人思考,个人积累,个人分享,我觉得都很重要。很多东西,在做完后,需要做一个基本回顾。很多知识点,在学习后,需要做一个知识积累笔记。达到一定积累后,就可以做进一步的个人分享,知道和能清晰分享,是不一样的。前行的路上,诸多前辈都走在我的前面,我只是跟随他们的脚步,不断的追赶。   说了一堆废话,开篇就不写太多,后续我会开启UE4的新篇章,诸君共同进步,当然U3D我也会持续关注,大家可以共同交流,特别是打Bundle,资源管理,战斗系统相关,个人感觉以前还是积累很多,哈哈。 来源: https://www.cnblogs.com/zblade/p/11910286.html

UE4打包X64的坑

ぐ巨炮叔叔 提交于 2019-12-05 02:24:06
1、UE4.24打包输出,报错,提示安装Visual Studio2017以上版本。 2、微软官网上下载VS2019社区版,安装失败(Win7系统),控制面板-将系统更新打补丁,如果还有问题,需将允许Windows自动更新勾选上,再试。重启,折腾半天终于装上了(精简安装)。 3、继续回到UE4打包,仍报错。缺少Universal CRT。再次回到VS2019,用VS Installer安装win10.00***.sdk后,打包输出OK 来源: https://www.cnblogs.com/CSUT-Ryan/p/11897622.html