摘要:
1 前言 本文梳理了笔者在学习 Unity3D 的过程中,对 Unity3D 的理解和学习路线,以帮助读者循序渐进地学习 Unity3D,后续笔者仍会持续更新 Unity3D 相关技术栈,并同步到本文中。 1.1 专栏文章特点 知识系统:专栏从资源管理、物理引擎、音视频、UGUI、UI Tool 阅读全文
posted @ 2023-03-21 20:54
little_fat_sheep
阅读(1101)
评论(0)
推荐(1)
摘要:
# 1 空间 ## 1.1 左右手坐标系及其法则 ### 1.1.1 左右手坐标系  左手坐标系与右手坐标系 Unity 局部空间、世界空间、裁剪空间 阅读全文
# 1 空间 ## 1.1 左右手坐标系及其法则 ### 1.1.1 左右手坐标系  左手坐标系与右手坐标系 Unity 局部空间、世界空间、裁剪空间 阅读全文
posted @ 2023-03-21 20:53
little_fat_sheep
阅读(686)
评论(0)
推荐(0)
摘要:
1 源码路径 Unity Shader 常量、变量、结构体、函数一般可以在 Unity Editor 安装目录下面的【Editor\Data\CGIncludes\UnityShader】目录下查看源码,主要源码文件如下: UnityCG.cginc UnityShaderUtilities.c 阅读全文
1 源码路径 Unity Shader 常量、变量、结构体、函数一般可以在 Unity Editor 安装目录下面的【Editor\Data\CGIncludes\UnityShader】目录下查看源码,主要源码文件如下: UnityCG.cginc UnityShaderUtilities.c 阅读全文
posted @ 2023-03-21 20:52
little_fat_sheep
阅读(600)
评论(0)
推荐(0)
摘要:
### 1 需求描述 本文将模拟激光灯(或碰撞)特效,详细需求如下: - 从鼠标位置发射屏幕射线,检测是否与物体发生碰撞 - 当与物体发生碰撞时,在物体表面覆盖一层激光灯(或碰撞)特效 特效,详细需求如下: - 从鼠标位置发射屏幕射线,检测是否与物体发生碰撞 - 当与物体发生碰撞时,在物体表面覆盖一层激光灯(或碰撞)特效 
评论(0)
推荐(0)
摘要:
1 前言 选中物体描边特效 中介绍了基于模板纹理模糊膨胀的描边方法,该方法实现了软描边,效果较好,但是为了得到模糊纹理,对屏幕像素进行了多次渲染,效率欠佳。本文将介绍另一种描边方法:基于模板测试和顶点膨胀的描边方法,该方法绘制的是硬描边,但效率较高。 基于顶点膨胀的描边方法都会遇到以下问题: 阅读全文
1 前言 选中物体描边特效 中介绍了基于模板纹理模糊膨胀的描边方法,该方法实现了软描边,效果较好,但是为了得到模糊纹理,对屏幕像素进行了多次渲染,效率欠佳。本文将介绍另一种描边方法:基于模板测试和顶点膨胀的描边方法,该方法绘制的是硬描边,但效率较高。 基于顶点膨胀的描边方法都会遇到以下问题: 阅读全文
posted @ 2023-03-21 11:16
little_fat_sheep
阅读(194)
评论(0)
推荐(0)
摘要:
1 前言 Unity3D 本地资源一般放在 Resources 目录下,但是 Resouces 文件夹的大小不能超过 2G,使用 AssetBundle 管理资源可以解决 Resources 文件夹受限问题。 本文代码资源见→基于AssetBundle实现资源热更新(更新版)。 Asse 阅读全文
1 前言 Unity3D 本地资源一般放在 Resources 目录下,但是 Resouces 文件夹的大小不能超过 2G,使用 AssetBundle 管理资源可以解决 Resources 文件夹受限问题。 本文代码资源见→基于AssetBundle实现资源热更新(更新版)。 Asse 阅读全文
posted @ 2023-03-21 09:56
little_fat_sheep
阅读(407)
评论(0)
推荐(0)
摘要:
1 需求描述 点选物体、框选物体、绘制外边框 中介绍了物体投影到屏幕上的二维外框绘制方法,本文将介绍物体外框线条盒子绘制方法。 内框:选中物体后,绘制物体的内框(紧贴物体、并与物体姿态一致的内框盒子) 外框:选中物体后,绘制物体的外框(紧贴物体、并与世界坐标系的朝向一致的外框盒子) 内框和外 阅读全文
1 需求描述 点选物体、框选物体、绘制外边框 中介绍了物体投影到屏幕上的二维外框绘制方法,本文将介绍物体外框线条盒子绘制方法。 内框:选中物体后,绘制物体的内框(紧贴物体、并与物体姿态一致的内框盒子) 外框:选中物体后,绘制物体的外框(紧贴物体、并与世界坐标系的朝向一致的外框盒子) 内框和外 阅读全文
posted @ 2023-03-21 09:54
little_fat_sheep
阅读(461)
评论(0)
推荐(0)
摘要:
1 需求描述 绘制物体外框线条盒子 中介绍了绘制物体外框长方体的方法,本文将介绍物体投影到屏幕上的二维外框绘制方法。 点选物体:点击物体,可以选中物体,按住 Ctrl 追加选中,选中的物体设置为红色。 框选物体:拖拽鼠标,屏幕上会出现滑动框,滑动框内的物体会被选中,选中的物体设置为红色。 绘制外 阅读全文
1 需求描述 绘制物体外框线条盒子 中介绍了绘制物体外框长方体的方法,本文将介绍物体投影到屏幕上的二维外框绘制方法。 点选物体:点击物体,可以选中物体,按住 Ctrl 追加选中,选中的物体设置为红色。 框选物体:拖拽鼠标,屏幕上会出现滑动框,滑动框内的物体会被选中,选中的物体设置为红色。 绘制外 阅读全文
posted @ 2023-03-21 09:54
little_fat_sheep
阅读(649)
评论(0)
推荐(0)
摘要:
1 前言 线段渲染器LineRenderer、拖尾TrailRenderer、绘制物体表面三角形网格从不同角度介绍了绘制线段的方法,本文再介绍一种新的绘制线段的方法:使用 GL 绘制线段。 Graphics Library(简称 GL),包含一系列类似 OpenGL 的 Immediate 阅读全文
1 前言 线段渲染器LineRenderer、拖尾TrailRenderer、绘制物体表面三角形网格从不同角度介绍了绘制线段的方法,本文再介绍一种新的绘制线段的方法:使用 GL 绘制线段。 Graphics Library(简称 GL),包含一系列类似 OpenGL 的 Immediate 阅读全文
posted @ 2023-03-21 09:54
little_fat_sheep
阅读(775)
评论(0)
推荐(0)
摘要:
1 仅绘制三角形网格 1)创建游戏对象 创建一个空对象,重命名为 Grid,并在其下添加需要绘制网格的对象,如下: 场景显示如下: 2)添加脚本组件 GridController.cs using System; using UnityEngine; public class G 阅读全文
1 仅绘制三角形网格 1)创建游戏对象 创建一个空对象,重命名为 Grid,并在其下添加需要绘制网格的对象,如下: 场景显示如下: 2)添加脚本组件 GridController.cs using System; using UnityEngine; public class G 阅读全文
posted @ 2023-03-21 09:53
little_fat_sheep
阅读(350)
评论(0)
推荐(0)
摘要:
### 1 原理 当一个圆在地面上沿直线匀速滚动时,圆上固定点的运动轨迹称为旋轮线(或摆线、圆滚线)。本文实现的卷轴特效使用了旋轮线相关理论。 以下是卷轴特效原理及公式推导,将屏幕坐标 (x) 映射到纹理坐标 (u)。 。本文实现的卷轴特效使用了旋轮线相关理论。 以下是卷轴特效原理及公式推导,将屏幕坐标 (x) 映射到纹理坐标 (u)。 
评论(0)
推荐(0)
摘要:
### 1 原理 [凸镜贴图](https://zhyan8.blog.csdn.net/article/details/123469983) 和 [渐变凸镜贴图](https://zhyan8.blog.csdn.net/article/details/123650387) 中介绍了使用 Op 阅读全文
### 1 原理 [凸镜贴图](https://zhyan8.blog.csdn.net/article/details/123469983) 和 [渐变凸镜贴图](https://zhyan8.blog.csdn.net/article/details/123650387) 中介绍了使用 Op 阅读全文
posted @ 2023-03-21 09:52
little_fat_sheep
阅读(153)
评论(0)
推荐(0)
摘要:
### 1 前言 描边的难点在于如何检测和识别边缘,当前实现描边特效的方法主要有以下几种: **1)基于顶点膨胀的描边方法** 在 SubShader 中开 2 个 Pass 渲染通道,第一个 Pass 通道渲染膨胀的顶点,即将顶点坐标沿着法线方向向外扩展,并使用纯色给扩展后的顶点着色, 阅读全文
### 1 前言 描边的难点在于如何检测和识别边缘,当前实现描边特效的方法主要有以下几种: **1)基于顶点膨胀的描边方法** 在 SubShader 中开 2 个 Pass 渲染通道,第一个 Pass 通道渲染膨胀的顶点,即将顶点坐标沿着法线方向向外扩展,并使用纯色给扩展后的顶点着色, 阅读全文
posted @ 2023-03-21 09:52
little_fat_sheep
阅读(973)
评论(0)
推荐(1)
摘要:
1 水波特效原理 水面特效 中基于 Shader Graph 实现了模拟水面特效,包含波纹、起伏、折射、泡沫等细节,本文将基于屏幕后处理实现环形水波特效。 水波特效属于 Unity3D 后处理特效,其原理是:对渲染后的纹理进行局部挤压和拉伸变换,即对局部 uv 坐标进行周期性的偏移运动,实现 阅读全文
1 水波特效原理 水面特效 中基于 Shader Graph 实现了模拟水面特效,包含波纹、起伏、折射、泡沫等细节,本文将基于屏幕后处理实现环形水波特效。 水波特效属于 Unity3D 后处理特效,其原理是:对渲染后的纹理进行局部挤压和拉伸变换,即对局部 uv 坐标进行周期性的偏移运动,实现 阅读全文
posted @ 2023-03-21 09:52
little_fat_sheep
阅读(456)
评论(0)
推荐(0)
摘要:
1 前言 场景缩放、平移、旋转有两种实现方案,一种是对场景中所有物体进行同步变换,另一种方案是对相机的位置和姿态进行变换。 对于方案一,如果所有物体都在同一个根对象下(其子对象或孙子对象),那么只需要对根对象施加变换就可以实现场景变换;如果有多个根对象,那就需要对所有根对象施加变换。该方案实 阅读全文
1 前言 场景缩放、平移、旋转有两种实现方案,一种是对场景中所有物体进行同步变换,另一种方案是对相机的位置和姿态进行变换。 对于方案一,如果所有物体都在同一个根对象下(其子对象或孙子对象),那么只需要对根对象施加变换就可以实现场景变换;如果有多个根对象,那就需要对所有根对象施加变换。该方案实 阅读全文
posted @ 2023-03-21 09:51
little_fat_sheep
阅读(1065)
评论(0)
推荐(0)
摘要:
1 简介 Photon 是一个泛用性的 ScoketServer 套装软件,可用于多人在线游戏、聊天室、大厅游戏,并同时支持 Windows、Unity3D、iOS、Android、Flash 等平台。Photon 包含两个部分,一部分是 Socket 服务器,另一部分是其针对各个平台编写的 S 阅读全文
1 简介 Photon 是一个泛用性的 ScoketServer 套装软件,可用于多人在线游戏、聊天室、大厅游戏,并同时支持 Windows、Unity3D、iOS、Android、Flash 等平台。Photon 包含两个部分,一部分是 Socket 服务器,另一部分是其针对各个平台编写的 S 阅读全文
posted @ 2023-03-21 09:51
little_fat_sheep
阅读(413)
评论(0)
推荐(0)
摘要:
1 前言 同步 Socket 通讯 中的 Accept、Connect、Receive 等方法会阻塞当前线程,当前线程必须等待这些方法执行完,才会继续往下执行,用户需要另开线程执行这些耗时方法,否则会阻塞主线程,导致 UI 卡顿。 异步 Socket 通讯中,通过 BeginAccept、E 阅读全文
1 前言 同步 Socket 通讯 中的 Accept、Connect、Receive 等方法会阻塞当前线程,当前线程必须等待这些方法执行完,才会继续往下执行,用户需要另开线程执行这些耗时方法,否则会阻塞主线程,导致 UI 卡顿。 异步 Socket 通讯中,通过 BeginAccept、E 阅读全文
posted @ 2023-03-21 09:51
little_fat_sheep
阅读(471)
评论(0)
推荐(0)
摘要:
### 1 前言 [固定管线着色器一](https://zhyan8.blog.csdn.net/article/details/126811503)、[固定管线着色器二](https://zhyan8.blog.csdn.net/article/details/126824063) 中介绍了 阅读全文
### 1 前言 [固定管线着色器一](https://zhyan8.blog.csdn.net/article/details/126811503)、[固定管线着色器二](https://zhyan8.blog.csdn.net/article/details/126824063) 中介绍了 阅读全文
posted @ 2023-03-21 09:50
little_fat_sheep
阅读(115)
评论(0)
推荐(0)
摘要:
### 1 前言 上文介绍了渲染管线、固定管线着色器和表面着色器,如下: - [渲染管线](https://zhyan8.blog.csdn.net/article/details/126715869) - [固定管线着色器一](https://zhyan8.blog.csdn.net/arti 阅读全文
### 1 前言 上文介绍了渲染管线、固定管线着色器和表面着色器,如下: - [渲染管线](https://zhyan8.blog.csdn.net/article/details/126715869) - [固定管线着色器一](https://zhyan8.blog.csdn.net/arti 阅读全文
posted @ 2023-03-21 09:50
little_fat_sheep
阅读(117)
评论(0)
推荐(0)
摘要:
1 前言 在多人对战网络游戏中,玩家之间一般不是直接通讯,而是与服务器通讯,服务器再把消息转发给其他玩家。网络通讯一般基于 Socket 实现,也有一些开源网络游戏框架,如:光子引擎 Photon,其底层仍然使用 Socket 实现网络通讯。 同步 Socket 是指 Socket 的部分方 阅读全文
1 前言 在多人对战网络游戏中,玩家之间一般不是直接通讯,而是与服务器通讯,服务器再把消息转发给其他玩家。网络通讯一般基于 Socket 实现,也有一些开源网络游戏框架,如:光子引擎 Photon,其底层仍然使用 Socket 实现网络通讯。 同步 Socket 是指 Socket 的部分方 阅读全文
posted @ 2023-03-21 09:50
little_fat_sheep
阅读(376)
评论(0)
推荐(0)
摘要:
### 1 前言 着色器(Shader)是渲染管线中最重要的一环,Unity3D 底层基于 OpenGL 实现,读者可以通过 [渲染管线](https://zhyan8.blog.csdn.net/article/details/126715869) 了解 Unity3D 渲染流程。 Ope 阅读全文
### 1 前言 着色器(Shader)是渲染管线中最重要的一环,Unity3D 底层基于 OpenGL 实现,读者可以通过 [渲染管线](https://zhyan8.blog.csdn.net/article/details/126715869) 了解 Unity3D 渲染流程。 Ope 阅读全文
posted @ 2023-03-21 09:48
little_fat_sheep
阅读(235)
评论(0)
推荐(0)
摘要:
### 1 前言 [固定管线着色器一](https://zhyan8.blog.csdn.net/article/details/126811503) 中介绍了 Shader 中外部属性、光照、贴图等基础用法,本文将进一步讲解固定管线着色器,介绍正面与反面剔除、Alpha 测试、深度测试、混合、 阅读全文
### 1 前言 [固定管线着色器一](https://zhyan8.blog.csdn.net/article/details/126811503) 中介绍了 Shader 中外部属性、光照、贴图等基础用法,本文将进一步讲解固定管线着色器,介绍正面与反面剔除、Alpha 测试、深度测试、混合、 阅读全文
posted @ 2023-03-21 09:48
little_fat_sheep
阅读(72)
评论(0)
推荐(0)
摘要:
### 1 简介 **1)协程概念** 协同程序(Coroutine)简称协程,是伴随主线程一起运行的程序片段,是一个能够暂停执行的函数,用于解决程序并行问题。协程是 C# 中的概念,由于 Unity3D 的渲染操作是基于帧实现的,使用线程(Thread)不便于控制,因此 Unity3D 选 阅读全文
### 1 简介 **1)协程概念** 协同程序(Coroutine)简称协程,是伴随主线程一起运行的程序片段,是一个能够暂停执行的函数,用于解决程序并行问题。协程是 C# 中的概念,由于 Unity3D 的渲染操作是基于帧实现的,使用线程(Thread)不便于控制,因此 Unity3D 选 阅读全文
posted @ 2023-03-21 09:48
little_fat_sheep
阅读(139)
评论(0)
推荐(0)
摘要:
1 简介 AudioSource组件中介绍了音频的播放,本文将介绍基于 VideoPlayer 组件实现视频播放。 VideoPlayer 属性面板如下: Source:视频源类型,有 2 种类型:Video Clip、URL; Video Clip:视频片段; Play On Awake: 阅读全文
1 简介 AudioSource组件中介绍了音频的播放,本文将介绍基于 VideoPlayer 组件实现视频播放。 VideoPlayer 属性面板如下: Source:视频源类型,有 2 种类型:Video Clip、URL; Video Clip:视频片段; Play On Awake: 阅读全文
posted @ 2023-03-21 09:47
little_fat_sheep
阅读(362)
评论(0)
推荐(0)
摘要:
1 需求实现 粒子系统ParticleSystem 中介绍了粒子初始化、粒子发射、发射器形状、渲染器、碰撞、子发射器、拖尾等粒子系统的基本用法,本节将基于粒子系统实现烟花特效。 实现需求如下(资源见→Unity3D烟花特效预设体文件): 粒子发射阶段,只有一个粒子(记为 Spindle 粒子 阅读全文
1 需求实现 粒子系统ParticleSystem 中介绍了粒子初始化、粒子发射、发射器形状、渲染器、碰撞、子发射器、拖尾等粒子系统的基本用法,本节将基于粒子系统实现烟花特效。 实现需求如下(资源见→Unity3D烟花特效预设体文件): 粒子发射阶段,只有一个粒子(记为 Spindle 粒子 阅读全文
posted @ 2023-03-21 09:46
little_fat_sheep
阅读(1081)
评论(0)
推荐(0)
摘要:
1 简介 拖尾(TrailRenderer)、线段渲染器(LineRenderer)、粒子系统(ParticleSystem)是 Unity3D 提供的三大特效,其中粒子系统的功能最为强大,特效也最炫酷,但操作也最复杂。粒子系统中,不断地有粒子生成和粒子消亡,一般而言,粒子消亡速率和生成速率保持 阅读全文
1 简介 拖尾(TrailRenderer)、线段渲染器(LineRenderer)、粒子系统(ParticleSystem)是 Unity3D 提供的三大特效,其中粒子系统的功能最为强大,特效也最炫酷,但操作也最复杂。粒子系统中,不断地有粒子生成和粒子消亡,一般而言,粒子消亡速率和生成速率保持 阅读全文
posted @ 2023-03-21 09:46
little_fat_sheep
阅读(1384)
评论(0)
推荐(0)
摘要:
1 LineRenderer 简介 LineRenderer 组件用于绘制线段,可以调整线段条数、端点坐标、颜色、宽度等属性,其属性面板如下: Materials:线段材质,最好设置为 Default-Line; Positions-Size:线段端点个数; Positions-Element: 阅读全文
1 LineRenderer 简介 LineRenderer 组件用于绘制线段,可以调整线段条数、端点坐标、颜色、宽度等属性,其属性面板如下: Materials:线段材质,最好设置为 Default-Line; Positions-Size:线段端点个数; Positions-Element: 阅读全文
posted @ 2023-03-21 09:45
little_fat_sheep
阅读(702)
评论(0)
推荐(0)
摘要:
1 TrailRenderer 简介 TrailRenderer 组件用于实现拖尾效果,可以调整拖尾颜色、时长、宽度等属性,其属性面板如下: Materials:拖尾材质,最好设置为 Default-Line; Time:拖尾时长; Width:拖尾宽度,可以是不等宽的; Color:拖尾颜色, 阅读全文
1 TrailRenderer 简介 TrailRenderer 组件用于实现拖尾效果,可以调整拖尾颜色、时长、宽度等属性,其属性面板如下: Materials:拖尾材质,最好设置为 Default-Line; Time:拖尾时长; Width:拖尾宽度,可以是不等宽的; Color:拖尾颜色, 阅读全文
posted @ 2023-03-21 00:08
little_fat_sheep
阅读(1022)
评论(0)
推荐(0)
摘要:
1 前言 导航系统中介绍了导航的基本用法,但是不能解决分离路面导航问题。如下图,胶囊体需要导航到立方体位置,但是路面不连续,烘焙(Bake)导航网格后,断开处也没有导航网格,因此,胶囊体导航到分离路面边界处就会停下来。 角色在分离路面边界处,存在两种行为:1. 水平跳,2. 往下跳或往上跳。 阅读全文
1 前言 导航系统中介绍了导航的基本用法,但是不能解决分离路面导航问题。如下图,胶囊体需要导航到立方体位置,但是路面不连续,烘焙(Bake)导航网格后,断开处也没有导航网格,因此,胶囊体导航到分离路面边界处就会停下来。 角色在分离路面边界处,存在两种行为:1. 水平跳,2. 往下跳或往上跳。 阅读全文
posted @ 2023-03-21 00:07
little_fat_sheep
阅读(323)
评论(0)
推荐(0)
摘要:
1 NavMeshObstacle组件 导航系统、分离路面导航中路障都是静态的,程序运行过程中烘焙的导航网格一直不变,本文将进一步讲解动态路障场景下导航的实现。 对于动态路障游戏对象,除了要设置 Navigation Static,还需要添加 NavMeshObstacle 组件,用于标记该 阅读全文
1 NavMeshObstacle组件 导航系统、分离路面导航中路障都是静态的,程序运行过程中烘焙的导航网格一直不变,本文将进一步讲解动态路障场景下导航的实现。 对于动态路障游戏对象,除了要设置 Navigation Static,还需要添加 NavMeshObstacle 组件,用于标记该 阅读全文
posted @ 2023-03-21 00:07
little_fat_sheep
阅读(345)
评论(0)
推荐(0)
摘要:
1 导航系统简介 导航系统用于智能避障并寻找目标物体,如:王者荣耀中,当玩家跑到敌方塔的攻击范围内,敌方塔就会发射火团攻击玩家,当玩家逃跑时,火团会智能跟随玩家,其中智能跟随就使用到了导航系统。 1)导航系统使用流程 将地面、路障等静态对象的 Static 属性设置为 Navigation 阅读全文
1 导航系统简介 导航系统用于智能避障并寻找目标物体,如:王者荣耀中,当玩家跑到敌方塔的攻击范围内,敌方塔就会发射火团攻击玩家,当玩家逃跑时,火团会智能跟随玩家,其中智能跟随就使用到了导航系统。 1)导航系统使用流程 将地面、路障等静态对象的 Static 属性设置为 Navigation 阅读全文
posted @ 2023-03-21 00:06
little_fat_sheep
阅读(384)
评论(0)
推荐(0)
摘要:
### 1 灯光简介 在 Hierarchy 窗口右键,选择 Light,再选择具体的灯光类型,在 Inspector 窗口查看灯光组件如下:  - T 阅读全文
### 1 灯光简介 在 Hierarchy 窗口右键,选择 Light,再选择具体的灯光类型,在 Inspector 窗口查看灯光组件如下:  - T 阅读全文
posted @ 2023-03-21 00:06
little_fat_sheep
阅读(472)
评论(0)
推荐(0)
摘要:
1 IK简介 2D动画、人体模型及动画、人物跟随鼠标位置中介绍了 Aniamtion、Animator、人体模型、人体骨骼、人体动画等基础知识及人体动画的应用,本文将进一步介绍 IK 动画。 反向运动学(Inverse kinematics,IK)反映的是一种由手部带到肩部的运动形式,在这个 阅读全文
1 IK简介 2D动画、人体模型及动画、人物跟随鼠标位置中介绍了 Aniamtion、Animator、人体模型、人体骨骼、人体动画等基础知识及人体动画的应用,本文将进一步介绍 IK 动画。 反向运动学(Inverse kinematics,IK)反映的是一种由手部带到肩部的运动形式,在这个 阅读全文
posted @ 2023-03-21 00:05
little_fat_sheep
阅读(464)
评论(0)
推荐(0)

浙公网安备 33010602011771号