- 博客(30)
- 资源 (4)
- 收藏
- 关注
原创 Unity3D开发小贴士(十四)JsonUtility
Json是现在非常常用的数据格式,因为.Net的版本问题,所有没有很方便的方法可以直接在Unity里面使用C#官方的Json库,于是Unity3D自己提供了自己的一套Json工具——JsonUtility。
2016-11-28 22:10:23 8695
原创 C#语法小知识(二十一)ref与out
C#只能有一个返回值,当我们需要一个方法返回多个返回值的时候,可以为方法添加一个ref或者out修饰的参数。
2016-11-26 22:00:31 1149
原创 C#语法小知识(二十)params
C#中可以使用params来实现可变参数。params之前可以有任意多个参数,或者没有,params之后不可以有参数。一个方法声明中只允许有一个params关键字。
2016-11-25 22:37:24 8762
原创 Lua语法小贴士(十四)垃圾回收collectgarbage
Lua垃圾回收只有一个函数collectgarbage,第一个参数是字符串,代表操作类型,第二个参数只有某些操作有,是该操作所需要的参数。
2016-11-24 22:17:30 15276
原创 Lua语法小贴士(十三)可变参数与unpack
Lua支持可变参数,用...表示。另外Lua里面可以使用unpack函数将数组形式的table拆开。
2016-11-23 22:40:49 8003
原创 Lua语法小贴士(十二)loadstring和loadfile
Lua里面可以使用loadstring来加载一个字符串,字符串中包含了lua脚本。Lua里面还可以使用loadfile,可以加载一个lua文件。
2016-11-22 22:30:11 7276
原创 Unity3D开发小贴士(十三)Inspector中使用属性
我们知道Unity的组件类中,public的变量可以直接在Inspector中编辑,而其他访问级别的变量,可以为它们添加[SerializeField]特性来实现同样的效果。但是如果我们希望一个变量改变的时候调用一个属性(Property)的set访问器该怎样实现呢?
2016-11-21 22:05:43 3139
原创 Unity3D内置Shader私房课(四)Skybox天空盒(立方体版)
我们除了可以使用Unity3D默认的天空盒之外,还可以自定义天空盒。可以使用Skybox/6 Sided这个shader作为天空盒材质的着色器,它在内建Shader的
2016-11-20 22:45:03 8907
原创 Unity3D内置Shader私房课(三)Decal贴花
在Unity内建Shader的DefaultResourcesExtra的目录中,有一个很简单却很实用的shader——Decal。这是一个贴花着色器,可以在模型的表面添加一个贴花纹理。
2016-11-18 22:53:54 9261 1
原创 Unity3D内置Shader私房课(二)Soft Edge Unlit
在Unity内建Shader的DefaultResourcesExtra的目录中,可以看到AlphaTest-SoftEdgeUnlit.shader这个文件。可以用来渲染草、树和叶子。当绘制半透明的物体,例如草的时候,因为关闭了ZWrite,所以没有办法保证这些半透明物体正确的绘制顺序,就需要对它们进行深度排序。(参考【Unity Shaders】Alpha Test和Alpha Blending)而AlphaTest-SoftEdgeUnlit它将物体渲染分为了两个Pass,第一个Pass用来渲染
2016-11-17 22:15:22 3144
原创 Unity3D开发小贴士(十一)ToLua协同程序
Unity3D开发小贴士(二)协程(Coroutine)中介绍了在Unity3D中使用协同程序(C#),Lua语法小贴士(八)协同程序中介绍了使用Lua的协同程序。Lua的协同程序功能相对有限,所以ToLua(参考Unity3D开发小贴士(三)愉快的使用Lua开发)帮我们对Lua的协同程序进行了扩展。
2016-11-16 21:47:14 2995
原创 Unity3D开发小贴士(十)雾效
在Unity3D(5.3.4)中,点击Window->Lighting,切换到Scene页签,就可以选择打开雾效。
2016-11-15 22:47:23 3389 2
原创 Unity3D内置Shader私房课(一)视差Parallax
在Unity内建Shader的DefaultResourcesExtra的目录中,可以看到Normal-Parallax.shader这个文件。可以使用这个shader配合法线贴图创建视差效果来更好的表现对象表面的凹凸。
2016-11-14 22:37:52 6550
原创 Unity3D开发小贴士(九)序列化和反序列化Dictionary
我们知道在Unity里面Dictionary是不能被序列化和反序列化的,如果想要对它进行这两种操作,就需要借助于一个接口ISerializationCallbackReceiver。我们需要创建以Dictionary的派生类,并继承这个接口。
2016-11-13 22:12:17 7427 4
原创 Unity3D开发小贴士(七)Lua里扩展C#对象
Unity3D开发小贴士(六)Lua里调用C#扩展里介绍了如何在Lua里调用C#扩展,但是如果不希望使用C#的扩展,而是希望使用Lua扩展C#对象,那么就得使用到tolua.setpeer。
2016-11-11 23:08:18 3268
原创 Unity3D开发小贴士(六)Lua里调用C#扩展
C#语法小知识(八)扩展介绍过如何扩展C#的类型,Unity3D开发小贴士(五)Lua调用C#里介绍了如何使用ToLua插件在Lua脚本里调用C#代码。那么本文介绍一下如何在Lua里调用C#类型的扩展方法。
2016-11-10 21:50:00 3818
原创 Shader山下(二十四)相机深度纹理
相机可以生成深度和深度法线纹理,以及运动向量纹理(需要Unity5.4以上)。我们可以使用这些纹理来实现屏幕后处理效果。当你需要某种纹理的时候,可以为Camera的depthTextureMode添加以下变量:DepthTextureMode.Depth深度纹理DepthTextureMode.DepthNormals一个包含深度和视图空间法线的纹理
2016-11-09 21:48:30 4118
原创 Shader山下(二十三)GrabPass与UsePass
通道(Pass)是子着色器(SubShader)的组成部分,每个Pass代表对象被渲染一次。本文要介绍的是两种特殊的Pass:GrabPass和UsePass。GrabPass用于获取当前屏幕的纹理(Texture)。UsePass实际上不是Pass,而是调用其他的Pass的指令。
2016-11-08 21:45:57 4813
原创 Unity3D开发小贴士(五)Lua调用C#
Unity3D开发小贴士(三)愉快的使用Lua开发介绍了如何将ToLua插件添加到Unity项目中,Unity3D开发小贴士(四)调用Lua脚本讲解了如何在C#中调用Lua脚本。本文就介绍一下如何在Lua中调用C#。
2016-11-07 22:17:37 5782 1
原创 Unity3D开发小贴士(四)调用Lua脚本
Unity3D开发小贴士(三)愉快的使用Lua开发中介绍了如何在Unity上利用ToLua插件来进行lua脚本开发。那么本文就介绍一下如何在C#脚本中调用Lua。
2016-11-06 20:29:35 3504
原创 Lua语法小贴士(十一)debug库
Lua的调试库包含两种函数:自省函数和钩子。自省函数可以用来检查一个正在运行的程序的信息,而钩子可以跟踪程序的运行。
2016-11-05 23:50:19 8985
原创 Lua语法小贴士(十)全局变量
Lua里我们可以随时声明或调用全局变量。虽然很方便,但是往往会因为拼写错误而导致一些不容易发现的BUG。Lua可以使用_G来表示全局变量所在的表,这样我们就可以修改_G表的__index和__newindex两个元方法(参考Lua语法小贴士(五)元表与元方法)来限制全局变量的访问。
2016-11-04 22:44:09 1166
原创 Unity3D开发小贴士(三)愉快的使用Lua开发
Unity3D不支持脚本动态更新,所以我们需要使用Lua来完成这个工作。本文介绍如何使用ToLua和CodeIDE来开发可用于U3D的Lua脚本。
2016-11-03 21:38:28 5667
原创 Lua语法小贴士(八)协同程序
Lua在主线程之外还可以运行一个协同程序。可以通过coroutine的create方法创建一个协同程序,会在yield方法的地方暂停,然后调用resume方法时继续执行。通过使用协程可以把多个方法以可控的方式运行。
2016-11-01 22:33:52 1220
Unity3D合并Mesh
2016-09-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人