自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ssssssilver的博客

一个专注UnityXR开发的程序员

  • 博客(35)
  • 收藏
  • 关注

原创 Unity接入Huawei AR Engine

一、简介Huawei AR Engine 是⼀个在 Android 智能⼿机上构建增强现实应⽤程序 的平台。⽬前支持的功能包括: 运动跟踪 平⾯检测 光照估计和命中测试 ⼿势识别和骨骼跟踪 ⼈体骨骼跟踪 ⼈体蒙版 图像跟踪 场景⽹格 ⾯部表情跟踪和脸部⽹格 以下是官方给出的支持列表: 服务 设备类型 设备型号 AR Engine服务

2021-09-29 22:38:03 8125 14

原创 关于在IOS平台下使用ARFoundation+UnityWebRequest无响应的解决方法

最近发现unity在ios平台使用UnityWebRequest会偶尔出现无响应的情况,明明发送了webRequest请求但一直卡住在请求的协程或者开异步进程的请求中,不会继续执行下去。而且这个问题只会在ios出现,在android或者pc平台是复现不了,一开始以为是自己代码的原因,但把请求从头到尾都debug输出过一遍后,发现代码是没错的,但web请求偶尔还是会卡住,即使设置了超时时间也一样。而且只要一出现这种情况,之后的webrequest请求都会卡在同一个地方。附上代码:public asy

2021-02-07 14:08:10 3453 4

原创 基于XR Interaction ToolKit开发的VR双平台兼容项目(一)

开发平台:Unity 2019.3.4f1使用插件:XR Interaction ToolKit preview0.9.4发布平台:HTC Vive,Oculus Quest

2020-04-26 13:09:33 3165 2

原创 Shader与ShaderToy开篇

写在前面        Unity从学习到工作至今已经有三个年头了,开发中每次遇到难点第一件事就是百度搜索,从来没有自己的想法,甚是惭愧。想着不能再这样浑浑噩噩下去了,也决定开个博客,记录一下开发中自己觉得有用的东西,希望日后某一天回顾起来不会觉得日子白过,如果还能帮助到有需要有同学那就再好不过了。关于Shader        说起来跟Shader也很有渊源,因为以前自学过C#,第一...

2018-07-24 10:49:46 5844 1

原创 关于DOTS的个人总结

网上已经有比较多的DOTS的资料了,这里就简单介绍一下。Data-Oriented Technology Stack (数据导向型技术栈) ,其包含了 C# Job System、the Entity Component System (ECS) 和 Burst

2021-06-07 13:43:54 759 2

原创 ARFoundation集成SenseAR(二)

隔了好久又用上了senseAR,上一篇说到senseAR的文章也只是个调研,也没有多深入进使用这个插件。在这里不得不吐槽一下ARFoundation。。。对于用ARFoundation进行跨平台AR开发,ios往往会比android省事。因为ios所需要做的事情arkit都帮开发者做好了;但andriod的ar开发简直是个噩梦,因为ARCore的适配原因,我都不记得向产品解释过多少次为啥xx机型用不了AR,再加上后面的制裁事件,新的支持ARCore的安卓机型也越来越少,到后面基本都放弃安卓AR...

2021-01-17 17:07:39 913 7

原创 UnityVR中使用浏览器功能

使用VR的一些业务场景,有时候会用到内存浏览器功能,虽然体验没有直接使用那么好,但还是可以进行一些简单的操作。这里推荐使用的是ZFBrowser,也就是Embedded Browser。这款插件自带有VR的使用场景,适用于UGUI跟plane面板使用。 我使用的版本是2.1.0,...

2021-01-04 13:13:26 1097 6

原创 PhotonVoice使用总结

因为之前对PhotonVoice的文档不太熟悉,踩了不少坑。最严重的坑是把PUN与PhotnVoice分离成了两个服务,导致任意一个服务掉线了处理异常老是得不到同步。后面再一次梳理了下官方的文档与demo后,才大致了解了具体的使用,下面是个人的一些总结。1.PhotonVoice可以跟PhotonNetwork只创建一个房间使用。在使用photon时都需要调用CreateRoom方法创建房间,只有用户都在同一个房间里面,多人的数据才能进行交互。同理PhotonVoice也需要创建类似...

