自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菰城茧的博客

分享Unity开发经验

  • 博客(47)
  • 资源 (13)
  • 收藏
  • 关注

原创 Unity中使用RenderTexture判断不规则形状按钮的点击

对于判断不规则形状的按钮的点击,一般使用的方式是:1. 打开按钮图片的“Read/Write Enabled”选项,并设置图片的img.alphaHitTestMinimumThreshold来判断alpha低于阈值的区域响应点击;2. 使用 PolygonCollider2D 并重写 Image 的 IsRaycastLocationValid 方法来判断;但是上述方法都有各自的缺点,第一种方法开启 Read/Write 之后会使图片的内存占用翻倍,并且不支持Crunched压缩图片格式,第二种方

2022-03-07 16:05:40 3589

原创 Unity3d URP 渲染管线和 Built in 渲染管线中 shader 的区别

URP使用HLSL语言;BIPR使用CG语言URP 的SubShader的Tags中需要添加"RenderPipeline" = “UniversalPipeline”URP使用单一的forward通道,多个光照通过数组形式传入;BIPR每一个光照跑一个pass合批流程不同,URP给每个不同的材质球建立持久化数据在gpu中,每一个shader变体一次合批,无论多少材质球;URP每一个材质球一次合批(下图)CBUFFER_START, CBUFFER_ENDURP需要定义取样器S..

2021-10-20 17:04:57 3932

原创 Unity3D URP中使用Render Feature实现后处理效果

unity urp 自带了一个后处理组件Volume,提供了不少后处理效果:除此之外,Render Feature 也可以实现类似的效果,并且自由度更高。使用方式是,在RenderPiplineAsset 中的Renderer中新增Feature,下面举例说明如何通过Feature增加一个KawaseBlur的后处理效果。首先写一个自定义的Feature脚本:using System.Collections.Generic;using UnityEngine;using UnityEngin

2021-10-20 15:30:22 7145

原创 Unity 中的指向功能(动画中的骨骼指向,任意轴指向目标)

unity中实现任意轴持续指向目标功能,可在动画系统中使用

2020-02-25 11:53:20 1129

转载 Unity中法线的实现细节

原文:https://blog.csdn.net/candycat1992/article/details/41605257写在前面写这篇的目的是为了总结我长期以来的混乱。虽然题目是“法线纹理的实现细节”,但其实我想讲的是如何在shader中编程正确使用法线进行光照计算。这里面最让人头大的就是各种矩阵运算和坐标系之间的转换,很容易因为坐标系错误而造成光照结果的错误。我们将要讨论以下几个问题:...

2018-12-20 20:34:20 2727

转载 Unity着色器常用关键字及属性

