Unity
文章平均质量分 84
凯尔八阿哥
佛系码农
展开
-
Unity实用小工具—以对象形式操作Sqlite
1.2、数据库路径说明:创建的数据库位置编辑器状态时在“Assets/StreamingAssets”文件夹下,因为编辑状态下此路径可以修改,发布到Android等其他移动平台下改路径的内容有可能会无法修改导致数据库无法使用,只有只读功能。运行后会在“Assets/StreamingAssets”文件夹下生成一个名为“AmblyopiaDb.db”的数据库,刚开始需要刷新,如图2.1-1所示,在此文件夹下点击“Refresh”按钮刷新下即出现创建的数据库。//查询符合条件的所有的数据。原创 2022-12-27 10:44:29 · 1931 阅读 · 1 评论 -
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 · 2076 阅读 · 0 评论 -
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 · 5213 阅读 · 0 评论 -
Unity实用小工具或脚本—以对象方式访问MySql数据库
一、前言 以对象方式处理MySql数据库顾名思义就是可以将每个数据库表作为一个类,没一条数据作为一个对象来进行操作,大致思路和我上一篇文章类似,这里不再赘述。文章后有资源下载地址,所使用的unity版本为2019.4.28(国内),MySql为8.0版本。二、实现 参考Unity实用小工具或脚本—反射Sqlite数据库(一)三、总结1、MySql和sqlite的处理方式都差不多,差别就在Sql语句上的微调;2、资源下载地址:...原创 2021-09-09 18:20:33 · 250 阅读 · 0 评论 -
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 · 8268 阅读 · 11 评论 -
Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
一、前言 我使用的Unity有2018.4.26f1和unity2021,1,4f1,其实大部分的环境配置的问题和发布官方已经给出了详细的说明,首先是安装工具,然后是.初始化项目并部署第一个应用程序,最后是使用 Visual Studio 部署到设备上。尽管,微软官方已经给出了非常详细的说明了,二、实现三、总结...原创 2021-05-20 17:20:50 · 4352 阅读 · 0 评论 -
Unity实用小工具或脚本——可折叠伸缩的多级列表二(带搜索功能)
一、前言 继上篇可折叠伸缩的多级(至少三级)内容列表实现了类似于Unity的Unity的Hierarchy视图中的折叠效果之后,我寻思的丰富一下该工具的功能,不保证说完全的复制Unity的Hierarchy视图中的所有功能,但至少其核心的部分,如图1所示,这样的搜索功图1能还是让我很心动的,在搜索框中输入关键字就能立马改变Hierarchy项目的显示情况,清空所有的显示并且只显示搜索的结果,而且搜素的结果不包含任何的层级关系,点击搜素后的某一项可以选中它,然后关闭搜索框后边的“X”按...原创 2021-05-08 11:22:54 · 4984 阅读 · 6 评论 -
Unity实用小工具或脚本——可折叠伸缩的多级(至少三级)内容列表(类似于Unity的Hierarchy视图中的折叠效果)
该工具主要的亮点是可以自动实现多级菜单展示,目前测试的是三级,如果想实现更多层级只需要在代码里增加多级枚举和处理枚举的逻辑代码,基本上实现的思路是一样的。这个效果有点类似于Unity的Hierarchy视图中的折叠效果,如图2所示,实现这个效果最核心的是要理解Unity的UGUI的ScrollRect控件,这个控件的功能远比我想象的要大,另外还需要了解...原创 2021-04-29 12:33:27 · 3876 阅读 · 11 评论 -
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 · 3415 阅读 · 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 · 5410 阅读 · 6 评论 -
Unity+SteamVR开发——场景切换问题
一、前言原创 2021-02-03 14:24:19 · 6387 阅读 · 2 评论 -
Unity实用小工具或脚本——使用Linq to sql以对象形式操作SqlServer数据库
一、前言 本文使用的Unity版本为2018.4.26,使用的VS版本为2017专业版,sqlsever使用的是微软官方的开发者版本SQL Server2019,文章末尾会附上案例代码的工程文件以供下载。针对sqlserver的下载和安装可以前往微软官方网站进行SQL Server 安装指南,或许是数据库服务商之前日益激烈的竞争,微软现在针对开发者版本是可以免费使用,而且具备全部的功能,这对开发者来说是一个非常不错的消息。SQLServer下载地址二、实现2.1、配置unity,导...原创 2021-01-26 15:58:01 · 430 阅读 · 2 评论 -
Unity+SteamVR开发——交互
一、前言 本文使用两个工具为Unity2018.4.26和SteamVR2.6.1,SteamVR2.6.1相比之前的版本有了很大的改变,其中在交互上有了很大的提升,SteamVR2.6.1上给出的案例中提供了抛射物体、线性驱动、环形驱动以及复杂的射箭操作等。尽管给出了诸多的交互案例,但是在实际开发中依然会有新的交互情况出现,在SteamVR2.6.1中没有详细的使用说明下,本文首先大概介绍其各种交互案例,然后详细的介绍其交互的核心组件如Interactable和Hand等,最后结合我使用的...原创 2020-12-18 14:39:11 · 11797 阅读 · 2 评论 -
Unity实用小工具或脚本——读写Json工具
一、前言 在Unity中读写Json文件已经有非常好的工具,可以将Json文件和结构体数据进行相互转换,如图1所示,在Unity Asset Store中搜JSON.NET可以找到该插件,非常好用。我在此插件的基础上,融合了Windows的文件窗口,即打开和存储Json文件的时候可图1以获取Windows的窗口,选择保存和读取Json文件的路径。最后,实现了在Android上的读写Json文件。二、实现2.1、实现读写文件的窗口代码如下:该类提供了一个Open_Windo...原创 2020-12-18 08:35:25 · 726 阅读 · 0 评论 -
Unity实用小工具或脚本——智能包住任意多个物体的碰撞体
一、前言 有些模型是我们在Unity中进行组合得到的一个模块,这个时候不可能再让美术给加碰撞体,需要用代码智能给其加碰撞体,如图1所示:任意的多个物体组成的一个综合物体最后都可以给它加上合适的碰撞体,实现的基本思路是通过Unity自带的合并网格的图1方法, 代码如下:这段代码实现合并后的网格位置并不是很对,偏离了组合体的中心,如图2所示 MeshFilter[] meshFilters = GetComponentsInChildren<MeshFilter>();...原创 2020-11-25 14:44:29 · 1263 阅读 · 2 评论 -
Unity+SteamVR开发——获取按键事件
一、前言 我在使用Unity2018.4.26+SteamVR2.6.1开发VR应用的时候,需要使用菜单键来呼出用户的交互UI界面,但是我现在没法调用这个菜单键的呼出事件。SteamVR2.0之后的版本就不在像之前那样可以直接监听到每个按钮的事件,需要手动自己设置菜单按钮的绑定。二、实现 2.1、按键绑定设置导入SteamVR的插件到Unity中,点击菜单栏windows/SteamVR input打开如图1所示的SteamVR Input的设置界面,并点击Actions/...原创 2020-11-09 15:16:39 · 5290 阅读 · 2 评论 -
处理Unity中使用HTC VIVE PRo的SRWork插件若干问题
一、介绍 HTC VIVE Pro版本的头盔显示器可以使用一个叫SRWork的工具轻松制作混合现实功能的案例,如图1所示:功能很强大,目前据我写图1这篇文真为止已经更新到了SRWork0.9.7.1版本。我使用的Unity为2018.4.26版本,头盔显示器设备为Pro2版本。在使用的过程中主要碰到如下问题:无法开启Stem VR的摄像头进行测试,也即头盔上的摄像头无法在程序运行的时候打开; 无法运行SRWork RunningTime,如图2所示图2使用Unity的...原创 2020-10-14 16:21:19 · 1315 阅读 · 3 评论 -
Vuforia用在安卓设备中外接USB摄像头(二)
一、前言上一篇Vuforia用在安卓设备中外接USB摄像头(一)主要介绍的是纯安卓上使用Vuforia+UVC Camera,本篇介绍在Unity中开发Vuforia+UVCCamera。有了上一篇配置的环境和生成的SO文件基础,本篇才可以顺利的完成在Unity中使用Vuforia+UVCCamera。二、开发过程1、unity中环境搭建:首先,在unity中新建Plugins/And...原创 2020-01-11 15:50:58 · 2599 阅读 · 8 评论 -
Vuforia用在安卓设备中外接USB摄像头(一)
一、介绍 众所周知,vuforia可以用在安卓设备上使用AR,但是开启的都是设备的前置或后置的摄像头,在需要外接USB摄像头这块,vuforia没有给出直接的调用模块,但是官网给出了一个制作调用USB摄像头使用AR功能的介绍,网址Vuforia使用UVC Camera的官网介绍。这个网站上的介绍的非常大概,是在懂得一定技术基础上才能使用成功,本文旨在以该介绍为基础,进行完整的梳理,最后会...原创 2020-01-04 18:55:45 · 4249 阅读 · 9 评论 -
Unity实用小工具或脚本—反射Sqlite数据库(一)
一、前言 本文主要介绍在Unity中怎么使用轻量级数据库Sqlite,并利用反射将C#定义的数据类直接映射到数据库的表中,类似于安卓的"DataSupport"类,可以直接按照如下操作保存数据到数据库://定义一个类Bookpublic class Book extends DataSupport { ...}//添加数据到表中Book book = new ...原创 2019-11-29 14:43:24 · 468 阅读 · 0 评论 -
Unity人工智能学习—基本模式控制
前面讲的算法和确定性算法都很好,不过有时候你需要创建一个按照顺序执行操作的游戏对象。例如,工作日来到单位你都会执行一系列特定的步骤:1、打卡 2、开启电脑 3、点开平常逛的网站看看最新消息 ........关键在于很多步骤是你不会多想的,每次都是习惯性的自然重复。当然,如果有什么事情不对了,你可能会改变顺序,比如今天接到一个要外出的任务,你可能就直接打完卡就走了。模式是只能行为的重...原创 2019-11-05 16:52:09 · 379 阅读 · 0 评论 -
Unity人工智能学习—具备条件逻辑处理的模式
上一篇讲到了基本的模式,通过操作一系列预设的指令集来实现游戏对象的智能,这一篇当然还是要实现太该有的追踪功能,那么这个涉及应该如何以下逻辑:1、当符合追踪范围,追踪目标,反之继续按照以前的模式继续执行。当然还可以继续深入的添加功能2、如果符合攻击范围则停止并保留当前的移动状态而切换到攻击动画,如果不在攻击范围则恢复之前的移动状态继续追踪或者模式运动。实现这个功能只需要在前面的模式执行的基础上在...原创 2019-11-05 16:51:15 · 223 阅读 · 0 评论 -
Unity人工智能学习—确定性AI算法之反追踪算法
Unity人工智能学习—确定性AI算法之反追踪算法原创 2015-09-10 09:23:43 · 1432 阅读 · 0 评论 -
奇葩问题之奇葩解决方案系列——安卓手机外部加载Assetbundle
一、前言 首先,这个需求是这么被创造出来的,我们要在安卓手机上加载超过一个G的资源,正常的Unity的程序员都会立马想到使用Assetbundle进行资源打包和加载,我当然也不例外。于是乎我就吭哧吭哧的熟练的对资源进行打包,然后用异步 AssetBundle.LoadFromFileAsync进行加载,然鹅,居然读取不到资源。为啥?我这个资源是放在手机的SD卡新建的一个文件夹Res...原创 2018-11-10 16:55:54 · 3455 阅读 · 0 评论 -
Unity实用小工具或脚本——屏幕消息打印显示
一、前言 在屏幕上打印游戏中的消息是经常需要的功能,本文实现一个带有一定特色的文字消息打印,效果如图所示:消息列表框会根据消息缓存的行数来决定显示速度,如果缓存列表里存储的消息行数比较多,则显示的速度会加快。另外,在打印消息的时候,还加入了一个输入光标“-”在每行消息的末尾,消息打印完毕则隐藏。该效果是在Unity的UGUI里实现,一个文本Text显示控件+一个背景图就可以...原创 2018-09-11 16:12:37 · 2839 阅读 · 0 评论 -
Unity&Shader案例篇—旋转、平移和缩放
一、前言 在Unity中通过控制物体的Transform可以很容易的对物体进行旋转、平移和缩放,得到一些简单的动画效果。但是有个不好的地方是,一旦这个物体上有碰撞体的话,会跟环境发生碰撞。我就就想能不能在不麻烦特效动画那边的情况下,自己用Shader去处理一些基于模型顶点或贴图的dong动画效果。如图所示是我完全使用Shader处理处理的顶点的xuan旋转、平移和缩放,另外还有两个是贴...原创 2018-07-25 17:28:15 · 11486 阅读 · 0 评论 -
Unity工程案例—多客户端控制同一个物体
一、介绍 本篇要讲的内容是在Unity中怎么实现多个客户端用户能操控同一个物体,如一个Cube,这个Cube在任何客户端有,相当于一个游戏的NPC,客户端A可以控制Cube的移动、旋转,Cube在A的位置或旋转的改变会同步到其他的客户端B、C等。同样,在其他客户端B、C控制Cube的位置和旋转也可以同步到A。如图所示:A点击LANHost(H)既做为服务器也作为客户端,B和C为客户端,鼠标点...原创 2018-07-13 13:31:26 · 2416 阅读 · 1 评论 -
Unity&Shader案例篇—地图上热图分布
一、介绍 在2维平面地图上随机或者指定位置生成一系列的热量、能源或者其他需要表示的信息的分布图。可以通过切换不同的贴图表示不同的信息,如图所示表示的是该地区的降水量的变化如图所示为表示该地区的温度变化分布图二、实现 在贴图的的某个位置处绘制指定半径的圆圈,然后调整圆圈的强度也即透明度。因此Shader部分会定义这两类变量,因为Shader里面不能定义没有长度的数组,只能一...原创 2018-07-09 18:29:06 · 4395 阅读 · 5 评论 -
Unity实用小工具或脚本——3D物体带坐标轴的拖拽
一、前言 我们最近要做一个线路的规划编辑,并且是在三维场景中,编辑完就立马能用。立马能用还好说,有特别多的轮子可以用,在三维场景中实时编辑就有点意思了。其实功能就是类似于在Unity的编辑界面操作一个Cube的位置,当然旋转什么的我这个任务里暂时还不需要,就先简单的做了一个位置的三维拖拽。如图所示:在Unity的编辑界面对一个Cube进行拖拽,选中中心就可以进行任意拖拽,选中单...原创 2018-11-13 11:42:32 · 4879 阅读 · 14 评论 -
Unity实用小工具或脚本—利用反射制作动态编辑栏(一)
一、前言 在制作UI的时候,经常会碰到对不同的结构体或者类进行编辑,然后要根结构体或类的字段或属性制作对应的输入框。比如int型的输入框内就不能输入字符,就要限定输入框的类型;每个输入框还要对应字段或属性的名字。另外,不同的结构体或类的字段或属性的名字和类型都可能不一样。如果每一个结构体或类都要单独的制作一个编辑栏,每一个输入框都对应指定的字段或属性,如字段名称、类型等,无疑将是一个...原创 2019-01-23 16:35:20 · 862 阅读 · 0 评论 -
Unity实用小工具或脚本—利用反射制作动态编辑栏(二)
一、前言上一章通过反射实现创建动态编辑栏,但是此时的编辑栏还并没有和结构体数据关联。本章将实现编辑栏中修改的数据将反馈到对应的结构体中,并最后通过序列化将结构体数据以文本的形式进行存储二、实现1、FieldInfo.SetValue方法将给定对象的字段设置为给定值,查阅了C#的官方文档,上面的案例是这样的using System;using System.Reflectio...原创 2019-01-23 17:11:08 · 630 阅读 · 0 评论 -
Unity&Shader案例篇—光锥扫描效果
一、介绍 在Unity2018.2.14上,一个实现展示敌方视线扇形光锥效果的Shader,其效果图如图所示,当然这种效果还只是实现了一个视线光锥的简单效果当这个视线光锥开始扫描的时候,为了表达更加真实的效果,在出现扫描到障碍物的时候,会出现光线被遮挡的效果。如图所示:当光锥扫描到前面的障碍物的时候,会出现光线被遮挡的效果。二、实现1、简单半透明扫描扇形光锥Sha...原创 2019-02-21 16:25:49 · 4426 阅读 · 0 评论 -
Unity实用小工具或脚本—利用反射制作动态编辑栏(三)
1、介绍 上一篇中已经具备了将结构体实例利用反射动态的创建编辑栏的功能,本篇主要在前两篇的基础上增加了对泛型的处理以及无论是字段还是属性都可以进行处理。如图所示:本篇里处理的泛型为List类型,定义的测试结构体为:[Serializable]public struct Test{ public double Lon; public float He...原创 2019-03-18 17:48:44 · 345 阅读 · 0 评论 -
Unity实用小工具或脚本—利用反射制作动态编辑栏(四)
一、前言 在上一篇中,已经可以处理基本的数据类型的动态编辑栏创建并且保存数据的功能。但是,对于自定义的类型,比如Unity自带的Vector类型,还不能处理。另外,编辑栏都是单一的输入框,针对不同的数据创建不同的编辑框,如Bool类型,应该是Toggle类型。本篇主要是对这两个功能的实现。效果图如图所示:点击创建会动态生成结构体里所有的编辑栏,相比之前的只有输入框的编辑栏,这里增加了对B...原创 2019-05-09 18:40:05 · 470 阅读 · 0 评论 -
Unity人工智能学习—简单的集群运动算法
一、介绍 本篇的主要内容是解决大量物体运动时候不发生相互碰撞和重叠等的算法,本篇使用的Unity2018.2.14,算法的脚本主要就两个,一个创建大量鱼并进行初始化的脚本,还有一个就是核心的鱼集群运动的算法。效果如图所示二、实现1、首先,需要再指定的区域随机的创建大量的鱼,代码如下,其中goalPos会再集群运动的单个鱼中会用到,这里只是再随机的时using Sy...原创 2019-07-17 14:53:26 · 3877 阅读 · 1 评论 -
Unity&Shader案例篇—角色动态地面印记
一、介绍 本篇要介绍的效果如图所示:角色在地形上行走,地形上始终会有一个动态圆环跟随角色,类似于阴影的一个效果。但是这个“阴影”是我们可以自己控制它的效果的,如图2所示是通过修改后得到的效果图:圆环是有一定频率别的收缩,这种效果在游戏中我们经常能看到。二、实现1,简单圆环版本实现一的效果的Shader为Shader "Custom/RadiusShader" { Properties {...原创 2018-05-07 17:44:02 · 2997 阅读 · 2 评论 -
Unity实用小工具—画二维动态曲线
一、前言 之前用Line Render实现过这个动态曲线的绘制,使用这个实在太不方便了,一直寻思怎么在一张图片上通过控制图片的像素值实现曲线的动态绘制。参考了Unity的官网教程实现了这个,效果图如图所示:这样实现的效果比LineRender 要好,并且不怎么消耗计算和渲染二、实现1、代码创建一个背景贴图,并将这个贴图给UGUI的RawImage控件 //创建背景贴图 w...原创 2018-03-01 17:19:28 · 4953 阅读 · 1 评论 -
GearVR开发之系列问题一
最近因为项目上的需要,用到了GearVR作为开发设备。从此就开启了填坑模式,下面我就要将我在GearVR上开发所碰到的问题以及解决办法详细的做一个介绍。一、发布GearVR的程序可以参考这位朋友的文章点击打开链接二、在GearVR程序中的如何控制摄像机通过一的介绍我们知道最后打包GearVR时要勾选如图所示的Virtual Reality Supported选项,才可以原创 2016-03-30 13:56:06 · 1059 阅读 · 0 评论 -
Unity人工智能学习—躲避规则障碍一
第一部分:效果预览先上效果图。这一部分将要讲的是智能躲避规则的障碍物。其实,这是最终现实效果,在算法中实际上使用到了一个隐藏的碰撞检测盒子,这个盒子是从智能体延伸出的。如图所示:保持红色长方形区域不被碰撞就可以躲避障碍物了。检测盒的宽度等于智能体的包围半径它的长度正比于智能体的当前速度,即它移动的越快,检测盒子就越长。如图所示为实际的效果图:第二部分原创 2015-11-13 10:52:22 · 7875 阅读 · 3 评论 -
Unity人工智能学习—确定性AI算法之追踪算法三
接下来就是要进行更为精准更智能的追踪。因此,在接下来的代码演示Demo中我重新设计了几个类,一个是PlayObject,这个类其实也没有什么新的东西,都是之前已经介绍过的,无非就是速度向量、位置以及移动控制等它的代码设计如下:using UnityEngine;using System.Collections;public class PlayObject : MonoBehaviour{原创 2015-09-10 09:42:52 · 3310 阅读 · 0 评论