- 博客(109)
- 资源 (25)
- 收藏
- 关注
原创 OpenGL排坑指南—贴图纹理绑定和使用
在OpenGL学习的纹理这一章中讲述了纹理贴图的使用方式,主要步骤是先创建一个纹理的对象,和创建顶点VAO类似,然后就开始绑定这个纹理,最后在循环中使用,有时候可能还要用到激活纹理单元的函数。然而,对于何时应该激活如何和shader里的纹理编号进行绑定没有详细的说明,导致在使用的时候产生了不少困惑。比如何时应该绑定,绑定后的索引如何匹配。在这一章的第一个效果案例:显示一个带贴图纹理的箱子时只用到了绑定而没有用到激活,部分主要代码如下:即使这样,在shader中也能让贴图获取到这里写进去的数据。
2024-01-11 15:55:38
1887
原创 虚幻学习笔记22—C++同步和异步加载
之前提到的静态和动态加载都是同步的加载,同时其中的引用基本都是硬引用。如果资源比较大的话会出现卡顿的现象,下面将介绍一种异步加载的方式。同时,还将介绍一种区别与之前的Load的方法。在说明同步和异步加载之前需要先讲一下虚幻引擎的引用路径的问题,虚幻中的资源和类的引用包含软引用和硬引用,硬引用即对象A引用对象B,那么加载对象A的时候会自动加载对象B。软引用,即对象A通过间接机制(一般是字符串形式的路径)来引用对象B,不会在A加载时加载B。静态和动态加载3.1、软引用和硬引用的区别。
2023-12-26 14:11:36
1357
原创 虚幻学习笔记21—C++中实现射线检测
虚幻中射线检测根据通道分为单通道和多通道检测,根据检测目标分为通道检测和目标物体类型检测。虚幻的射线检测都是直线形状,而unity(又拿来对比了)不仅有直线形状射线检测,还有球形等其他多边形的检测,对比起来虚幻就有点匮乏了。3.1、LineTraceSingleByProfile的Profile是碰撞预设,可以在项目设置里。
2023-12-25 08:34:28
1701
原创 虚幻学习笔记20—C++中用户输入控制
用户输入主要有鼠标和键盘以及其他的遥感外接设备等,在虚幻中经常会用到这些输入设备的值,比如通过鼠标控制摄像头的方向、键盘控制人物移动等。本文主要讲解简单的输入绑定和虚幻5新增的”增强输入控制“两种方法。3.1、原始的输入虚幻5之后会渐渐摒弃掉,尽早学会使用新的“增强输入”。3.2、增强输入可以针对性的设置和绑定输入,对比原始的输入更加系统和便捷。3.3、增加输入在C++代码中一定要在Build.CS中添加“EnhancedInput”模块。
2023-12-22 10:15:50
877
原创 虚幻学习笔记19—C++中使用时间轴
在蓝图中可以很容易的创建一个时间轴,如图1.1.1所示为一个新建的时间轴,双击时间轴可以添加不同的轨道,分别有浮点、向量和事件,具体的可以自己去玩玩,这个在虚幻的开发中是非常常用的,最后创建的时间轴要绑定到一个事件中触发。图1.1.1在C++代码中也会经常用到时间轴,本案例中将通过时间轴创建一个开关门的效果。本系列使用的虚幻5.2.1,VS2022。3.1、
2023-12-21 10:03:23
1254
原创 虚幻学习笔记16—C++和3DUI(二)
上一篇虚幻学习笔记15—C++和UI(一)中介绍了通过C++代码创建2D的ui,本章主要讲解怎么用C++代码创建3D的UI,在虚幻学习笔记3—UI跟随弹窗这章中讲解了怎样用蓝图创建一个3D的UI,并且和其交互。本系列使用的虚幻5.2.1,vs2022。
2023-12-20 15:35:17
1572
原创 虚幻学习笔记18—C++委托(多播)和事件
委托分单播和多播,多播就是可以绑定多个回调函数,然后一次性执行。这样也可以理解为啥多播没有返回值,多个回调函数执行后返回哪一个都是问题啊。而事件呢官方官方文档说法是“对于事件而言,只有定义事件的类才能调用函数”。这句话不是很理解,网上有解读是说事件的定义第一个参数就是类名,只有这个类可以调用后面的函数,但我试了第一个参数是别的类也可以。使用的虚幻版本为5.2.1,VS版本为2022.3.1、动态多播委托的第一个参数名称必须以”F“开头,否则会编译报错。
2023-12-18 15:02:29
1051
原创 虚幻学习笔记17—C++委托(单播)
相比“代理”这个名词我更喜欢叫“委托”,虚幻的委托分为三类,分别为单播、多播和动态多播。单播顾名思义就是一次只能绑定一个函数的委托,多播能一次性绑定多个,动态多播即可以在蓝图中进行动态的绑定且可以绑定多个。使用的虚幻版本为5.2.1,VS版本为2022。3、定义委托需要绑定的函数定义的函数要和对应的委托保持一致的返回值和参数。//单播代理绑定函数定义其实现代码如。
2023-12-15 15:58:06
1471
原创 虚幻学习笔记15—C++和UI(一)
在C++可以直接创建按钮、滚轮等UI,并且可以直接绑定并处理响应事件。在创建C++代码后还是需要通过蓝图来显示到应用中,总体来说还是不如直接用蓝图来的方便。
2023-12-14 11:40:22
1084
原创 虚幻学习笔记14—重叠和碰撞事件
在开发应用当中两个物体的重叠和碰撞事件会经常用到,在虚幻中哲两个有很大的区别,在官方文档碰撞概述其实已经讲了怎样发生碰撞和重叠,但是还是遗漏不少注意事项合细节,主要文档写的太粗糙了,这也让我在使用的时候产生了很多困惑,尤其是碰撞。本文使用的虚幻引擎版本为5.2.1。3.1、要发生重叠最重要的是两个物体都要设置“生成重叠事件”。3.2、重叠的两个物体的处理事件先后顺序有规律,碰撞的暂时没什么规律。
2023-12-13 17:41:03
3330
原创 虚幻学习笔记13—C++静态和动态加载
我们在蓝图中可以很方便的添加各种需要的组件,那么在C++代码中要如何实现呢。在代码中分静态和动态加载,而无论静态和动态,加载的内容有资源和资源类,资源类通常为带资源的蓝图类。3.1、静态加载必须在构造函数里实现。3.2、静态加载的类,复制引用后,文件名后面必须加上”_C“,不然会造成编译不通过或运行崩溃等各种问题。3.3、静态加载的类都在内存中,不能被显性的呈现在视口、场景中,动态加载的类可以。
2023-12-12 16:26:15
938
原创 虚幻学习笔记12—C++类的实例化
本系列如无特殊说明使用的虚幻版本都是5.2.1,VS为2022版本。在Unity中通常创建的脚本都默认继承了MonoBehavior,都是不能再用代码New而实例化的,虚幻也是一样不能直接New来实例化。在Unity中是通过Instantiate方法来实例化一个游戏对象,虚幻中通过TSubclassOf、StaticClass等操作来实例化一个游戏对象。相比来说虚幻更复杂点。
2023-12-11 17:19:37
863
1
原创 虚幻学习笔记11—C++结构体、枚举与蓝图的通信
结构体的定义和枚举类似,枚举的定义有两种方式。区别是结构体必须以“F”开头命名,而枚举不用。额外再讲了一下蓝图生成时暴露变量的方法。通过如下代码定义一个上述结构体类型的变量,在蓝图中可以编辑和使用该类型的变量,如图2.1.2所示,为面板中的变量。图2.1.3为蓝图中调用该定义的变量。//结构体图2.1.2图2.1.33、结构体和数据表格进行绑定。
2023-12-11 14:16:39
1844
原创 虚幻学习笔记10—C++函数与蓝图的通信
除了上一章C++变量与蓝图通信讲的变量能与蓝图通信外,还有函数和枚举也可以和蓝图通信。函数的关键字为”UFUNCTION“、枚举的关键字为”UENUM“。3.1、BlueprintImplementableEvent的函数在C++代码中只需要声明不需要实现。3.2、BlueprintNativeEvent的函数在C++代码中声明了还必须实现,不实现会编译报错。
2023-12-08 16:07:44
1046
原创 虚幻学习笔记9—C++代码变量与蓝图的通信
C++代码中通过关键字“UPROPERTY”来讲所需要的变量、方法或枚举反射暴露给蓝图,实现C++和蓝图之间的通信。所有实现的变量都在一个名为“MyPawn1”类中,同时提到的蓝图是根据这个类创建的。同时这个Pawn类为场景中的默认Pawa类。图1.1.1文中提到的实例化面板也即根据上图1.1.1创建的蓝图”BP_MyPawn1“实例化后的面板,当运行程序后会默认创建一个实例,同时如果自动讲”BP_MyPawn1“蓝图拖动到场景中也会创建一个实例。如图1.1.2所示为运行后的两个蓝图实例。图1.1.2。
2023-12-08 14:12:15
1211
原创 虚幻学习笔记8—蓝图操作其他虚幻模块
蓝图不仅可以相互之间操作和通信,其他的资源、模块也有操作和通信的方法。文本主要针对蓝图和材质、Niagara、编辑器的通信进行讲解。无。
2023-11-30 11:38:11
1088
原创 虚幻学习笔记7—蓝图接口
蓝图接口就是可以在蓝图中实现的接口,有它方便的地方,可以很方便的调用到实现了接口的函数。3.1、蓝图接口带输入参数和输出参数的一些区别。3.2、调用蓝图接口的一些方法和区别。
2023-11-29 17:31:43
1010
原创 虚幻学习笔记6—摄像机控制
摄像机在虚幻中的应用是最常见的。如通常在游戏或应用中会常常出现需要切换不同视角的情况、摄像机拉近缩小等,这个在虚幻中是怎么实现的呢。无。
2023-11-28 16:02:40
1313
原创 虚幻学习笔记3—UI跟随弹窗
本文使用的虚幻引擎5.3.2,继点击场景3D物体的两种处理方式的基础完成对3D物体的点击触发后,我们需要制作一个可以弹窗显示该物体信息的UI面板,同时保证弹窗可以跟随物体。另外还讲了一种UI上的悬浮提示跟随弹窗。3.1、弹窗的空间设置为“场景”和“屏幕”是有区别的,“场景”会成为3D物体的一部分,“屏幕”会一直跟随显示在屏幕上。3.2、UI的几种可视性交互区别。
2023-11-28 16:02:03
1980
原创 虚幻学习笔记5—UI预设体制作
本文使用的虚幻引擎5.3.2,在unity中有预设体的概念,可以将一个组合型的物体或UI制作成预设体,方便后续可以快速制作更多元的内容和复用。虚幻本身没有这个概念,但是要实现类似的效果其,故此我引用了这个概念。3.1、预设体UI的内容进行自定义编辑时需要将该内容设置为变量,并且在预构造中进行设置。3.2、预设体UI的事件处理通常是没有的,需要自己进行设置和调用并绑定。
2023-11-28 16:01:17
963
原创 虚幻学习笔记4—文本内容处理
本文使用的虚幻引擎5.3.2,在虚幻中已经集成了很多可以直接处理多样化文本的蓝图,比如格式化动态显示、浮点数多样化等。两个常用的处理文本的蓝图。
2023-11-27 16:09:08
1123
原创 Unity实用小工具—以对象形式操作Sqlite
1.2、数据库路径说明:创建的数据库位置编辑器状态时在“Assets/StreamingAssets”文件夹下,因为编辑状态下此路径可以修改,发布到Android等其他移动平台下改路径的内容有可能会无法修改导致数据库无法使用,只有只读功能。运行后会在“Assets/StreamingAssets”文件夹下生成一个名为“AmblyopiaDb.db”的数据库,刚开始需要刷新,如图2.1-1所示,在此文件夹下点击“Refresh”按钮刷新下即出现创建的数据库。//查询符合条件的所有的数据。
2022-12-27 10:44:29
1994
原创 ARLocation使用说明
ARLocation是一个结合AR+GPS的插件Asset Store地址,可以制作类似Poken Man中的效果。选定一个经纬度的位置,放置一个虚拟物体,该虚拟物体即和现实场景融合。,如图所示,本次使用的unity为2020.3.39,ARLocation版本为3.5.5。1、该插件在Asset Store上卖的还比较便宜,有钱的可以直接考虑入手,没钱的当然可以另辟蹊径,比如GitHub上寻找,搜AR+GPS就能找到很多;
2022-09-26 11:12:25
2279
1
原创 Unity中使用机器学习与案例
目录一、前言二、配置Anaconda环境2.1、Anaconda和Python的区别2.2、Anaconda和conda、pip、virtualenv的区别2.3、Anaconda安装和配置三、创建Unity的训练和使用工程3.1、配置Unity工程3.2、创建新的训练项目四、附录4.1、命令说明一、前言本文使用的Unity为2020.3.25,Anaconda为“Anaconda 3-2021.11 -Windows -x86_64”,运行的环境为Windo
2022-02-07 14:56:17
5267
原创 Unity实用小工具或脚本—以对象方式访问MySql数据库
一、前言 以对象方式处理MySql数据库顾名思义就是可以将每个数据库表作为一个类,没一条数据作为一个对象来进行操作,大致思路和我上一篇文章类似,这里不再赘述。文章后有资源下载地址,所使用的unity版本为2019.4.28(国内),MySql为8.0版本。二、实现 参考Unity实用小工具或脚本—反射Sqlite数据库(一)三、总结1、MySql和sqlite的处理方式都差不多,差别就在Sql语句上的微调;2、资源下载地址:...
2021-09-09 18:20:33
254
原创 Unity云渲染开源框架UnityRenderStreaming使用说明
目录一、前言二、实现2.2、先安装依赖组件WebRTC和InputSystem2.3、安装Unity Render Stream包并且导入案例工程2.4、安装WebServer并运行2.5、运行Unity案例三、总结一、前言我使用的是Unity个人版,个人版的激活方法可以自行百度,我在个人版的Hub中下载并安装了unity2019.4.28。在这过程中几次都没能跑起来,我在此做一个总结。一定要自己看官方教程网上杂七杂八的讲的不知所云、没头没尾的...
2021-08-11 11:11:07
8520
11
原创 UE4学习案例——多人网络中同步信息的方法
一、前言 截至本篇文章发布时使用的UE4版本为4.25.4,这里所说的同步的信息是指用户的信息,如分数,这样的数据需要显示在每个客户端。二、实现2.1、官方案例的方法我在学习UE4官方案例《多人枪战游戏》时看到的其思路时这样的,首先,在玩家Gunslinger_BP蓝图的收到伤害事件Event AnyDamage中直接修改PlayerState的玩家分数,如图2.1所示,其中PlayerState是UE4系统自动维护其网络状态,会确保执行其中的同步方法,图...
2021-07-15 13:43:02
3080
1
原创 UE4学习杂项总结一
一、前言 学习UE4也有一段时间了,将遇到的问题做了一个汇总,也许对我来说目前这写问题还算是一个知识点,因为其中还有一些基本的操作问题。当然也有一些非常费解的、截至到目前为止我也没有找到解决方法的问题。二、具体内容2.1、界面操作BoxBrush刚创建的BoxBrush在Details中找不到Materials、Physics等属性,无法对材质进行设置,如图2.1.1所示:图2.1.1这是因为刚创建的Bush需要转换成StaticMesh才会有上述的属性,点击Br...
2021-07-08 08:56:55
842
原创 UE4 中GameInstance、GameMode、GameState、PlayerState和PlayerController的关系
一、前言 本篇文章为止使用的虚幻引擎版本为UE4.25.4,这几个蓝图或类是开发多人网络游戏或应用必须搞清楚和透彻的东西。学习UE4时间不长,网上找资料也没有一个说的全面的,之前一直都是半迷糊状态,通过零碎的官方文档和我找的一份比较全面的UE4资料Unreal Engine 4' Network Compendium之后再结合自己动手做的一些实验我将全面阐述这几个类的使用说明。二、介绍 这几个类都属属于Gameplay框架里面的,首先是官方文档的介绍我用一个表格总结如...
2021-07-01 17:44:53
11231
2
原创 UE4 Atmospheric Fog组件问题记录(未解决)
一、前言 我在学习官方案例《多人枪战游戏》时遇到的问题,这个问题时这样的:我手动创建的Atmospheric Fog组件无法达到案例中的效果,如图2是案例中的效果,我自己手动创建并设置组件的各项参数和案例上一直后的效果如图3所示,我在尝试设置World Setting和Project Setting确保和案例上的保持一致后还是无法实现案例中图2的效果,已知我适用的UE4版本为4.25.4,案例所支持的版本为4.7-4.24,图1图2图3二、实现2.1、再...
2021-06-15 14:35:54
614
6
原创 UE4模型贴图优化
一、前言 本章的内容主要时来源于虚幻4官方学习视频为优化性能而准备设计数据,内容上进行了编排和节选,文章主要适用于技术美术人员处理模型时应该考虑的问题,同时也可以为技术Leader人员提供项目管理时需要考虑的知识。二、内容2.1、模型的坐标轴设置 对模型进行轴的设置可以说是我们经常要遇到的问题,从建模工具中导出的模型如果设置的坐标轴不合适放到Unity或者UE4中不好拖动和调整。从技术上来讲这个根本就不是问题,但是为了获得在编辑时更好的体验,我们还是需要遵循一些...
2021-06-09 14:52:20
6398
2
原创 Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
一、前言 我使用的Unity有2018.4.26f1和unity2021,1,4f1,其实大部分的环境配置的问题和发布官方已经给出了详细的说明,首先是安装工具,然后是.初始化项目并部署第一个应用程序,最后是使用 Visual Studio 部署到设备上。尽管,微软官方已经给出了非常详细的说明了,二、实现三、总结...
2021-05-20 17:20:50
4577
原创 Unity实用小工具或脚本——可折叠伸缩的多级列表二(带搜索功能)
一、前言 继上篇可折叠伸缩的多级(至少三级)内容列表实现了类似于Unity的Unity的Hierarchy视图中的折叠效果之后,我寻思的丰富一下该工具的功能,不保证说完全的复制Unity的Hierarchy视图中的所有功能,但至少其核心的部分,如图1所示,这样的搜索功图1能还是让我很心动的,在搜索框中输入关键字就能立马改变Hierarchy项目的显示情况,清空所有的显示并且只显示搜索的结果,而且搜素的结果不包含任何的层级关系,点击搜素后的某一项可以选中它,然后关闭搜索框后边的“X”按...
2021-05-08 11:22:54
5103
6
原创 Unity实用小工具或脚本——可折叠伸缩的多级(至少三级)内容列表(类似于Unity的Hierarchy视图中的折叠效果)
该工具主要的亮点是可以自动实现多级菜单展示,目前测试的是三级,如果想实现更多层级只需要在代码里增加多级枚举和处理枚举的逻辑代码,基本上实现的思路是一样的。这个效果有点类似于Unity的Hierarchy视图中的折叠效果,如图2所示,实现这个效果最核心的是要理解Unity的UGUI的ScrollRect控件,这个控件的功能远比我想象的要大,另外还需要了解...
2021-04-29 12:33:27
4085
11
原创 Vs2017 窗口移动vs直接卡死
一、前言今天是2021年4约26日,最近几天Win10有过一次大的更新,打开VS2017准备编码的时候发现移动窗口实现左右分开,如图所示,来看代码时,VS2017居然卡死然后重启,本着强迫症老毛病犯了去网上搜,还真有不少小伙伴碰到了这个问题,最多的就是建议删掉Win10的更新文件KB5001028 和 kb4601056,可是我发现我的程序里没有这两个文件。于是我就更新了下VS2017,居然就OK了,赶紧记录下。...
2021-04-26 17:09:49
3939
2
原创 Unity的WebGL发布在IIS上并加载资源的若干问题
一、前言 本此使用的Unity版本位2018.4.26,ISS为win10自带的版本。首先,在使用Unity的Webgl的时候我们就会遇到这几个问题:1)无法直接打开,如果像Exe程序那样Build之后直接点index.html文件是无法运行的,会在浏览器中弹出如图1提示:显然,我们是不能这样直接打开webgl程序,当然,你可以选择直接BuildandRun,打包完之后会直接在浏览器中运行,可以看到此时运行的webgl程序的网址图1和直接点index.html文件的地址不一样,这...
2021-03-09 14:12:51
3562
4
原创 使用Unity2020发布安卓的坑
一、前言 终于我也鸟枪换炮从unity2018直接换到了unity2020.1.0f1版本,之前一直都在用Unity2018的LTS版本开发,听说了很大Unity新出的功能,我也迫不及待的弄了一个PJ版本,PJ的文件文章后面会有,本篇是介绍我在安装和使用时候遇到的问题。尤其是在发布安卓程序的时候,安装了数次,终于摸清楚了,真是大坑。图1二、问题与实现2.1、我的PJ文件是2020.1.0f版本的,如果你是从国内网站进入到unity上下载的将会是unity2020.1.0f1c1...
2021-02-24 10:01:18
5433
6
ExampleUIFold20210429.带搜素的unitypackage.unitypackage
2021-04-29
Linq2Sql20210126.unitypackage
2021-01-26
Unity&Shader案例篇—光锥扫描效果
2020-10-30
SqlMappingDataClass20191129.unitypackage
2019-11-29
3DRoutePointEditor.zip
2019-08-26
HoloUIEffect20190824.unitypackage
2019-08-24
Unity一张图片上绘制动态曲线
2018-03-01
具备条件逻辑处理的模式
2015-08-17
Unity人工智能学习—基本模式控制
2015-08-16
AIDemoProject
2015-08-14
Unity类似CS射击游戏源码(可实现多人联机)
2014-06-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人