2021-01-04 13:12:41 2110 6

原创 Unity打包ios应用并上架appstore审核的一些备忘

1.证书的申请证书申请这块因为不太熟悉 踩了许多坑,最后还是参考这篇文章才成功的IOS生成证书需要注意的是a.生成应用的发布证书要注意选中对应应用生成的发布证书b.发布需要的证书是跟开发的证书不一样的,用了开发的证书虽然也能成功上传到app store connect,但在应用的构建版本是找不到上传的版本的。2.unity打包xcode的注意事项a.可以在project setting界面里配置好相关的xcode工程信息,这样在xcode里面就不需要每次都设置同时也可以.

2020-12-13 11:14:18 660

原创 基于UIWidgets的Unity应用开发(七)

unity没有集成浏览器组件,UIWidgets也没有。当移动项目需要内置浏览器的时候,只能够自己编写一个浏览器插件,或者直接用第三方的浏览器插件。这里需要注意的是,引用第三方的浏览器插件基本都是基于ios或者安卓平台下封装的可调用类库,需要工程在对应的平台下运行才能够调用,在PC平台下一般只能强行跳出unity打开系统的默认浏览器(即调用了Applicaition.LoadURL的方法)第三方调用的浏览器插件的webview一般会处于UI的最上层,即挡在了UGUI上面,会把原有的UI交互事件屏蔽掉

2020-12-09 13:40:59 270

原创 基于UIWidgets的Unity应用开发(六)

