自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (6)
  • 论坛 (1)

原创 Unity 制作编辑器工具的注意点

Unity中制作Editor工具,采用的OnGUI的方式,因此比较麻烦,也有很多容易犯的错误。GUI、GUILayout、EditorGUI、EditorGUILayout这4个类是用来绘制界面的。GUI和EditorGUI是一组。EditorGUI是Unity封装过的,里面有很多可以直接调用的函数用来绘制特殊字段,例如Int,Object,Float等GUILayout和EditorGUILayout是一组。Unity封装了一个布局的功能。一、GUILayout和EditorGUILayo

2020-07-29 19:50:14 47

原创 Unity 制作蓝图工具 C#中的技巧

最近花了两周时间,终于完成一个很简单的蓝图工具。其中我觉得比较复杂的,就是数据转换和数据计算,因为蓝图中数据类型是没办法直接获取到的。计算的时候不可能罗列所有类型的相互计算,因为类型大多了。由于数据要序列化,所以要保存类中的字段是可在Unity可序列化的,例如:Type 和 MethodInfo 以及 object 就不行object不能序列化就导致反射函数的参数需要转换,带来很多麻烦一、定义保存数据的类 [Serializable] public class Serial

2020-07-28 16:49:21 103

原创 Unity Shader 中空间还原

在做一些后处理Shader的时候,很多情况都需要对屏幕空间中的坐标还原到世界坐标。一、还原原理_CameraDepthTexture保存了物体的深度信息,深度信息可以直接通过uv采样到。假设获取到了屏幕空间中A像素的深度信息,如果要得到A像素的世界坐标,还需要一个方向,深度信息是长度。这个方向,应该是A像素投影在屏幕坐标的点指向A像素世界坐标的点。然后通过方向乘以深度就得到物体在相机空间下的坐标,然后加上相机的世界坐标,就得到了物体的世界坐标。二、计算方向唯一的难点就是计算方向,这里可以计算

2020-07-15 09:50:16 69

原创 Unity移动端、WebGL 四边形线框Shader 实现

本文不是使用GeometryShader!移动端和WebGL由于一些限制不能使用GeometryShader,因此不好实现线框Shader。一、手动绘制有的人可能会选择用GL画线来实现绘制线框,具体就是读取mesh信息然后绘制线条,但是GL绘制不能调整线条粗细。有的人可能有回使用LineRender或者直接用圆柱体。这样确实可以调整粗细,但是性能堪忧。。。手动绘制,基本大一点的Mesh就会严重影响性能,不是很可取。二、通过Mesh传参数线框用shader实现的难度,就是很难找到三角的

2020-07-03 10:57:44 179 1

原创 Unity 优化场景的一些方法

在做一些项目的时候,可能美术模型不标准,加上只关心好看,不关心性能。因此到最后整个场景运行费劲。以下是我在做webgl工程时,积累的一些优化经验,尽量不影响效果。一、模型检查首先检查美术的模型,这里检查模型,不是检查顶点三角数量,因为这可能影响效果。主要检查贴图,材质。美术在搭建场景的时候,都习惯用standard shader。然后一些模型只是因为颜色不一样,就用了两个材质球,模型贴图完全没有合并。有的模型还有submesh,但是submesh材质球只是贴图不一样。解决方法:我自己写了一个

2020-06-24 17:22:35 116

原创 Unity 3D 热力图效果实现

