自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (4)
  • 收藏
  • 关注

原创 Unity AI探测器

Unity AI探测器游戏中常常用到敌人检测玩家是否在扇形攻击区域内,同时还需要检测扇形的攻击区域是否被遮挡物遮挡并绘制出遮挡区域。小编写的该功能的思路是首先用mesh编程绘制出其扇形区域的mesh网格,最后用OnTriggerStay()函数检测该mesh collider下是否进来其他对象。效果如下:原理首先,我们需要了解什么是mesh编程。可以参考该文章:Unity网格编程篇(二) 非常详细的Mesh编程入门文章。了解之后其实该功能原理很简单了,就是从起点发射一条射线,通过碰撞检测找到其碰撞

2021-07-13 11:07:06 755 2

原创 Unity读写Excel表格数据

在项目研发时需要加载excel表来进行数据读取,将excel的动态库文件导入unity plugins文件夹中。具体代码如下:using Excel;using System;using System.Collections.Generic;using System.Data;using System.IO;using UnityEngine;public class ExcelManager{ /// <summary> /// 读取CSV文件中的所有数据

2020-12-06 14:28:05 1375

转载 Unity中使用委托/事件实现GameObject之间的通信

Unity中新API消息的发送只发生在当前游戏物体和父级游戏物体间的通信,当需要在多个游戏物体且不同层级之间要进行消息的发送时则满足不了需求,此时则可通过事件的方式进行事件的监听。具体参考网址如下:https://blog.csdn.net/cuit_xuchen/article/details/69789372...

2020-07-31 17:05:36 472

原创 Unity使用UnityWebRequest发送HTTP请求并处理返回结果

场景:公司最近项目需要对接http的后台服务器后发送请求并处理其返回结果,在使用WWW时发现新版本已经对该API弃用,于是使用unity新版的api:UnityWebRequest进行发送http协议的请求。遇到的问题:在使用UnityWebRequest.POST进行请求时,HTTP服务器那边总是会返回HTTP/1.1 500 Internal Server Error的错误,后来跟后台沟通后发现UnityWebRequest.POST使用的默认的请求头(也就是Content_Type)不对导致的。于

2020-05-16 15:48:55 10346 2

原创 Unity2019对于弃用WWW加载方式后的新替代的API的UnityWebRequest的使用

Unity2019对WWW弃用了,换成了新的API:UnityWebRequest。其使用方式也发生了很多改变,具体使用方法如下:1.加载图片:(对应API说明链接:点我)using UnityEngine;using UnityEngine.Networking;using System.Collections;public class MyBehaviour : MonoBe...

2019-06-27 18:46:14 11142 2

原创 Unity Shader入门教程(十一) :不透明物体的阴影

在计算阴影映射纹理时其中一种方法是:先把摄像机放置到光源的位置,然后按正常的渲染流程,即调用Base Pass和Additional Pass来更新深度信息,即得到阴影映射纹理。但这种方法会对性能造成一定的浪费,因为我们实际上仅仅需要深度信息而已,而Base Pass和Additional Pass中往往涉及很多复杂的光照模型计算。因此,Unity选择使用一个额外的Pass来专门更新光源的阴影映射...

2019-06-18 17:13:04 784

原创 Unity动态创建UI点击事件(不需要添加UIButton组件)

Unity中UGUI中绑定UI的按钮事件有4中方式,具体参考该文章:https://www.cnblogs.com/isayes/p/6370168.html而往往项目中UI的按钮事件比较多,例如拖拽,鼠标按下,鼠标抬起等等,一一创建并手动添加组件太麻烦,不够灵活。于是我自己写了个工具,在UI只有Image组件的情况下代码动态创建各类鼠标以及触摸点击事件的各类监听。具体用法如下图:其中...

2019-06-12 15:50:04 1555

原创 Unity Shader入门教程(十) :多光源的光照处理以及光照衰减

首先,我们来了解渲染路径。之前我们在代码中设置标签:该标签表示告诉Unity,该Pass使用前向渲染中的ForwardBase路径。而前向渲染路径还有一种路径叫ForwardAdd,分别对应了下文说到的Base Pass已经Addtional Pass。这里我们将讨论最常用的前向渲染路径,即ForwardBase和ForwardAdd。而Pass的LightMode标签还支持如下的渲染路径...

2019-06-11 16:39:06 4290 2

原创 Unity Shader入门教程(九) :开启深度写入的半透明效果

在上篇文章有讲到实现透明度混合时需要关闭深度写入。而为了不造成错误的排序效果,渲染引擎一般都会先对物体进行排序,再渲染。常用的方法如下:(对于上篇文章shader代码中使用的渲染队列Transparent)先渲染所有不透明物体,并开启他们的深度测试和深度写入; 把半透明物体按他们距离摄像机的远近进行排序,然后按照从后往前的顺序渲染这些半透明物体,并开启他们的深度测试,但关闭深度写入;其实这...

2019-06-05 11:27:53 2382 1

原创 Unity Shader入门教程(八) :透明以及半透明效果

在Unity中一般使用两种方式来实现透明效果,即透明度测试和透明度混合。透明度测试:使用透明度测试只会产生2种结果,要么完全透明,要么完全不透明。原因是只要一个片元的透明度不满足条件(一般是小于某个阈值),那么它对应的片元就会被舍弃。被舍弃的片元将不会再进行任何处理,也不会对颜色缓冲产生任何影响;否则,就会按照普通的不透明物体的处理方式来处理它,即进行深度测试,深度写入等。也就是说,透明度测试...

2019-06-04 18:41:32 1936

原创 Unity Shader入门教程(七) :纹理遮罩

纹理遮罩用处很多,简单来讲就是允许我们可以保护模型中的某些区域不受某些因素的影响。例如我们有时希望模型表面某些区域的反光强烈一些,而某些区域弱一些。为了得到更加细腻的结果,我们需要用一张遮罩纹理来控制该光照。还有一些情况就是某些模型需要多张纹理混合时,此时使用遮罩纹理可以控制如何混合这些纹理。具体流程为:通过采样得到遮罩纹理的纹素值,然后使用其中某个或者几个通道的值来与某种表面属性进行相乘。当...

2019-05-30 17:31:13 284

原创 Unity Shader入门教程(六) :渐变纹理

在了解了上篇教程后,实现渐变纹理就比较简单了。我们需要准备一张渐变图即可。渐变图的参考如下:需要注意的是,需要将该纹理的Wrap Mode设置为Clamp模式。这是因为在使用Repeat模式时在高光区域会产生一些黑点,如下这是由于浮点精度造成的,当我们使用fixed2(halfLambert,halfLambert)对渐变纹理进行纹理采样时,虽然理论上的值在[0,1],但可能会有1...

2019-05-30 11:44:50 575

原创 Unity Shader入门教程(五) :凹凸映射

凹凸映射就是使模型的纹理贴图看起来有凹凸不平的效果。一般主要有两种方式实现凹凸映射:高度纹理和法线纹理,但实际运用中一般结合这两种方式一起使用。高度纹理:用一张高度图实现凹凸映射。高度图中存储的是强度值,用于表现模型表面局部的海拔高度。因此,颜色越浅表明该位置的表面越向外凸起,而颜色越深表面该位置的表面越向里凹。这种方法的好处就是非常直观,但缺点是计算更加复杂,是通过计算像素的灰度值而得到的,...

2019-05-27 19:03:54 669

原创 Unity Shader入门教程(四) :单张的纹理贴图

首先我们需要了解Unity中纹理的属性。在Unity中导入一张图片并设置为纹理类型时,可以看到如下属性:Alpha Source栏预选值分别代表:InputTextureAlpha表示该纹理需要带透明通道;FromGrayScale表示依据灰度产生alpha通道Alpha Is Transparen :当alpha用于透明处理时,我们要勾上该选项,可以防止不透明边缘锯齿现象Wrap...

2019-05-22 15:45:46 1673

原创 Unity Shader入门教程(三) :实现逐顶点和逐像素的漫反射效果

在利用shader实现漫反射这种基本光照效果时,我们需要先知道漫反射的计算公式:其中Clight为光照的强度和颜色,Mdiffuse为材质的漫反射系数,n为表面法向量,I为光源的方向。max操作是防止n和I的点积出现负数,控制其结果在[0,1]范围内。而在unity shader中有一些内置的参数可以直接获取到这个公式所用到的变量。光照的强度和颜色可以用_LightColor0这个变量...

2019-02-21 14:59:34 1070

原创 Unity Shader入门教程(二) :实现顶点和片元着色器之间的通信

这篇文章将介绍Pass{}内的代码的编写。我们先看如下Unity Shader代码:(此文部分采自《unity shader入门精要》)关于顶点着色器和片元着色器不懂的学习可以自行搜索概念的意思,这里就不介绍了。Shader "Custom/myTest" { SubShader { Pass{ CGPROGRAM //申明顶...

2018-10-16 17:41:48 612

原创 U3D动态创建网格并设置纹理

unity可以利用MeshFilter组件并设置参数可以用代码进行网格的绘制。在这之前先了解下3d图形网格的流程,需要详细了解的可以参考这篇文章https://blog.csdn.net/jxw167/article/details/82012554,我这里就简单介绍下。所有的3d模型都是由网格组成,而网格又是由一个个三角形组成的。每个三角形由3个顶点构成,绘制时三角形按顺时针的顺序绘制时表示...

2018-10-10 17:08:53 1094

转载 Unity Shader入门教程(一)

转载链接如下:https://www.cnblogs.com/JackSamuel/tag/%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/Unity Shader是着色器,将纹理、网格信息输入,得到材质的一段程序,具体是个什么东西,还需要亲自实践才知道。一个Unity大神推荐我:如果要学计算机图形编程(游戏编程的基础),可以先学习UnityShader,往后再学习O...

2018-08-21 11:28:31 630

原创 UnityUGUI:ScrollView的Content不能根据实际Content下的游戏物体的多少自动改变Content的宽高问题

在实际使用UGUI开发的过程中发现一个UGUI的BUG:当Content下的子物体增加时,ScrollBar下的Handle滑条大小没有实时根据发生Content下的子物体数量发生变化。(在Hierarchy面板中右键创建UI->ScrollView,在子物体中找到Content,需要按行列布置的游戏物体都作为Content的子物体挂在Content下)(以开发垂直的ScrollVi...

2018-06-22 14:07:49 8318 3

原创 C#的反射机制

用C#在做服务器开发时,在处理服务器与客户端的响应时用到了C#的反射(通过字符串调用对应的函数)。具体代码如下:using System;using System.Collections.Generic;using System.Reflection;using UnityEngine;using Config;using LitJson;public class Json...

2018-06-20 11:25:05 217

转载 Unity3D研究院之将UI的点击事件渗透下去

雨松MOMO 2016年09月05日 于 雨松MOMO程序研究院 发表本文固定链接: http://www.xuanyusong.com/archives/4241处理UI还有3D模型的点击推荐使用UGUI的这套事件系统,因为使用起来比较简洁,不需要自己用代码来发送射线,并且可以很好的处理同时点击UI和3D模型上。1.给3D摄像机挂一个Physics Raycaster组件。Event Mask过...

2018-05-17 12:12:52 293

转载 mysql 远程连接数据库的二种方法

原文链接:https://www.cnblogs.com/skyWings/p/5952795.html一、连接远程数据库:1、显示密码如:MySQL 连接远程数据库(192.168.5.116),端口“3306”,用户名为“root”,密码“123456”C:/&gt;mysql -h 192.168.5.116 -P 3306 -u root -p1234562、隐藏密码如:MySQL 连接本...

2018-04-17 11:36:44 246

原创 使用C#对数据库进行增删改查操作(三)

运行环境:visual studio 2017 .NET窗口控制台程序。安装好数据库环境后找到C:\Program Files (x86)\MySQL\Connector NET 6.10\Assemblies\v4.5.2路径下的MySql.Data动态库文件,并导入C#工程。如果没有改文件夹,在安装MySQL时需勾选Connector C#安装程序。具体查询与插入的代码如下:using Sys...

2018-03-14 09:40:11 2684

原创 MySQL服务器的搭建(二)

MySQL下载链接:https://dev.mysql.com/downloads/installer/点击打开链接MySQL Workbench下载链接:https://dev.mysql.com/downloads/workbench/点击打开链接下载好后打开Workbench,点击“+”,弹出如下窗口:设置好后点击OK进入下一页面。注意:有时候会出现未连接的情况,如下图:此时需要打开MySQ...

2018-03-13 16:26:39 292

原创 Socket通信处理粘包和分包问题(一)

不明白Socket通信原理的同学可以参考该文章:https://www.cnblogs.com/zxtceq/p/7728543.html点击打开链接具体代码的编写参考该博客:https://www.cnblogs.com/sdyinfang/p/5519708.html点击打开链接粘包和分包:Socket通信时会对发送的字节数据进行分包和粘包处理,属于一种Socket内部的优化机制。1.粘包:当...

2018-03-11 16:10:37 3141

原创 UnityLua开发之Lua访问C#(五)

该代码是基于XLua,XLua插件下载链接:https://github.com/Tencent/xLua代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;using XLua;public class LuaCallCSharp : MonoBehaviour { ...

2018-03-06 23:21:14 338

原创 Unity中C#访问lua(四)

该代码是基于XLua,XLua插件下载链接:https://github.com/Tencent/xLua代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;using XLua;using System;public class CSharpCallLua : MonoBeh...

2018-03-06 23:19:43 447

原创 Unity使用C#自定义loader

该代码是基于XLua,XLua插件下载链接:https://github.com/Tencent/xLua代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;using XLua;public class CreateLoader : MonoBehaviour { p...

2018-03-06 23:17:38 553

原创 Unity使用C#通过自定义Loader加载指定目录的Lua脚本

该代码是基于XLua,XLua插件下载链接:https://github.com/Tencent/xLua代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;using XLua;public class CreateLoader : MonoBehaviour { p...

2018-03-06 23:16:38 842

原创 Unity中XLua开发之使用C#加载lua脚本

该代码是基于XLua,XLua插件下载链接:https://github.com/Tencent/xLua代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;using XLua;public class MyHelloWorld : MonoBehaviour { p...

2018-03-06 23:14:24 1239

原创 Unity 读写XML文件

小编自己写了一套读写XML文件的脚本,方便后面项目中的使用。需要的同学可以自行拿去,代码如下:/* 创建时间:2017/12/22 * * 编写: * * 介绍: 属于静态类,用于写入和读取XML文件. * * 注意: */using System.Collections;using System.Collections.Generic;using...

2018-03-06 23:10:52 608

原创 Unity利用Shader将指定颜色的纹理转换成透明

Shader代码如下:// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "Custom/Forground" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _Fo...

2018-03-06 23:07:57 2653

原创 Unity NGUI的拖动效果,并在鼠标松开时执行某个事件

代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;public class DragNGUI : MonoBehaviour { private bool m_isDrag = false; private bool m_temp_bool = false;...

2018-03-06 23:03:56 1557

原创 Unity解决dll库导入新项目时路径不存在的问题

代码如下:using UnityEngine;using System.Collections;using System;using System.IO;public class MyPluginClass{ static public void SetPluginPath() { Debug.Log("MyPluginClass: "...

2018-03-06 23:02:29 5495

原创 Unity几种加载AssetBundle的方式

AseetBundle分组策略:1,把经常更新的资源放在一个单独的包里面,跟不经常更新的包分离2,把需要同时加载的资源放在一个包里面3,可以把其他包共享的资源放在一个单独的包里面4,把一些需要同时加载的小资源打包成一个包5,如果对于一个同一个资源有两个版本,可以考虑通过后缀来区分  v1  v2  v3  unity3dv1 unity3dv21,Build的路径(随意只要是在硬盘上都可以的)2,...

2018-03-06 23:00:05 3035

原创 Unity中对于UGUI的RectTransform组件的理解

具体说明都在代码中,同学们可以直接拷过去配合测试理解,代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;public class API_RectTransform : MonoBehaviour { /// &lt;summary&gt; /// UGUI ...

2018-03-06 22:53:41 699

原创 Unity3D世界的坐标与小地图UI上对应坐标之间的转换

有些游戏开发中需要将某些元素通过图片的方式现实在UI界面上的小地图上,其中就涉及世界坐标与屏幕坐标之间的转换,小编自己写了其中转换过程的代码,方便新学者理解世界坐标与屏幕坐标。代码如下:/* 该函数作用:世界坐标转换为UI中在地图的图片上对应的坐标* * _WordMapRect为世界坐标下地图模型所占区域(x和y为世界坐标中地图模型左上角的值,宽和高分别为地图模型在世界坐标中的实际宽和高的值...

2018-03-06 22:50:08 3827 2

原创 GIS经纬度坐标转换为unity3D的世界坐标

GIS经纬度坐标代表现实生活中地球的经纬度坐标,具体代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;public class GisPointTo3DPoint : MonoBehaviour { public static GisPointTo3DPoint Ins...

2018-03-06 22:45:02 7316 4

原创 Unity相机的移动

由于项目中开发离不开相机视角的移动缩放等等,每次重新写比较麻烦,于是小编总结了一些移动效果较好一点的代码,分鼠标事件和触摸事件(EasyTouch)的2个版本。鼠标版代码如下:/* * 1.通过鼠标的操作对相机的控制 * * 2.操作方式: a.鼠标左键按下时拖动移动视角 * b.滑轮滚动对应视角拉进或拉远 * c.鼠标右键拖动进行视角的...

2018-03-06 22:41:28 4866 2

原创 Unity关于有些代码不能在除主线程外的线程使用的问题

小编在做与服务器互调的工作时发现给到的接口不能放在除unity主线程外的线程中使用,会报莫名的错误,而做后端的人员表示使用他们那个接口的方式需要挂在其他线程中不停调用的方式。于是通过各种渠道找到一种解决方案,具体代码如下:using System;using System.Collections;using System.Collections.Generic;using System.Th...

2018-03-06 22:37:50 2902 4

ExcelDll.rar

操作Excel表格数据的动态库文件操作Excel表格数据的动态库文件操作Excel表格数据的动态库文件

2020-12-06

unity 边缘发光插件

unity边缘发光插件,里面有Demo可自行学习

2017-09-11

unity AVProVideo视频播放插件 1.6.6最新版

unity的视频播放的插件,AVProVideo 1.6.6

2017-08-30

Vectrosity 5.4.2

unity 画线插件 Vectrosity5.4.2

2017-06-08

空空如也

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

TA关注的人

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