最后要说下UI界面与3D界面的交互。前面的介绍已经讲过,要想在UIWidgets中刷新3D的场景,需要修改一下帧率的设置 。在挂载到panel上的脚本添加刷新同步的脚本,并把目标帧率设置成60帧。 public class ViewerApp : UIWidgetsPanel { protected override void OnEnable() { base.OnEnable(); Window.onFram

2020-12-08 13:29:44 181

原创 个人使用Photon的常用API总结

unity结合photon来进行多人开发十分便捷,但官方的api文档用起来十分生涩,经常找不到需要的方法,在这里把一些常用的api与使用方法总结一下。1.大厅的用户与房间用户数据交互使用场景:大厅外的用户判断自己是否可以进入该房间方法:首先在创建房间时设置自定义属性的数组 此时的数据并没有意义byte maxPlayers;byte.TryParse("8", out maxPlayers);maxPlayers = (byte)Mathf.Clamp(maxPlaye.

2020-12-02 18:02:36 1708

原创 【Unity】iOS应用通过浏览器打开并传值的设置方法

IOS的app在苹果手机中可以通过设置好的URL_Scheme,在浏览器中把请求头换成URL_Scheme://就能直接打开对应的应用(如果没有安装对应的app,会弹出指令无效的弹框,但可以跳转到指定应用进行下载,具体的js逻辑参照我的这篇笔记https://blog.csdn.net/ssssssilver/article/details/109730514) URL_Scheme的具体设置需要在unity打包出xcode工程后,在xcode工程的info里面设置,如图所...

2020-11-26 22:05:21 1026

原创 IOS通过链接打开应用的JS页面逻辑

逻辑:ios通过一个链接来打开应用如果没有则打开appstore下载首先需要判断当前是否为ios机型,可以通过navigator.userAgent来获取标识头判断机型当确认是ios平台后,需要判断当前手机是否下载应用,这时可以通过ios的url_scheme功能来跳转打开应用来判断。设置一个超时时间,如果大于这个时间还没打开应用则认为当前手机没有下载该应用,直接跳转设置好的当前应用的appstore链接(ios应用的链接可以从appstore中搜索,点击右上角的分享获得的就是应用的下载链接).

2020-11-20 18:24:20 958

原创 Unity获取移动端的剪贴板和写入剪贴板操作

因为unity都是在PC端做开发的,不能直接调用到ios或者android系统的一些类库,一般当unity的应用需要获取或者写入手机的剪贴板这一类的操作时,基本都是通过在xcode或者andriod studio编写好对应的方法类库,然后导入到unity应用工程的plugins文件夹对应的ios或者android文件夹中再进行引用。 以unity获取手机剪贴板信息为例,ios与android获取剪贴板的方法虽然代码不一样,但原理是相同的——都是通过原生代码向底层获取对应剪切...

2020-11-16 22:02:50 1553

原创 Photon-房间回传消息给大厅

在photon开发中,当遇到需要获取某个房间的消息来判断是否能进该房间的时候,可以利用photon的这个房间回传消息给大厅的机制来处理。例如当创建一个房间后,添加允许加入房间的人后,需要把这个信息回传到大厅,目标用户在登录账号后就可以直接进入房间。具体操作如下:1.创建房间的时候,添加自定义字符串数组,此时的数据只是被定义了,还没有任何用处的。 byte maxPlayers; byte.TryParse("8", ou...

2020-11-12 15:05:05 445

原创 关于AR识别地面的个人理解

AR识别地面的原理 手机AR通过摄像头来扫描真实世界的环境时,返回给手机的是一张不断刷新的图片,AR插件会通过相关算法来进行识别图片中的深度与环境生成很多的【标识点】,当【标识点】在某一水平面足够多的时候,手机的AR功能就会认为扫描到的区域是一个与真实环境平面重叠的【平面】,这时才可以把模型固定到这个真实的平面上。 可以简单认为这个识别到的【平面】就是由许多的【标识点】构成的,而AR模型就是恰好固定在其中一个【标识点】上。同时因为握持手机时获得的影像时刻都可能改变,所以一般AR...

2020-11-06 17:54:29 1707

原创 基于XR Interaction ToolKit与PUN实现VR多人协同功能

最近在整VR多人协同相关的开发工作,因为没怎么接触过多人开发这一块,碰到了不少坑,在这里总结一下个人的一些经验。一.开发环境配置 Unity版本:2019.3.4 相关插件版本: Universal RP 7.1.8 XR Interaction Tookit preview -0.9.4 PUN2 2.22 关于XR Interaction Tookit 之前有做过相关的介绍与使用说明参...

2020-11-06 16:27:46 2140

原创 Android工程嵌Unity模块内存常驻方案(Unity模块挂起不销毁)

在Android Studio工程中嵌套Unity导出的模块,官方默认就是使用singleTask的方式,每次启用Unity模块时都会另外开辟一个新的进程,当退出unity模块时,会把进程给finish掉(参考一这篇https://blog.csdn.net/ssssssilver/article/details/108326480) 但由于业务要求不一样,可能需要在返回Andorid主进程时,只是挂起unity模块并不销毁,这样下一次再进入时就不需要重复初始化操作,而且也可...

2020-09-15 16:36:22 700

原创 基于浏览器调用ARKit与ARCore

浏览器调用ARKit这两天苹果出了新品发布会的预告,官网的页面还有个小彩蛋就是用浏览器调用ARCore实现的,着色器的效果看着舒服。附上链接https://www.apple.com.cn/apple-events/IOS端使用safari浏览器启用ARKit的功能叫AR Quick Look,开发者官网就有相关的介绍https://developer.apple.com/augmented-reality/quick-look/它是利用safari加载usdz格式的模型文件,启用的方法很.

2020-09-10 16:56:48 1166

原创 Android Studio工程与Unity工程的交互与进一步封装

在unity中的回调事件如果需要暴露给AS工程监听的话,可以在自己的工程下创建一个Plugins文件夹,在子文件夹下再添加Android文件夹,这个Android文件夹下创建的java类或者jar、aar包在unity工程输出AS包的时候会一同打包出去。举个例子,当unity工程中有个加载场景的方法,在加载时会不断返回加载的进度,在加载完成后回调加载完成事件。如果要把这个加载场景的方法暴露给AS工程进行调用,AS工程是不能直接在一个方法里把加载中、加载完成的监听放进加载方法中的。因为AS调用Unit

2020-09-08 13:32:20 296

原创 ARFoundation集成SenseAR(一)

最近做的ARFoundation应用需要兼容更多的设备,尤其是华为设备。因为被老美制裁后,新的机型已经不再加入ARCore支持列表之中,既想要兼容更多的新设备,又要还是使用一套跨平台开发的代码,自然就想到了国产版的ARCore,也就是商汤的SenseAR。虽然说SenseAR已经整合到了ARFoundation中,但之前尝试了好多次操作,找官方demo\安装特供版unity、安装XRServer插件、替换ARFoundation版本,各种操作都试过了基本没有运行成功,也就没了下文。本来想百度下资料,

2020-09-04 10:50:34 1343 1

原创 基于UIWidgets的Unity应用开发(五)

接下来

2020-09-02 17:55:44 238

原创 Android Studio工程更新unity工程引用操作

(提前申明一下,因为unity2019之后的版本对导出的Android Studio工程的结构与配置发生了改变,本篇文章所说的内容只适合unity2019之后的版本,2018以前的版本的话请参考旧的版本。如果是第一次导入unity工程引用,可以从第三点开始看)当需要更新ARSDK时,对应已有的Android Studio工程,可以进行以下的操作1.解除主工程对unity工程的引用1.菜单栏上选择 File->Project structure,打开项目结构窗口(或者直接点击工具栏上的.

2020-08-31 18:05:42 626

原创 基于UIWidgets的Unity应用开发(四)

接下来要说的是登录界面要注意的一些问题。app的登录界面一般会有密码登录、验证码登录、忘记密码跟注册账号这几个模块,功能实现还是比较简单的,主要是一些细节的设计,因为我也不是专业做UI设计的,所以不会说怎样怎样设计才好看,主要还是说下功能实现的部分。 我在demo中主要是做了账号登录,验证码登录跟忘记密码三个功能。其实验证码登录、忘记密码、账号注册这三个功能模块实现的代码都是差不多的,而且功能还能复用,这个在下文会说明。 账号密码登录界面实现的逻辑主要是包...

2020-07-19 11:32:45 278

原创 基于UIWidgets的Unity应用开发(三)

这里说下UIWidgets与3D的交互设置,UIWidgets官方表明是可以与3D进行交互的。但在Unity直接操作的话,例如点击一个按钮触发一次位置、旋转、缩放的变换是正常的,但是如果是连续的变化的话,画面就会变得卡顿起来 上图我是把一个按钮添加了自动旋转的button,而且界面上添加了一个UIWidgets的按钮,可以看到在运行的状态下,scene场景的方块是会不断旋转的,但game场景的旋转会相当卡顿。导致这种现象的原因是因为UIWidgets的UI是在最前端,而且U...

2020-07-12 09:51:45 356 4

原创 基于UIWidgets的Unity应用开发(二)

首先是UIWidgets环境的配置,在PackageManager中打到UIWdigets,下载最新的版本,我现在的版本是preview12 1.5.4,如果没找到的话可以勾选Advanced上的show previewpackages。看上面的图,第一条说的是现在下载的插件是缺少一些资源的 这些资源基本是一些icon跟字体,emoji之类的图片资源,需要到官网的github上下载;第二条说的是如果你想打包到其他平台还需要还需要一些plugin插件放到对应的文件夹后才能正...

2020-07-11 19:28:26 534

原创 基于UIWidgets的Unity应用开发(一)

Unity的UIWidgets这款插件是类似flutter语言的移动UI框架,这个插件是基于UGUI来实现的,但渲染逻辑基本是另外一套。跟UGUI不同的时,UIWidgets能只使用一个Image组件类动态或静态加载的方式创建十分酷炫的UI效果,而且官方也用UnityConnect证明了能用Unity这种3d开发的引擎来开发效果相当不错的跨平台移动端的APP。 网上也有不少开源的UIWigets项目,包括我这种从来没接触过flutter式开发的菜鸟,也是在看了siki学院的凉鞋...

2020-07-11 18:32:00 648

原创 基于ARFoundation开发ios与android双平台兼容的配置说明

一.开发环境说明开发平台:Windows 10 X64Unity版本:Unity2019.3.0f6ARFoundation相关的package包版本:ARFoundation preview.4-3.1.0ARCoreXRPlugin preview.4-3.1.0ARKitXRPlugin preview.4-3.1.0ARKitFaceTracking preview.4-3.1.0ARFoundation相关的package包的版本必须保持一致,否则有可能导致发布后不

2020-05-09 10:45:58 757

原创 基于XR Interaction ToolKit开发的VR双平台兼容项目(二)

上一节已经配置好了开发环境,这一节主要说下Unity,工程相关的东西。 首先打开Unity,将上一节的demo场景导入unity中,或者直接打开也行。因为demo场景的配置都是已经设置好的。所以只要连接上vive设备,开启steamVR插件的话是可以直接启动VR的。 这时候注意一点,官方推荐我们在ProjectSetting界面上安装好Input He...

2020-04-28 11:34:36 1181 1

原创 【ShaderLab】利用shader实现中心遮罩缩放效果

写在前面 前几天一个以前的同事突然说想叫我帮忙搞个着色器,想要做一个UI的过场效果。大概就像类似动画片里面结束的时候的黑场效果,需要用一个透明UI图在一个全黑的背景中间做放大缩小的操作。当透明UI最大时,显示场景的其他UI,当透明UI最小时,整个场景黑场,效果如下。 其实这就是同事想要的效果了,实现的原理很简单,没花什么功夫就写出来了。后来想想写都写了,看看能...

2019-06-13 14:51:24 1406

原创 【ShaderLab】Phong与Blinn-Phong两个光照模型的理解

写在前面看来坚持真是一件相当困难的事件,从去年就一直鸽到了现在,最近终于是有时间做下总结了。今天来记录下个人对Phong与Blinn-Phong两个光照模型的理解吧。正文 (顺手抄来一个图)Phong与Blinn-Phong两个光照模型都是用来实现光照射在物体上,物体表现产生一个高光部分的效果的,两个模型也十分相似,毕竟后者是对前者进行了一个计算上的优化。虽然说两个光...

2019-05-15 11:58:34 4678

原创 【Shader与ShaderToy】环形进度条

写在前面         这两天在shadertoy上看一个环形的进度条效果(原地址),觉得挺不错的,想学习一下其中的原理。原版的效果是这样的正文        我在没接触shadertoy前,如果要用shader实现上面的效果至少都要用两张图片:一张完整的环形图与一张用来遮罩的半透明图。利用半透明图alpha通道的渐变来遮罩显示环形图,实现起来的效果是这样的虽然利用遮罩来...

2018-07-30 14:40:23 1654

原创 【Shader与ShaderToy 】画一个五角星

写在前面        看了几篇关于用shadertoy画线与画点的文章之后,突然想自己做一个五角星的效果来练练手。但是想归想,动起手来还是充满了“坎坷”。折腾了一个周末只是思路清晰,但代码却一塌糊涂,最后还是老老实实上网查阅各种公式资料,中途竟发现自己连求圆上点的公式都忘了,不禁感慨自己的数学真的已经还给老师了。唯一觉得欣慰的是最后东西是弄出来了,在shadertoy上实现的效果是这样的,地...

2018-07-24 10:50:05 1538 1

原创 【Shader与ShaderToy】画一个圆

写在前面        今天准备试着在Unity和在ShaderToy的网站上分别搞一个圆,看一下两者具体有什么区别。        关于Unity与shadertoy运行前的一些准备工作会略过,直接上代码与显示的效果。Unity部分        用Unity来+VS来编写shader是本人比较喜欢的,直观快捷,而且还能直接在面板上改变参数设置效果,比网页不知道高了多少去了!下面...

2018-07-24 10:49:57 2503

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除