效果图一、动态创建mesh首先需要创建一个Mesh,当然这不是必须的,可以使用plane,自己创建主要方便控制精度。修改顶点高度,如果顶点不够可能不够平滑,太多又浪费资源。因此最好根据实际需求大小生成。 private void CreateMesh() { float perxlength = mapSize.x /(meshSize.x - 1); f...

2020-05-26 11:10:17 625

原创 Unity Surface Shader 使用其他组件颜色

自己新建的shader ,使用在linerender或者Image等组件上面的时候,这些组件的颜色修改不能影响到材质球。lineRender的颜色渐变是很实用的功能。lineRender颜色能够改变材质颜色,是因为LineRender修改了模型点的颜色。然后Shader通过这个颜色去混合材质球颜色就能实现LineRender控制材质颜色了。顶点片段着色器可以在顶点片段中获取顶点颜色,然后传入片段着色器。这里主要说一下SurfaceShader,因为不太常用到。自定义顶点函数 #pr..

2020-05-22 09:46:56 116

原创 修改北斗AR地球仪激活验证

北斗AR地球仪,手机安装app后需要扫描二维码激活,二维码又需要购买地球仪。所以我就想着跳过激活验证一、ILSpy首先取出Assembly-CSharp.dll。验证部分的代码在这里面,因为我在java部分代码找过没发现。然后把这个dll反编译出来后,通过开始按钮找到了判断激活的代码。使用ILSpy只是为了确认代码位置,因为C#代码容易找到逻辑位置。找到之后就要修改这个Dll,...

2020-04-17 18:40:43 2984 2

原创 Android 通过OpenGl更新Unity图片

这个文章是针对Unity 制作的Android程序java代码部分获取到图片数据,如果要传递到unity,应该怎么做呢?首先说一下为啥会有这个需求:如果Unity程序需要外接一些图像设备,例如外接红外摄像头。Unity并不能直接获取到图像数据,首先需要需要在AndroidStudio中做好设备接入工作(驱动程序之类)。然后设备会通过Usb接口返回图像数据,这个数据然后通过java代码传...

2020-04-10 17:16:25 231 2

原创 Unity Image 原图比例控制

Image图片在使用的时候,我们总希望它保持本身比例,这样美术图片就不会变形了。一、Preserve Aspect这个选项可以控制图片渲染保持本身比例。它会根据rectTranform 的width 和 height 计算能保持比例的最大渲染尺寸。如图中,图片比例是1:1,rectTranform的height大于width ,因此渲染尺寸的width为rectTransf...

2020-04-09 13:52:06 449

原创 Unity C#代码编译dll

在做Unity的SDK时候,因为部分代码不希望用户误修改导致错误,例如一些固定数据。因此可以将这部分代码编译为Dll,然后在Unity中调用。首先打开VS创建新项目选择.NetCore类库。.NetFrameWork也是可以的。首先添加自己需要的依赖项,这里主要看你的代码中,引用了unity那些类然后可以直接把Unity中写好的C#类复制过来。整体好后,确定代码没有报错了...

2020-04-08 13:10:38 79

原创 Unity Android Usb 通信

Unity 监听安卓USB得插拔,以及数据通信(安卓是主)因为不想通过Android 继承 Unity的activity这种方式实现(需要修改manifest)。所以具体实现方式是在Unity的Update中获取所有usb设备,然后自己判断插拔。 usbManager=(UsbManager)context.getSystemService(Context.USB_SERVICE...

2020-04-03 16:13:41 348 5

原创 EasyAR4.0开发 (SpatialMap空间地图五)

这篇文章讲一下SparseSpatialMapWorkerFrameFilter这个类首先说明一下其他几个类的作用,可以查看EasyAR了解这几个类的具体作用SparseSpatialMap//提供SparseSpatialMap系统主要的功能,地图生成和存储、地图加载和定位,同时可以获取点云,平面等环 境信息并进行...

2020-03-11 15:52:12 803

原创 EasyAR4.0开发 (SpatialMap空间地图四)

这篇文章主要通过SpatialMap_Sparse_ImageTarget这个场景,说明一下实现稀疏空间地图的脚本。一、SparseSpatialMapController脚本

2020-03-10 10:33:32 572

原创 EasyAR4.0开发 (SpatialMap空间地图三)

这篇文章主要针对SpatialMap_Dense_BallGame场景讲一下DenseSpatialMapBuilderFrameFilter 和DenseSpatialMapDepthRenderer 这两个脚本。一、场景分析EasyAR4.0的所有功能都模块化了,SpatialMap_Dense_BallGame这个场景中绿色框的物体上面挂载的脚本就是实现稠密空间的脚本了。...

2020-03-05 16:58:49 751

原创 EasyAR4.0开发 (SpatialMap空间地图二)

这篇文章主要讲一下EasyAR4.0 稠密空间示例场景的打包运行一、创建基于4.0的许可证密钥链接就和之前创建一样,只是在选择的时候选择EasyAR Sense 4.0。这个id要和工程id对应上二、创建工程(我这里使用的安卓测试)新建一个Unity安卓工程,导入EasyARSense_4.0.0-final_UnityPlugin_Samples 下载链接修改工程P...

2020-03-05 16:18:35 931

原创 EasyAR4.0开发 (SpatialMap空间地图一)

EasyAR发布4.0版本,其中有一个特别重要的技术就是SpatialMap。Easy把这个技术又分为了稀疏空间地图和稠密空间地图。AR程序发展到现在,识别空间始终是比较麻烦的事情,之前的识别图只能通过特定图片寻找到虚拟和真实的交界。这对用户来说体验感是远远不够的。虚拟的模型想要在真实的世界中更加完美呈现,一是关照效果阴影的体现,还有更重要的就是遮挡关系,物理阻挡的体现。如果可以多人共享一...

2020-03-05 16:18:03 1419

原创 Unity 多机器的视频不卡帧同步

视频同步不同于图片帧同步,因为图片帧同步只要传递帧数,然后加载相应的图片就行。一、使用VideoPlayer做视频时间同步最开始想到的方法就是这样,因为时间是视频位置的控制。使用UDP测试之后发现,在给VideoPlayer设置播放时间的时候,会有卡顿的现象。估计是要解析这个时间的视频数据,所以就觉得可能是VideoPlayer解析能力不能,其实本来也不行。于是就用了EasyMovieTe...

2020-03-03 15:29:48 1803 13

原创 Unity 语音通话功能

一、录制语音Unity自带Api public RecognizeVoice() { string[] microPhoneName = Microphone.devices; if(microPhoneName.Length > 0) { _microphone = microPhoneName...

2020-02-25 15:30:03 504 4

原创 Unity UDP局域网广播 组播 Android

Unity Android程序,想实现一个局域网会议程序。一个程序创建好房间后,需要让其他客户端知道,就需要不断往局域网发消息开始想使用广播,后来改成组播。这里说一下这两种方式吧一、广播广播会往局域网所有客户端发送一次消息。 _socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, Protocol...

2020-02-23 15:13:02 351

原创 Unity 协程实现

Unity 的协程是通过IEnumerator实现的。类似于切分成很多代码块,通过moveNext判断哪个代码块应该执行。 public interface IEnumerator { object Current { get; } bool MoveNext(); void Reset(); }MoveNext返回bool就是用来判断是否可以执行接下...

2020-01-16 15:57:24 68

原创 Unity 调用安卓内部安装apk

一、申请权限应用内安装其他应用的权限属于特殊权限,需要在特殊申请。Uri packageURI = Uri.parse("package:" + mContext.getPackageName()); Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI); startA...

2020-01-13 17:05:09 288

原创 Unity EasyAR Coloring3D AR绘图原理

EasyAR最新4.0版本加了很多新功能,本文主要讲一下EasyARColoring3D 这个功能的原理一、模型和识别图关系首先识别图应该是作为模型的贴图使用的,因此在做模型UV的时候,要根据识别图设置红框部分属于模型贴图,其他部分就是随便填充的,模型uv要对应上二、相机图像转贴图Coloring3D脚本是实现的代码,从CameraImageRenderer中获取相机图...

2020-01-07 17:19:48 324

原创 Unity 修改粒子参数

Unity新版本的粒子代码框架更改过,之前的很多api是不能用的。新版本的粒子效果把整个数据分成了几大模块,每个模块是一个struct public struct MainModule { public float duration { get; set; } public float startRot...

2019-12-27 11:01:37 1017

原创 Unity 通过物体上的3个点坐标变化,计算物体变化

这个理论本来应该用矩阵计算,但是不会,所以用了笨方法。假设上一帧三个点是:point1’ , point2‘ , point3’ 当前帧三个点是:point1 , point2,point3 物体上个点是:objpoint1 , objpoint2,objpoint3point1’ , point2‘ , point3’ 可以形成一个面point1 , poi...

2019-12-20 11:41:09 180 2

原创 Unity Android 显示导航栏和状态栏

Unity显示导航栏比较麻烦,显示状态栏挺简单的,网上百度有很多方案。主要实现方案是Github上的一个工程https://github.com/Over17/UnityShowAndroidStatusBar这个工程有aar包,也可以直接使用,但是我比较反感就是修改xml启动Activity的方案的,所以想直接在Unity用反射实现。他的安卓工程可以看看,只有三个函数。 pub...

2019-12-11 18:02:48 545

原创 Unity 接讯飞离线语音识别

Unity 接入讯飞离线SDK , 有一些坑记录一下。在开发者平台注册之后,申请应用,下载SDK包。这个sdk包和你的appid是对应的,不能使用别人的sdk包,然后用自己的appid这是SDK文件夹,sample是一个示例工程,将libs文件中jar文件放入AndroidStudio中的libs中新建jni文件夹,然后放入对应so文件文件夹中assets文件放入An...

2019-12-04 15:38:43 693

原创 AudioClip 和 byte[] 相互转换原理

AudioClip 是Unity的中使用的音频类byte[] 是加载wav音频文件获取到的数据AudioClip可以通过GetData和SetData获取和设置音频数据,但是数据是-1到1之间的float数组因此byte[] 在转到AudioClip时需要将数据缩放成-1到1之前的floatbyte[] 的两个字节 对应 Unity中一个float数据 public byte...

2019-12-04 10:24:35 1222 7

原创 Unity LoadImage LoadRawTextureData 方法加载 Bitmap

LoadImage 只能加载Jpg或者Png的压缩格式图片 ,需要传入字节数组LoadRawTextureData 加载原始图片数据 ,需要知道图片大小,格式Android 想把 图片数据通过byte[]数组传到Unity可以用bitmap压缩成Png格式的byte[].如果要传原始图片数据,直接从bitmap获取byte[],数据从左上开始,在Unity中使用LoadRawTex...

2019-11-29 15:51:08 970

原创 Unity Editor Scene窗口 射线检测

一、Editor状态下获取键盘鼠标输入Editor代码中不能使用Input获取,需要使用Event Event e = Event.current;if(e.keyCode == KeyCode.Space){}二、Editor脚本中获取鼠标位置 Event e = Event.current; Vector2 pos = e.mousePosit...

2019-11-27 17:14:57 318

原创 Unity 使用真实地形数据 建立Terrain

http://www.gscloud.cn/地理空间数据云可以免费获取高程图使用在线计算,可以计算固定区域的高程图,然后会导出多张tif文件修改tif文件需要软件GlobalMapper 提取码:s3j7使用GlobalMapper打开文件选择等高线渲染方式,取消选择光照渲染然后导出成jpg设置8bit的灰度然后打开ps ,设置画布成2的整数倍导...

2019-11-12 11:13:10 980

原创 Unity 使用LitJson 解析Json数据

Unity自带JsonUtility类,解析感觉不是很好用,数组解析不出来。fastJson 自己定义json数据结构的时候是好用,但是对于解析网络下载json感觉不是很好用。于是就用了LitJson,记得应该是我第一次解析json用的插件,但是很久没用,忘记怎么用了,于是记一下吧。 RecData data = new RecData(); ...

2019-10-30 15:05:04 768

原创 Unity 接入百度物体识别 API

一、 新建应用,获取id和密码,为后面获取Access Token做准备二、 调用api需要授权的Access Token,Access Token或在固定时间改变,因此最好在程序启动的时候获取一次。三、 获取Access Token IEnumerator RequestTOKEN() { WWWForm form = new ...

2019-10-30 11:29:10 365

原创 Unity EasyAR 使用自定义UVC相机(安卓)

项目是安卓接入AR眼镜,使用AR眼镜的Camera进行识别首先安卓手机接入AR眼镜后,不能直接打开相机,需要使用AndroidStudio写一个驱动注册,这部分是网上的代码,因为不是做安卓开发的所有也不清楚。然后自己使用AndroidStudio在网上代码上封装了打开关闭相机,以及回调byte[] 的图片数据使用Unity调用测试成功。结合EasyAReasyAr 3.0有一个...

2019-10-22 14:31:37 862 5

原创 AndroidStudio AAR包替换后 缓存不更新

删除.idea / libraries 文件夹中 对用aar包 xml 文件,然后执行File->Sync with File System以及File->Sync Project with Gradle Files之后aar包就更新了

2019-10-21 11:34:21 399

原创 Unity 获取安卓通知栏信息

Unity 获取安卓通知栏信息,在通知栏新增,删除时回调。Unity 和 Java 的调用和回调还是和之前一样:交互首先定义一个java类继承自NotificationListenerServiceonNotificationPosted函数是在通知栏新增的时候回调。onNotificationRemoved函数是在通知栏删除时回调。public class PhoneNot...

2019-09-19 19:12:28 268

原创 Unity 获取Android 电量

两种方式,一个主动获取,一个被动回调。Unity安卓交互使用之前说到的方式:Unity Android交互 public int GetBatteryData() { BatteryManager manager = (BatteryManager)context.getSystemService(BATTERY_SERVICE); return m...

2019-09-18 09:47:30 114

原创 Unity 弧形文本UI

定义脚本CurvedText继承自Text,重写OnPopulateMesh函数protected override void OnPopulateMesh(VertexHelper toFill) //在Unity生成顶点数据后会调用这个函数, { ...

2019-09-10 18:56:38 1165

原创 Unity 调用java代码 以及java回调

Unity版本2018.2.17 , 直接支持java代码,所以我在使用的时候没有打包成aar。基本都是固定的代码AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); //固定的,获取UnityPlayer类 currentActivity = jc.GetSta...

2019-09-06 17:52:19 1334 3

原创 Unity 工程 融合 AndroidStudio工程

将Unity工程添加到已经完成的AndroidStudio工程中一、导出UnityAndroid工程二、使用AndroidStudio打开Unity工程选择ImportProject打开后一般会报gradle的错误修改这里的版本为你使用的版本可以新建一个AndroidStudio工程对比更改这两个地方也需要改成这样,这是我在做的时候遇到的错误,可能有不一样的...

2019-09-06 16:44:19 106

Unity 安卓Usb通信

Unity 安卓通信包,这是我自己做的,Android部分已经打包成aar了。需要了解安卓实现的参考我的博客文章https://blog.csdn.net/BDDNH/article/details/105294901 有其他问题解决: https://item.taobao.com/item.htm?spm=a230r.1.14.23.6dc5e26aZvGmsR&id=563974930971&ns=1&abbucket=1#detail

2020-04-03

Volumectic Blood Effects unity血液特效粒子

Volumectic Blood Effects unity血液特效粒子 unity插件包

2018-01-30

Rain Storm Effect Unity暴雨特效插件

Rain Storm Effect Unity暴雨特效插件 导入即可使用

2018-01-30

Unity3D Match3Jewel 三消类游戏,完整298关

三消类游戏,一共298关,手机游戏,可以直接打包运行,仅供学习使用

2018-01-30

Unity暴力街区设计大战游戏源码

Unity暴力街区设计大战游戏源码,程序可以直接运行。程序属于学习程序,没完全完善

2018-01-30

Curved UI - VR Ready Solution To Bend / Warp Your Canvas 曲面UI插件

Curved UI - VR Ready Solution To Bend / Warp Your Canvas 曲面UI ,可交互插件

2018-01-30

申请资源删除,内容可能涉及侵权

发表于 2018-02-08 最后回复 2018-02-08

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