Shader这是shader的根命令SubShader这个是子着色器,一个Shader里面可以有多个SubShaderProperties属性块常用属性语法 说明name(“display name”,Range(min,max)=number) 定义一个范围值name(“display name”,Color=(number,number,number,number) 定义颜色...

2018-12-20 10:24:22 1106

原创 C#中的集合类整理

System.Collections: ArrayList:实现了IList接口的类,可以储存任意类型(object)的value,可索引。 BitArray:记录布尔值的数组,可以用bool[]或者int[]作为参数使用它的构造函数。可索引。 Queue:先进先出的队列,可以储存任意类型(object)的value,操作元素的方法有Enqueue,Dequeue和Peek。不可索引。 St

2017-02-09 16:52:41 370

翻译 简单理解和应用程序中的位运算符

位运算符在实际项目中使用的比较少,但是由于效率高,并且有助于理解程序底层,还有有理解的必要的,我之前一直都位运算符比较疑惑,做了些算法题之后渐渐理解了。 按位与:”&” 例子: 2 (0010) & 7 (0111) => 2 (0010) 按位异或 :”^” 例子: 2 (0010) ^ 7 (0111) => 5 (0101) 按位或: “|” 例子:2 (0010) | 7 (0

2017-02-07 16:11:22 258

转载 NGUI 通过shader设置图片置灰效果

NGUI中的Button几乎是最常用到的控件之一,并且可以组合各种组件(比如UIButtonColor,UIButtonOffset,UITweenxx),方便设置Button的各种状态下的属性,几乎可以满足我们的所有需求。但是对于当Button的isEnabled属性设置为false时,根据设置的disableColor属性设置不可点击时的颜色时,虽然我们设置的灰色,但并不是我们想象中的样子!

2017-01-12 10:18:45 574

原创 NGUI中计算UILabel中每个文字的具体位置

在游戏中有时候会碰到这样的需求,在Label中显示的文字中,部分文字需要有交互效果,比如点击地图位置文字可以自动寻路,点击聊天信息中的道具名称可以显示道具详情之类的。 解决这类问题,要么是将相应的文字做成button覆盖在文字上方,或者直接在对应的文字位置设置碰撞框,添加点击事件。不管如何都需要计算出label中一些特定文字的相对位置,才可以将碰撞框(或者表情之类的图片)放到正确的位置。

2017-01-11 12:16:18 2445

原创 NGUI聊天信息中插入动态表情

聊天系统中难免需要加入动态表情来增加表现力,而使用NGUI中自带的表情系统有些局限:一是只能使用静态表情,二是需要制作字体图集,不能使用动态图集。所以需要另外寻找方法实现聊天文字中插入动态表情的效果。 经过寻找,找到两种实现方法: 一种是继续使用NGUI的Emoji系统,然后同一个表情的每一帧作为一个符号记录到字体图集中,然后用代码动态更换文字,实现表情的动态变化,类似下图: 其中*1,*

2016-11-28 16:00:09 1100

原创 在Unity中通过NGUI UITexture制作动态聊天表情

游戏中的聊天系统一般都有发送动态表情的需求,而unity本身是不支持gif这种动态图片格式的,如果用unity自带的animation来制作帧动画是可以做出动态表情效果的,但是编辑animation帧(不管是动态生成还是提前制作好)都是比较麻烦的事情。而动态的修改UITexture中的UV坐标可以很方便的实现动图效果,还可以随时修改。 方法也很简单,制作一个prefab,挂上ngui的UIText

2016-11-11 17:29:01 2642

原创 java环境配置,命令行编译和生成jar包

安装: 在官网下载对应版本,并安装jdk。注意jdk安装有两次目录选择,分别是jre和jdk,最好安装在一起。 设置系统环境变量: 变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.8.0_65 变量名:Path 变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 变量名:CLASSPATH 变量值:.;%JAVA

2016-11-09 11:52:28 309

转载 (转)MVC,MVP 和 MVVM 的区别

原帖地址复杂的软件必须有清晰合理的架构,否则无法开发和维护。 MVC(Model-View-Controller)是最常见的软件架构之一,业界有着广泛应用。它本身很容易理解,但是要讲清楚,它与衍生的 MVP 和 MVVM 架构的区别就不容易了。

2016-10-14 17:37:14 238

原创 Unity3d 编写编辑器自定义插件(2)

EditorWindow:编辑器窗口类需要继承的基类public class EditorWindowExample : EditorWindow{ [MenuItem("Example/Open Window")] static void Init() { var window = GetWindow<EditorWindowExample>(); window.positi

2016-09-29 17:58:57 598

原创 Unity发布安卓包之后出现dll无法调用问题

今天出安装包出现了一个问题,在这里记录下。 游戏中使用了一个用.net 3.5写的dll,用来做前后端共享代码的,在unity编辑器上可以正常运行游戏,但是除了apk包之后在安卓机上运行就会出现TypeLoadException,无法读取dll中的类。 经过各种检查发现,原因是该dll的后缀是.Dll而不是.dll。这个大小写区分在pc上没有问题,但是打包到安卓之后就会造成无法识别,不知道是安卓

2016-09-13 15:31:48 1309

原创 Unity发布安卓包之后出现dll无法调用问题

今天出安装包出现了一个问题,在这里记录下。 游戏中使用了一个用.net 3.5写的dll,用来做前后端共享代码的,在unity编辑器上可以正常运行游戏,但是除了apk包之后在安卓机上运行就会出现TypeLoadException,无法读取dll中的类。 经过各种检查发现,原因是该dll的后缀是.Dll而不是.dll。这个大小写区分在pc上没有问题,但是打包到安卓之后就会造成无法识别,不知道是安卓

2016-09-13 15:31:05 3918

原创 ShaderForge简单实例2

本篇实例介绍下shaderforge官网演示的基本光照模型,在编辑器中的实现过程。 官网教程地址 (由于编辑器操作简单,这里就不再赘述了,直接放上编辑好的设置图)1.无遮挡的简单光照:(亮度颜色只和与光源的距离相关,不会被遮挡) 以下是这个shader的效果图: 2.带遮挡的简单光照效果: 以下是这个shader的效果图: 3.简单的法线贴图设置:4.简单的环境光设置:5.基础lambe

2016-09-09 11:15:21 953

原创 ShaderForge简单实例1

这篇文章主要用一个例子来展示shaderforge的原理。 这个例子来自shaderforge作者的视频教程,地址:官网教程如果要将一个贴图平铺到一个物体上,可以如图设置: 这里将UV参考线乘以一个固定值,作为贴图的UV参数,就将原来只有一个方框形状的贴图重复了8*8次。重复的次数就是作为参数的这个固定值。当然这里的UV参考线是和模型相关的。第二个例子,将两张贴图以一定的形式融合显示:

2016-09-02 11:02:14 1819

原创 Shader Forge 基础使用方法

shader forge 是一个基于Unity3d编辑器的插件,可以在unity assets store找到,是一款非常方便的,shader可视化编辑工具,可以通过拖拽编辑shader,并且可以实时看到效果。安装完shader forge插件之后,可以通过unity菜单栏的window->shader forge来打开shader forge编辑器面板

2016-08-26 11:46:17 7201 1

原创 Lua string.sub截取UTF8 中英混合字符

在使用Lua的过程中,经常会遇到需要截取字符串或者获得字符串真实长度的情况,而Lua自带的string.sub()对于中文字符会当作3个字符来处理,截取时会造成乱码。所以需要自己改造下,一下方法是我改编的SubString方法,经测试可以识别中英混合的字符串,不管是英文字符还是中文字符都当作一个字符来计算index,并且可以像系统的string.sub()一样使用负数来从末尾截取字符。

2016-08-17 17:13:45 10087 6

原创 Unity3d shader -- fixed function shader

这种shader种类简单,效果单一 主要包含: properties, material, lighting, settexture, pass(通道) 样式: SubShader{ [propertie] subshader{} [fallback] }

2016-06-24 17:45:03 342

原创 Unity Shader--简介

unity的shader大致分为如下几类: 最容易上手的Surface Shader,他只能用CG/HLSL语言来编写. 较为复杂但可以深度定制的Vertex Shader和Fragment Shader,可以选择Cg/HLSL,GLSL等等。1.Surface Shader:他可以大概的看成Unity预置的Shader模板,通常只理物体的表面表现(例如高光,反射等等)。正如Unity官方所说:

2016-06-16 15:11:02 575

原创 Lua系统函数

math: sin.asin.deg… 随机数:math.random()无参数时生成[0,1)的随机数,整数参数的话生成[1,参数]的整数随机数;math.randomseed(seed) 使用种子生成随机数table: t = {10, 20, 30} table.insert(t, 1, 15) t 就变成了{15, 10, 20, 30} 如果没有第二个参数,就自动添加到tabl

2016-05-06 15:14:34 683

原创 Lua面向对象

lua没有class的概念,但是可以直接继承其他对象 单继承: base = { a = 1 , funca = function() return " base " end} function base:new(o) local o = o or {} setmetatable(o, self) self.__index

2016-04-29 17:12:15 324

原创 Lua模块处理

简单的模块编写: complex = {} --这种是公共方法 function complex.new() ... end --这种是私有方法 local function inv() ... end return complex这就是一个完整的模块了,如果在其他地方使用这个模块可以用如下代码调用:

2016-04-29 17:06:16 281

原创 Lua垃圾回收和弱引用

lua有自动的内存管理机制,只需要创建对象,无需删除,当没有该对象的引用的时候(引用未nil),lua就会释放内存,但是有的时候会保存一些不必要的引用,为了让这种引用不影响垃圾回收,可以设置成弱引用。 强制垃圾回收的方法: collectgarbage() 将table设置成弱引用: setmetatable(table, {__mode = “kv”}) 这里就是将key和va

2016-04-29 17:04:16 1541

原创 Lua学习小记

lua中的各项小知识点

2016-04-22 17:40:23 373

原创 SublimeText 配置lua开发环境

由于现在开发的unity项目要用ulua做热更新,所以现在大部分的逻辑都需要用lua来写。 之前用惯了在vs中写C#,现在写起lua来觉得怎么着都不顺手,因为没有代码提示,没有跳转定义,没有语法错误提示,总之就是什么都没有,再加上lua是解释型语言,变量都没有类型,所以完全不知道自己写下去的是对是错,只有编译了启动游戏才能知道错在哪一行,实在是蛋疼。 所以我就想办法优化下lua的开发环境,选了半

2016-04-15 12:30:24 1503

原创 在游戏中实现语音聊天和语音转化成文字

如何在游戏中添加语音聊天功能,并且需要将语音转化成文本信息

2016-03-31 17:51:19 5248 3

原创 C#中List的浅复制和深复制

今天在游戏中碰到一个排序问题,就是有一个装备列表,是和服务器完全一致的,各种协议需要用到装备在这个列表中的序号。但是界面显示的时候需要按照各种方式来排序,但是不能在原来的列表上排序。因此需要复制出一个列表来,但是如何去复制这个列表,既能实现排序之后不会影响源列表,又要在排序之后,可以从原列表中找到装备的序号。所以顺便整理了下list的各种复制的区别。

2016-03-04 17:22:59 6382

原创 Unity3d 编写编辑器自定义插件(1)

Unity3D的运行时和编辑器类分别存储在不同的Assemblies里:UnityEngine和UnityEditor。由于编辑器插件是独立于游戏之外的,因此需要在assets文件夹下建立Editor目录来存放自定义插件的代码。需要注意的是Editor文件夹是被编辑器智能识别的,可以是其他文件夹的子文件夹,并且可以存在多个,这样就给我们安排文件结构提供了便利。

2016-02-19 18:00:03 1504

原创 在unity中序列化储存游戏元素

由于unity在运行时只能动态加载Resources目录下的文件,但是在有的情况下一些资源不能直接放在Resources目录下(比如UGUI的需要打包的散图)。如果需要动态加载在Resources目录外的游戏资源时,可以序列化资源的引用,将其储存在prefab上之后放在Resources目录下。

2016-01-28 12:34:47 2042

原创 UGUI Unity内建UI系统的认识和一些问题的解决方案

UGUI 的相关控件和简要使用说明

2016-01-14 17:47:14 2110

原创 C# 本地储存文本的几种方式

游戏中经常会有本地储存信息的需求,一般会使用xml和json两种格式,更简单的信息也会有txt直接存。 xml是比较繁琐的方式,因为每条信息都需要自己手动编写。上代码先: public void SaveRecordFiles() { XmlDoc = new XmlDocument(); XmlRoot = XmlDoc.CreateElement(

2015-12-28 17:04:14 2680

原创 Unity3D AI角色移动和自动跟随

AI角色按照一定的移动逻辑进行移动时,AI逻辑处理角色需要移动的位置,还需要移动逻辑实时处理角色的当前速度和角度。官方的示例中角色的移动是通过设置速度之后,依靠动画的位移来实现的,所以代码中只需要设置角色的速度和角度即可。Animator控件中的Apply Root Motion需要勾选,这样才能使用动画中的位移,而不需要在代码中更新角色坐标,勾选之后也不能通过代码更新了。其中的nav是绑定在角色身

2015-12-15 11:58:17 9876 2

转载 Unity3D 巡逻敌兵探测玩家逻辑实现

在一些射击,潜入,动作类游戏中,创关的时候总是会有敌兵守卫在某处,或者在一定范围内巡逻。这时候AI的逻辑就需要一个算法来判断何时攻击玩家或者何时发现玩家。一般的ARPG也许对此要求不高,只要玩家进入敌人的一定范围内(一个以敌人为中心的碰撞框)就开始攻击玩家。潜入类游戏还需要按照玩家发出的声音来搜索玩家。判断士兵是否听到声音需要符合两个条件,一个是有发声源,一个是发生源到士兵的距离在士兵的听觉范围内。

2015-12-15 11:08:56 4629 1

原创 Unity3D 摄像机平滑跟随角色

摄像机平滑跟随角色移动的解决方案

2015-12-15 10:43:57 2611

转载 Unity3D中继承MonoBehaviour的类中会被引擎自动调用的方法

在Unity中有很多方法是会被引擎在特定的时候自动调用的. 在VS里写这些方法的时候看不到它们被调用的次数,其实是引擎通过反射的方法调用的。 很多方法被调用都是有条件的,如OnTriggerEnter()就需要gameObject上有collider并且勾选上is trigger。 Update(): 当MonoBehaviour启用时,其Update在每一帧被调用。LateUpdate(

2015-12-10 15:54:47 1415

原创 Unity3D的射线检测Physics.Raycast

Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo); Camera.main.ScreenPointToRay()

2015-12-10 12:28:06 1145

unity 特效资源包 All In 1 Vfx Toolkit 1.4 资源商店

unity 特效资源包 All In 1 Vfx Toolkit 1.4 来自资源商店,如有侵权请联系我下架。 可以去资源商店查看官方演示,定制化程度较高可以满足很多特效需求。

2022-12-21

unity 资源包 精灵特效 shader :All In 1 Sprite Shader-3.43

unity 资源包 精灵特效 shader :All In 1 Sprite Shader 3.43 来自资源商店

2022-12-21

unity 资源包 Lowpoly Style Ultra Pack 1.21

低多面体风格的unity资源包,一个套装内包含 6 个资源包!亚洲、沙漠、林地、冬季、森林和热带岛屿,也可以利用随附的 6 个预先构建的庞大演示场景。 商店资源地址:https://assetstore.unity.com/packages/3d/environments/landscapes/lowpoly-style-ultra-pack-108275#description

2022-04-13

unity 资源/插件 Easy Mobile Pro-2.18.1

unity 插件 Easy Mobile Pro,整合了多种跨平台通用功能如广告,iap付费,系统通知,隐私协议,分享,调用手机原生api,gif等。 商店地址:https://assetstore.unity.com/packages/tools/integration/easy-mobile-pro-75476

2022-04-13

Magica Cloth 1.10.3.unitypackage

unity 动态骨骼,布料模拟系统 官方网站:https://magicasoft.jp/en/

2021-09-08

Magica Cloth 1.9.5 布料模拟,动态骨骼

unity 上非常优秀的一款动态骨骼,布料模拟插件,使用时需要导入burst和jobs插件。 官方文档:https://magicasoft.jp/en/magica-cloth-install-2/

2021-09-07

macOS App Cleaner &amp; Uninstaller 7.0.3

mac 上的系统清理,软件卸载工具。比cleanmymac更轻巧简单,不会后台启动。可以清理系统磁盘空间,卸载应用,中文界面。直接拖拽即可使用。

2020-09-28

Unity Mesh Baker 3.7.2

Unity Mesh Baker 3.7.2,2018版unity测试可用。用于多模型合并,可合并网格,贴图,光照贴图等,减少DC。

2019-03-28

unity shader forge 1.3.8 可用于2018版本U3D

shader forge 基于官方,实测可用于2018版unity,稳定可用。将解压后的文件夹直接放入项目中即可使用。

2019-03-27

Unity Psoft Body Deformation v1.1 3d柔体插件

Unity 柔体插件,能模拟3D物体的柔体效果,模拟果冻之类的物件。模拟物理糅体效果,把package直接拖入工程即可。

2018-11-08

Unity Obi Fluid 插件,模拟液体气体等流体的插件

效果很好的流体模拟插件,跨平台,效果高。 官网地址:http://obi.virtualmethodstudio.com/tutorials/

2018-11-08

unity 动态骨骼脚本 可以模拟动态布料,衣服,尾巴,胸部等抖动效果

unity 动态骨骼脚本 可以模拟布料,衣服,尾巴,胸部等的动态抖动效果,使用粒子来模拟部位各个部分的真实物理情况。

2018-11-06

Jello-Physics unity 模拟柔体 果冻效果插件

可以模拟可拖拽,可点击,可挤压的果冻之类的柔体效果的插件。unity package使用时拖入unity工程即可。

2018-11-06

2D Rope System v1.0 UNITY模拟绳子物理效果插件

模拟2D绳子效果,可以剪断绳子,可以挂载2D刚体,模拟割绳子之类的游戏效果。Unity package,直接拖入工程即可使用。

2018-11-06

unity模拟流动的水的液体物理效果

LIQUID PHYSICS物理模拟资源包,使用2D物理引擎,使用粒子来模拟水的效果,然后使用一整张图通过shader算法将粒子整合起来形成水的效果,可以实现类似小鳄鱼爱洗澡的水流效果,性能可以在手机端使用。资源包中还有蒸汽的模拟,可以实现液态水碰到岩浆变成蒸汽的效果。每种液体的颜色可以设置。

2018-10-31

空空如也

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

TA关注的人

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