
Unity3D
长风颇浪
低调的隐藏富豪
展开
-
unity scene视图的操作控制
最近有朋友问我想实现跟scene视图一样的鼠标操作控制,所以我网上看了一看,找了个例子,稍微修改一下,成了下面这个using System.Collections;using System.Collections.Generic;using UnityEngine;public class CameraAction : MonoBehaviour{ public float mouseScrollSpeed = 40, //滚滚轮放大缩小速度 mouseDragS原创 2020-06-12 14:51:37 · 1492 阅读 · 0 评论 -
最简单的hololens使用unity开发基础入门
很久没更了,这一篇文章我就来写一下hololens开发的环境部署以及基础入门,网上有很多关于hololens的教程,有很多一部分都已经不适用了,我就来讲一下新版本的该如何部署开发环境首先,我们打开我的电脑,属性,查看电脑操作系统的版本是否满足需求。操作系统要求:必须是企业版或者专业版,不支持家庭版,而且系统的版本必须是2017秋季版本之后的(因为hololens开发是基于2017秋季创...原创 2020-03-02 10:18:26 · 1008 阅读 · 0 评论 -
数据结构—————散列表(哈希表)和字典(unity)
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(...原创 2019-09-25 17:23:16 · 2016 阅读 · 0 评论 -
数据结构—————栈(unity)
最近有老铁跟我讲自己对数据结构不熟悉,而且市面上一些学习资料比较难理解,让我给他讲一下数据结构,我考虑了一下,决定在接下来的日子,开启一个新的工程,用我们熟悉的unity把涉及到的数据结构都讲一下,其中我会附带一些简单的例子,或者一些小游戏,来说明数据结构,希望能帮助大家更好的理解。这一篇我先讲比较简单常用的数据结构——栈:我们先看看百度百科的解释:栈(stack)又名堆栈,它是一种运...原创 2019-08-30 17:00:22 · 1461 阅读 · 1 评论 -
Unity获取GPS经纬度并解析成具体位置
其实unity也有自带的api获取GPS经纬度的信息的,地址是:https://docs.unity3d.com/ScriptReference/LocationService.Start.html下面写一个demo,把获取到的GPS信息的经纬度解析成具体地址,具体思路是通过unity 自带api获取经纬度,然后通过高德的webapi把经纬度转换成具体的地址,废话少说,看代码:using...原创 2019-12-06 15:52:46 · 1356 阅读 · 1 评论 -
浅谈unity webGL与three.js
为什么我要写这样一篇文章呢?其实是这样的,最近我的一个老同学,一直在跟我吐槽unity的webGL有多坑多坑,当初我们是一起学的unity,也是怀着一颗做游戏的梦想,最后呢,他去做了游戏,我做了当时很火的VR和AR,这几年来呢,我这位同学一直在做手游,最近换了一家公司,说是要做页游,使用unity的webGL模块来做,他呢,遇到的坑是真多,结合我自己的工作经验,我总结一下unity的webgl和t...原创 2019-12-03 15:29:59 · 18065 阅读 · 1 评论 -
Unity超实用导出全景图插件
最近有个小胖子问我,有没有好用的导出全景图插件,我二话不说拿出了压在箱底多年的全景图插件,使用只能用两个字概括easy,下面给大家介绍一下这一款插件以及相关的使用注意事项:首先,导入插件,我们先看看插件的demo一般采集画面都是采集相机的画面是吧,所以基本是主要代码都是对相机的操作,挂在在相机上面,我们来看看相机上面的脚本:主要的设置基本就是这些,也不详细讲了,大概就是采集...原创 2019-11-29 15:25:43 · 4693 阅读 · 1 评论 -
unity可以用中文了?代码也可以中文?
最近无意中看到unity居然出中文了,这对于英文能力比较差的同学真的是不错,但是我认为啊,如果使用了unity一段时间了,很多人还是比较习惯英文的,但是,这篇还是跟大家讲一下,中文版本怎么下载,怎么设置首先,打开unity hub ,如果没有就自行下载一个,然后找到相应的版本,点开下载,在选择包的时候,拉到最下面,选择简体中文注意:2018.3之后才有的功能哦下载安装好之后打开un...原创 2019-11-20 12:01:51 · 7081 阅读 · 0 评论 -
从零开始把echarts接入到unity中使用
之前写了一些通过vue.js把echarts引入到unity中的,但是相对于没有js基础的人,使用vue还是有点困难的,很多小伙伴私聊我甚至连vue.js的环境都不会搭建,基于这个原因,我这一篇就使用最简单的js,不使用任何框架,把echarts接入unity的流程从头到尾讲一遍。首先,我们打开echarts官网https://www.echartsjs.com/zh/index.html,找...原创 2019-11-19 11:10:06 · 7937 阅读 · 9 评论 -
深入浅出MQTT: Unity客户端和服务端
(本文把服务器搭建和unity客户端代码一起讲了,文章可能会有点长,请耐心看完)MQTT是IBM开源的一个通讯方式,如果你是在做物联网或传感器之类的通讯,这个通讯方式十分适合你,下面讲一下MQTT的优点:(1)精简,不添加可有可无的功能; (2)发布/订阅(Pub/Sub)模式,方便消息在传感器之间传递; (3)允许用户动态创建主题,零运维成本; (4)把传输量降到最低以提高传输效率...原创 2019-08-15 17:14:59 · 7575 阅读 · 6 评论 -
unity超简单导出序列帧插件
前些天有朋友给我留言问我有没有unity导出序列帧比较好用的插件,这里我们分享一个超小超简单的第一步:导入插件接着在Window下拉菜单找到这个界面是这样的:详细讲解一下,如果只想获取当前画面的一帧,就点击截取当前画面就行了,如果要导出动画的序列帧,勾选启用导出序列帧,设置起始到结束帧即可:是不是很简单,如果你想获取插件,关注公众号,回复关键字“序列帧”即可获取插件...原创 2019-08-13 18:39:07 · 15013 阅读 · 7 评论 -
Unity调用系统窗口并保存数据到excel
最近遇到一个需要实现的功能,就是把unity界面上面的数据导出到excel上面,方便客户查看。在网上找了一下,总结一下,用得最多的就是Epplus.dll这个库,十分好用,兼容性很强大,下面是这个库的官方地址:https://archive.codeplex.com/?p=epplus首先,我讲一下我的实现思路吧,上面这个库是主要实现对excel的读写操作的,但是考虑到客户的使用场景肯定是习惯...原创 2019-06-04 15:50:47 · 1419 阅读 · 1 评论 -
Unity浏览器实时传输框架WEBRTC的基础搭建使用
前些天,unity发布了自主研发的实时流传输框架,刚出来那天我就着手研究了,直到今天才闲下来有时间写这个文章,其实它是基于谷歌开源的WEBRTC框架,然后unity再自己开发了一个采集视频流的插件,组合成这个东西,先看看官方的演示视频:使用步骤如下:第一:到官网https://nodejs.org/en/下载node.js ,一路白痴安装即可第二:在github下载相应版...原创 2019-10-10 17:39:39 · 8916 阅读 · 11 评论 -
Unity 网页插件Embedded Browser的使用
每个引擎或者每个平台都有自己的局限性,unity也不例外,那么这个时候,我们可以导入第三方的一些功能或者插件来实现我们的功能。网页上面很有多开源的东西,例如百度的Echart,几乎涵盖了所有类型的图表,我们可以把它引入到unity中来使用。废话不多说,我们简单来看一下这个插件的使用,以及这个插件是如何跟网页之间来回通讯的:首先,导入插件,随便打开一个场景,找个挂载Browser,修改上面的ur...原创 2019-05-07 16:12:39 · 15604 阅读 · 53 评论 -
深入浅出Socket通讯:Unity客户端和服务端
我会先讲解一下socket通讯的基础知识,希望大家可以认真看完,代码实现其实只是一种根据通讯原理一步步实现的逻辑,如果你了解了原理,换另外一种语言你也很快能写出来,而且通讯过程中遇到问题的时候你可以很快找到问题所在。Socket又称为套接字,什么是套接字呢?网络套接字是IP地址与端口的组合。例如我的ip是192.168.0.1,开启的端口是8080,那么套接字就是192.168.0.1:808...原创 2019-08-22 16:12:19 · 2329 阅读 · 3 评论 -
Unity骚操作ContextMenu
ContextMenu的作用到底是干嘛的呢,我大体讲一下,就是用来方便在编辑器不运行的状态下进行调试,看看自己写的代码的效果,但是有一个骚操作是很多人不知道的,而且这个骚操作对我们日常编辑场景有很大的作用,今天我们就来讲一下这个骚操作,为什么会想到这个操作呢,其实是源于昨天我们美术不细心,在摆放场景的时候,把上千个物体的坐标都弄错了,具体我就不说了,但是我们要解决的就是把上千个物体的子物体的坐标复...原创 2019-08-30 10:46:27 · 3002 阅读 · 0 评论 -
Unity视频流插件UMP
这一篇我介绍一个我们常用的视频流插件:UMP。其实很多时候在实际的应用中,我们不单单是只播放本地视频,经常我们会需要播放一下网络上面的视频,或者采集摄像头的画面,这个时候我们就需要通过读取视频流来播放视频了,例如我们平常看的直播其实也是通过视频流传输的,目前的视频流大约分成三种:rtsp,rtmp,http,大家可以通过百度下载VLC软件来测试播放视频流,而我们今天讲述的插件UMP其实底层也是VL...原创 2019-09-03 10:18:56 · 24520 阅读 · 92 评论 -
Unity实现直播功能(采集并传输视频流)
相信直播对于大家来说都不陌生,今天我来给大家讲一下如何在unity中实现直播,这样可以把我们做的场景或者游戏分享给别人看了,希望大家认真看完,因为过程会比较长,但是无需写一行代码即可实现。废话就不多说了,直播需要一个服务器吧,先来讲讲服务器的搭建,我采用的是github一个开源的node.js的库来实现服务器:地址是https://github.com/iizukanao/node...原创 2019-09-12 17:46:14 · 32577 阅读 · 36 评论 -
Unity机器学习库ml-agents新版本的环境搭建
我们先看看他的效果吧:ml-agents是Unity推出的机器学习开源库,已经推出两年多了,刚推出的时候,部署环境比较复杂,随便官方人员的努力,更新迭代,目前功能越来越强大,而且部署越来越简单化,今天我们看一下怎么部署这个环境吧:步骤如下:第一:下载库,github地址是https://github.com/Unity-Technologies/ml-agents,选择master...原创 2019-10-11 17:00:13 · 1310 阅读 · 1 评论 -
unity匿名函数的简单使用
这一篇我们讲述匿名函数的使用,代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;public class Test_delagate : MonoBehaviour{ public delegate void mydelagate(string s); ...原创 2018-08-17 12:03:53 · 1704 阅读 · 0 评论 -
unity制作简单的分页功能
先上效果图吧:关键逻辑在这里,分两张情况,设定每一页多少条数据,具体情况具体分析void BindPage(int index) { if (pageCount == 0) { int canDisPlay = 0; for (int i = 4; i > 0; i--) ...原创 2019-04-04 17:26:12 · 2290 阅读 · 1 评论 -
Unity开启本地http服务,建立http服务器
最近做一个项目,遇到一个需求,需要在unity中开启http服务,在C#磨蹭了一会之后,封装了一个dll到unity里面,完成了这个功能,以下是具体代码:using System.Collections;using System.Collections.Generic;using System.Threading;using HttpServer;using HTTPServerLi...原创 2019-04-04 17:00:31 · 4939 阅读 · 6 评论 -
DoTween实现打字机功能
NGUI里面有自带的打字机的功能,但是现在我们最常用的是UGUI,那么打字机可以用DoTween插件来实现:代码很简单,如下:using System.Collections;using System.Collections.Generic;using DG.Tweening;using UnityEngine;using UnityEngine.UI;public class ...原创 2018-10-23 14:49:01 · 2998 阅读 · 1 评论 -
Unity输入框使用Tab键切换
在Unity自带的输入框inputfield里面是没有按Tab键自动切换的功能的,为了完善这个功能,加入以下代码:using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;using UnityEngine.UI;public...原创 2018-10-16 17:11:47 · 1151 阅读 · 1 评论 -
Unity实现边缘轮廓高亮
这一篇简单来分享一下Unity实现边缘轮廓高亮的效果,也就是outline,我们用到一个简单的插件,插件使用如下:1.导入插件 2.在主相机上添加outline effect脚本,然后会在maincamera下面自动生成一个outline camera,如下: 3.为所需要显示outline的物体添加outline脚本,如下:图中的color 0对应的是主相机上面的...原创 2018-09-29 10:25:00 · 16414 阅读 · 26 评论 -
Unity基于window平台的关键词识别
现在市面上很多语音识别的SDK,类似百度,讯飞等等,但是接这些SDK需要对接的文档还是蛮繁杂的,而且有部分功能还是收费的。其实,微软早就有基于window平台的语音识别模块,而且unity已经把这个模块集成到引擎中去了,这一篇讲一下unity是怎样实现关键词识别的,代码如下:using System;using System.Collections;using System.Collec...原创 2018-09-09 14:53:47 · 688 阅读 · 0 评论 -
unity lambda表达式的简单使用
这一篇简单讲述lambda的使用,代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;public class Test_delagate : MonoBehaviour{ public delegate void mydelagate(string s);...原创 2018-08-17 12:00:30 · 2138 阅读 · 0 评论 -
Unity中事件的简单使用
这一篇简单讲述事件的使用,代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;public class Test_delagate : MonoBehaviour{ public delegate void mydelagate(string s); ...原创 2018-08-17 11:56:40 · 3917 阅读 · 1 评论 -
Unity委托的简单实用
在unity中我们常用到委托,事件,lambda表达式等等,这一篇先简单的介绍委托,代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;public class Test_delagate : MonoBehaviour{ /// <summary>...原创 2018-08-17 11:49:03 · 447 阅读 · 0 评论 -
Unity判断手机网络是wifi或者4G
在开发网络模块的时候,往往会用到判断当前网络的代码,unity早已把它封装好,具体代码如下: void CheckNet() { switch (Application.internetReachability) { case NetworkReachability.NotReachable: ...原创 2018-08-08 10:09:29 · 1578 阅读 · 0 评论 -
Unity共同材质设置不同参数
在我们日常使用Unity中,经常会遇到一个问题,当你多个物体共用一个材质的时候,当你需要调其中一个物体的材质参数,你在设置面板修改一个物体的材质的参数,其他物体的也会跟着改变,这就违背了我们的需求,然而,对于这个问题,Unity也给出了解决方案,长话短说,直接上代码:using System.Collections;using System.Collections.Generic;usi...原创 2018-11-07 14:28:32 · 5859 阅读 · 0 评论 -
Unity网格合并插件MeshBaker的简单使用
在项目中,往往需要用到网格合并这个功能,无论是对场景的优化还是对DrawCall的减少,网格合并是必不可少的,而在Unity中针对这个最常用的插件就是MeshBaker,下面介绍它的简单使用:1.第一步: 2.第二步:3.第三步:选中物体,添加4.第四步,创建一个资源,名字自定义:5.第五步:6.第六步:对比合并后的DrawCall:合并...原创 2018-11-08 09:54:20 · 3730 阅读 · 0 评论 -
Unity3D 使用TextMeshPro中文字体
这一篇简单描述一下如果使用unity的一个强大的文字组件或者插件,开始。第一步:如果你是unity2018版本的话,在编辑器里面的AssetPackgeManager找到这个插件,没有的话就在搜索框里面搜索下载:如果你是低于2018的版本,可以在Asset Store商店下载,免费的。第二步:创建生成字体第三步:设置生成字体注意生成字体很吃电脑的配置,我使用的是常用...原创 2019-03-10 17:54:31 · 17457 阅读 · 7 评论 -
Unity动态下拉列表
有一种情况,当我们对所获取的下拉列表的信息内容是未知数量的时候,就需要动态生成下拉列表了,其实这个很简单,一看就懂了,开始吧,兄弟,首先,编写一个我们需要的json文件,很多时候信息由服务器获取,大多都是json的格式:{ "wuliao": ["红河", "椰树","五叶神"]}创建一个dropdown,添加一个脚本废话少说,直接上代码:using System.Co...原创 2019-02-26 20:37:19 · 2940 阅读 · 1 评论 -
Unity获取天气最稳定的接口
在使用了很多获取天气的接口后,发现下面这个是最稳定了(注意不要一天不要请求超过1千次),接口是:http://t.weather.sojson.com/api/weather/city/101280601注意最后的城市代码,根据相应的城市填入对应的代码,看看直接打开的接口: 在unity里面根据需要获取字段,例子,代码如下:using System.Collections...原创 2019-02-14 15:53:44 · 2516 阅读 · 2 评论 -
Unity 处理UGUI点击穿透问题
很多朋友在使用unity的时候,在使用鼠标控制视角旋转等等,当你点击在UI上面的时候,同样会触发视角旋转的事件,这就是典型的UI穿透的问题,下面为大家介绍一下怎么处理这个问题:新建一个gameObject,添加一个脚本,脚本内容如下: void Update() { if (EventSystem.current.IsPointerOverGameObject(...原创 2019-01-16 10:06:50 · 3461 阅读 · 0 评论 -
Unity 输入框Tab键切换
在我们日常使用输入框的时候,经常的习惯就是按Tab键就能切换到下一个输入框,然而Unity自带的输入框并没有这个设置,需要我们用代码手动操作,废话少说,直接上代码,挂载在输入框上面:using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSyst...原创 2019-01-09 10:03:15 · 1232 阅读 · 2 评论 -
Unity 2018预制件 Prefab更新的一些功能
随着Unity版本更新迭代,引擎更加趋向于人性化,这一篇来讲述一下2018版本对预制件(Prefab)的更新。1.预制件可编辑模式,创建一个新的预制件,拖拽到场景中,在视图中会明显看到有可编辑的按钮的,点击即进入预制模式:预制模式如下图:.注意Scene视图的左上角显示预制件的名称,左上角则是是否启动自动保存按钮,如果勾上,则你变化你的预制件,场景视图中的所有预制件也会随之变化...原创 2019-01-18 16:36:43 · 19097 阅读 · 1 评论 -
Unity 三维物体鼠标事件的使用
在使用unity的过程中,最常用的就是二维平面的鼠标事件,包括鼠标移入移出,鼠标点击等等事件,这一篇我们来讲一讲三维物体和三维UI的点击事件:来讲述一下三维物体的鼠标事件:第一步,在场景中创建一个cube,如果自定义的模型,必须添加碰撞器第二步:在主相机上面添加physics Raycaster组件:第三步:添加EventSystem最后一步:在Cube上面添加脚本...原创 2019-01-04 22:00:58 · 1515 阅读 · 0 评论 -
Unity多场景合并处理方案
最近做项目遇到一个问题,由于场景太大,分成多个库区,每个库区都是一个场景,摆放着各种设备。而且要求每个库区之间要实现无缝切换,不能有等待时间,很明显,切换库区的时候通过场景加载时走不通的。所以想到把所有库区放到一个场景来处理,但是这样的话烘焙场景就有问题了,由于场景太大,贴图数量模型数量太多,常常会烘焙失败。于是,心生一计,分场景烘焙,然后动态合并到一个场景中,这样每个场景的光照信息都得以保存,而...原创 2018-12-18 18:11:26 · 15232 阅读 · 2 评论