自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

setsuodu的博客

pied piper

  • 博客(49)
  • 资源 (5)
  • 收藏
  • 关注

原创 Unity随机小技巧

Color Random.ColorHSV() 颜色随机Vector3 Random.insideUnitCircle 圈内位置随机Vector3 Random.insideUnitSphere 球体内位置随机public class CircleRd : MonoBehaviour{ [SerializeField] GameObject prefab; [Rang...

2020-04-03 22:35:20 912

原创 UnityEditor面板中显示网页

写了了个Editor扩展插件,方便大家在Unity中访问我的博客,增加用户体验和沉浸感。public class WebViewEditorWindow : EditorWindow{ [MenuItem("博客/CSDN")] static void Open() { string Url = "http://blog.csdn.net/mseol";...

2020-02-20 09:11:36 852

原创 AssetBundle资源加密

AssetBundle资源加密前言测试资源资源加密打包资源解析加载反编译资源普通资源加密资源前言AssetBundle中无论是美术素材,还是关键的热更代码,一旦被不法分子破解,都会给项目带来不可估计的损失。这里介绍一下AssetBundle加解密使用流程。测试资源手动设置打上标签资源加密打包加密脚本using System;using System.IO;using Syst...

2020-02-17 08:46:08 1510

原创 Unity2018 Packages + npm 自定义包管理大揭秘!

简介Unity2018新增的功能 “包管理器”,相信很多文章都已经转载介绍过了。但是怎么看,里面就是一堆原本在AssetStore里的官方工具包。难道官方为了照顾中国开发者的网络,特地做个简化的AssetStore面板吗?仔细调研了一番,发现这其实是一个“巨大巨大超级超级给力的更新”。众所周知,用 node、python 等进行开发,就免不了 brew, npm, pip 一下。这些语言崛起的非...

2018-10-04 20:52:12 7386 8

原创 通过脚本添加视口

通过反射获取Unity程序集,编写Editor视窗。没有太多实际意义的小练习,扩展一下可以做成一个方便的编辑器配置工具。using System;using System.Reflection;using UnityEditor;public class Viewport : Editor{ [MenuItem("Assets/Add New Viewprot")] ...

2018-10-04 13:21:06 344 1

原创 打字机插件 Typeface Animator

Typeface Animator 是一个简单强大,又易用的uGUI打字机效果插件。你只需要添加该组件到Text对象上,设置一些参数。它能够通过曲线,控制Text的位置、旋转、缩放、透明度、颜色,并且能获取动画开始、完成时的回调。参数说明所有设置均在 Inspector 中列出,重点提下以下几个参数。Progress 范围[0-1]。相当于一个播放进度条,并且可以在编辑模式下拖动预览效...

2018-10-04 12:03:30 1048

原创 使用 ScriptableObject 作配置文件

ScriptableObject脚本化对象在unity项目中可以作为配置文件,也可以用来做存储,和xml等类似。因为是官方提供的数据类型,可视化编辑方面也十分优秀,使用频率还是非常高的。下面通过一个“多国语言配置”的例子,详细了解一下ScriptableObject。效果如图。Localization.cspublic class Localization : ScriptableObj...

2018-10-03 10:33:02 1636

原创 在Unity顶部显示手机状态栏(iOS/Android)

iOS设置plist,Status bar initially hidden = NO即可。Android创建一个空的activity,让unityPlayer依附于它。在unity中通过 Screen.fullScreen 控制untiy画面是否全屏显示。1.在unity场景中创建一个脚本,设置关闭全屏。void Start() { Screen.fullScreen...

2018-08-12 09:51:38 6734 3

原创 unity协程,频繁调用时,只执行最后一次

设计了一个延迟机制的扩展,用于让一个延迟执行的动作,在一定时间内只执行最后一次。知识点简单介绍一下,协程的停止方法 StopCoroutine。对于一个普通的协程// 定义IEnumerator AABB() { while(true) { // do sth. yield return null; }}// 调用StartCo...

2018-07-28 20:28:31 6874 1

原创 unity多场景加载与GameObject实例管理

使用LoadSceneMode.Additive,可以同时加载多个场景。但是并不是所有可以见元素都是可以直接调用的。如图,加载了scene02,激活后显示为粗体。 一些常用对象的说明:Directional Light 不对另一个场景中的物体有作用,需要在独立的场景中单独创建。EventSystem 只需要在一个场景中存在。Camera 可以看见另一个场景的物体。GameOb...

2018-07-16 10:21:53 13546 1

原创 unity3d使用Coroutines传递返回值(.NET 3.5)

一些必须通过异步处理,又需要赋值的情况下,可以用使用action委托来操作。一个简单的例子: public Texture2D texture2D; void Start() { StartCoroutine(LoadBundleTexAsync(value => texture2D = value, root, filename)); ...

2018-05-15 10:26:14 980

原创 Unity打包Xcode,自动配置

unity在2017版本,对xcode工程Team ID和plist基础配置已经做了原生集成,可以在PlayerSettings->OtherSettings中直接配置。Frameworks、三方库和资源的导入,还是可以在Editor中使用[PostProcessBuild]属性,进行自动化管理。 这里主要解释下TeamID的配置,因为不管使用哪种方法,还是有许多人反应无法成功地自动配...

2018-05-05 09:45:05 2271 1

原创 Unity相关IDE在Mac上的代码折叠

Preference/Text Editor/GeneralMonoDevelop (built-in)Visual Studio (Mac)

2018-05-04 10:21:10 309

原创 OpenCVForUnity使用Haar分类器检测人脸和眼睛

Github上有许多已经训练好的分类器,可以直接拿来试用。 void Start(){ //训练集路径 haarcascade_frontalface_default_xml_filepath = Application.dataPath + "/Cascades/haarcascade_frontalface_default.xml"; haarcascade...

2018-02-10 19:19:49 4423 12

原创 OpenCVSharp特征点匹配及全景拼接

之前连续写了一些列关于OpenCV在Unity平台的入门基础,这次增加难度,来一个特征提取和拼接的案例。由于OpenCVForUnity没有实现Stitcher的功能,转而使用OpenCVSharp。可以去github的官方项目里找最新的OpenCVSharp.dll文件,不过官方提供的是.Net4.6版本(没有尝试是否可以自行编译成.Net3.5)。那我们就先把Unity项目设置为4.6的框架。...

2018-02-08 12:37:26 10433 5

原创 OpenCVForUnity绘制直方图

这次案例涉及到的新要点有,直方图计算,直方图绘制,画线。为了演示方便,做了一张灰度图的直方图,聪明的小朋友可以尝试实现画一下RGB直方图。其实函数非常简单,关键是理解OpenCVForUnity封装后的数据类型,搞清楚这些,闭着眼睛往函数里填值就可以了。void Start(){ grayMat = Imgcodecs.imread(Application.dataPath + "/

2018-02-07 17:14:08 748 1

原创 OpenCVForUnity膨胀与腐蚀

膨胀与腐蚀属于图像的形态学范畴的基本转换函数。形态学通常用于寻找图像中的明显的极大、极小区域,以及求图像的梯度。膨胀 dilate膨胀是指将图像(srcMat)与核(kernel)进行卷积。/// /// 膨胀/// void OnDilate(){ dstMat = new Mat(); int ksize = 7; Mat kernel = new

2018-02-07 12:51:50 1182

原创 OpenCVForUnity掩码水印

代码public class roi : MonoBehaviour{ [SerializeField] private Image m_srcImage; Mat srcMat, logoMat; void Start() { srcMat = Imgcodecs.imread(Application.dataPath + "/Text...

2018-02-07 11:56:41 706

原创 OpenCVForUnity色度图

一个分支小任务,讲一讲ColorMap的使用。插件提供了13种固定的渐变色卡,Imgproc.applyColorMap(Mat src, Mat dst, int colormap) 的第三个参数取值范围只能是0-12。如果要使用自定义的色卡,需要使用Core.LUT(Mat src, Mat lut, Mat dst)函数。 * public const int COLORMAP_AU

2018-02-07 09:29:28 1076

原创 OpenCVForUnity图像反色

由于插件数据类型、API与c++版差异较大,这里需要花些功夫学习下Mat中像素的操作。细心的小朋友通过上一篇《锐化与模糊》中关于椒盐噪声的实现,可能已经学习到了具体的方法。//用一个byte[]类型byteArray容器,从mat中取像素。byte[] byteArray = new byte[dstMat.width() * dstMat.height()];Utils.copyFrom

2018-02-06 15:53:47 1715 1

原创 OpenCVForUnity模糊与锐化

今次展示OpenCVForUnity插件中,模糊与锐化的处理。演示了比较多不同的算子,代码量看起来比较多。先来搭建一个简单的调试场景,用Toggle切换,可以直观地比较效果。噪声// 椒盐噪声void OnSalt(bool value){ m_blurImage.enabled = true; if (!value) return; //这里仅写了单

2018-02-06 15:09:40 2562 2

原创 OpenCVForUnity边缘检测(梯度)与滤波

OpenCV中,和边缘检测相关的算子有索贝尔,拉普拉斯滤波,Canny,Scharr等,另外还有一些解决特定问题的算子。这次的实例,尝试使用多种算子,对图片进行边缘提取。public class gradient : MonoBehaviour{ [SerializeField] private Image sobelImage, laplaceImage, cannyImage

2018-02-05 16:11:07 2203 2

原创 OpenCVForUnity二值化和灰度化

随着csdn博客系统升级,尝试使用md写文章,感觉还不错。继续使用OpenCVForUnity处理图片,今次的效果是灰度化和二值化,当所有功能实现后,可能会做出一个unity版的美图秀秀。首先我们来确定一下两者的概念。二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。灰度化,在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,

2018-02-05 11:30:48 3271 3

原创 使用OpenCVForUnity拼接图片

沿着上一篇关于图片裁切反向操作。演示Core.hconcat()水平拼接, Core.vconcat()垂直拼接函数的使用。

2017-12-29 18:20:19 2491 9

原创 使用OpenCVForUnity分割图片

最近的一个需求,引申出对图片裁切、拼接、矫正相关的系列需求,不知不觉已经使用了4-5种方法。如unity的GetPixels32(),SetPixels32()有512*512的尺寸限制问题,如C#中的system.drawing有跨平台的问题等。最终感觉使用opencv是综合效果最好的一种选择。今次实例如图,把原图按中心十字裁切成4张新图,显示在4个新的Image上。using Sy

2017-12-29 14:03:46 3649

原创 在AR中制作一个RPG风格指南针

个人觉得这个设计相比游戏更适合AR,因为它设计简洁,占用屏幕空间小(AR中满屏的UI体验很差)。在游戏中显然不如小地图直观,但现实中的用户对方向感则有更大的需求。一下子找不到更好的图了,反正玩游戏的同学应该都知道说的是什么(后面写作标尺)。通过一个实例开始制作,可以沿用上一篇文章设置好的AR场景进一步开发。原先的Canvas作为背景层渲染视频用,会被三维物体遮挡。所以需要在在Hierarchy

2017-12-21 15:02:58 1496 2

原创 在AR中制作一个重力感应标志

AR/VR的到来,让我们越来越离不开处理各种sensor数据的工作。尤其是来自手机IMU的数据,都可以使用API获取到。我们所要做的就是认识这些数据,正确的应用给物体。本文主要通过一个简单式例,介绍一下基于slam的ar应用中,常见的地面检测的标志物的制作。如图,该标志物辅助用户在现实中,指定创建三维物体的位置。1. Setup所有AR应用中,至少有两个摄像机,用来渲染

2017-12-21 12:25:34 1511

原创 Unity使用Android系统剪贴板复制&粘贴

Unity3d开发的移动应用,默认只有在InputField输入文本时,可以调用系统剪贴板。如果有类似选中某个文本,复制其中内容的需求,就要使用原生插件来提供这个方法了。如:开发原生插件的流程应该已经有很多教程了,这个不再重复,直接贴Java代码。1. Java代码package com.company.product;import android.app.Fragment;...

2017-11-13 11:58:05 5215 7

原创 使用uGUI制作Android Material Button风格按钮特效

偶然看到一篇关于Android原生开发按钮特效的文章,发现这种效果在日常使用的许多app中普遍存在,于是思考了下在Unity3d uGUI下如何重现。http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1130/2084.html效果目标:1. While keep press the button, the

2017-08-10 10:11:42 1430

原创 让Unity3d 记住Keystore密码

正式版的android应用一般会进行应用签名。unity可以记住我们的keystore文件位置,但是每次启动时,密码会清空,即使每次输入123456也是十分费力的。我们知道unity中设置keystore是在BuildSetting -> PlayerSettings里面的,这样就可以找到相关API进行设置了。

2017-07-25 15:32:05 5866 3

原创 Unity事件系统实现uGUI Button长按

还在用Update计时器实现各种流程控制和状态判断吗?今次介绍一下使用UnityEvents实现uGUI的长按状态检测。效果案例是我们常见的微信长按弹出菜单。使用事件,首先需要添加引用。using UnityEngine;using UnityEngine.Events;using UnityEngine.EventSystems;在继承后面添加接口,用来获取UI状态。pu

2017-07-10 09:09:38 5302 6

原创 UGUI Text组件上动态显示Emoji

本文是对Github上关于Unity使用Emoji的说明和完善。https://github.com/mcraiha/Unity-UI-emoji

2017-06-27 12:44:28 5235 5

原创 移除Unity启动界面的项目历史

Unity使用过程中的一些软件配置都被记录在注册表中,如调整了一个窗口的大小,连接了一个设备,开启了一个项目。在windows平台上都可以在注册表里进行清理,使Unity的设置真正回到第一次安装时的状态。HKEY_CURRENT_USER\Software\Unity Technologies\Unity Editor 5.x在Mac平台上的位置则是/Users//Library/Pr

2017-06-14 09:45:39 3147 1

原创 Unity网络状态检查API

下载资源或使用其他强制联网的接口,需要先检查网络状态,UnityAPi提供了3种联网状态。//检查上网用的是wifi还是4G,还是没网public void CheckNetwork(){ switch (Application.internetReachability) { case NetworkReachability.NotReachable

2017-06-01 11:22:23 2347

原创 Unity3D通过PHP输出的JSON格式API

简介继续深入一下昨天写的《Unity3D通过PHP对MySQL执行增、删、改、查》。项目中通常是由后端提供API供前端使用,本文主要介绍后端通过查询MySQL到输出JSON格式API的过程。开始MySQL部分。依旧维持上节的配置。PHP部分。上节代码基础上,扩展一个action "show_json"。//查,并输出JSON if($_REQUE

2017-04-05 14:40:36 1092 1

原创 Unity3D通过PHP对MySQL执行增、删、改、查

我们使用Unity3D做数据库相关操作,通常最简便的是使用php做连接。所幸php和MySQL都不是这么难掌握,所以我们的前端应该尽可能了解这方面的知识。本文使用一个游戏分数提交的案例,介绍通过php对MySQL执行增、删、改、查分数的方法。在php脚本中会使用SQL语句,需要有一定掌握。

2017-04-04 15:18:55 3689 2

原创 让我们克隆PokémonGO一样的游戏 - 2、利用uGUI图形接口,泛型状态控制

制作效果示例:如图登陆画面中,有Text、Image、Button等不同类型的UI。如果仅以达成效果为目的,有许多种做法,比如动画K帧,或者写多个方法分别去控制不同组件。那在项目中,如何高效、统一地管理它们呢? 我们以图中fade效果为例。using UnityEngine;using UnityEngine.UI;public class UIFade : MonoBehavi

2017-02-28 14:01:04 296

原创 Unity在Editor模式下查看Shader动态效果

当我们写了一个动态的shader效果,在编辑器模式下查看它的效果,需要激活工具条上的Effect按钮。

2017-02-13 15:50:17 2425 1

原创 轻松反编译C#的DLL

dotPeek

2017-01-12 20:43:46 24559

原创 UnityEditor扩展 - 编辑器中的内置属性Attribute

UnityEditor扩展 - 编辑器中的内置属性Attribute

2017-01-12 11:05:55 4252 4

MaterialButton

uGUI实现MaterialButton风格按钮特效式例

2017-08-10

Unity事件系统实现长按

Unity事件系统实现长按

2017-07-10

Project List Unity Manager V5

Unity3D工程历史记录清理工具

2017-06-14

PokeClone_1

让我们克隆Pokémon go一样的游戏,随课附件

2016-12-05

Unity QueueExample

Unity Queue操作实例

2016-11-24

空空如也

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

TA关注的人

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