地形unity
【Unity3D】点选物体、框选物体、绘制外边框
1 需求描述 绘制物体外框线条盒子 中介绍了绘制物体外框长方体的方法,本文将介绍物体投影到屏幕上的二维外框绘制方法。 点选物体:点击物体,可以选中物体,按住 Ctrl 追加选中,选中的物体设置为红色。 框选物体:拖拽鼠标,屏幕上会出现滑动框,滑动框内的物体会被选中,选中的物体设置为红色。 绘制外 ......
【Unity3D】协同程序
1 简介 1)协程概念 协同程序(Coroutine)简称协程,是伴随主线程一起运行的程序片段,是一个能够暂停执行的函数,用于解决程序并行问题。协程是 C# 中的概念,由于 Unity3D 的渲染操作是基于帧实现的,使用线程(Thread)不便于控制,因此 Unity3D 选择使用协程实现并 ......
【Unity3D】VideoPlayer组件
1 简介 AudioSource组件中介绍了音频的播放,本文将介绍基于 VideoPlayer 组件实现视频播放。 VideoPlayer 属性面板如下: Source:视频源类型,有 2 种类型:Video Clip、URL; Video Clip:视频片段; Play On Awake: ......
【Unity3D】表面着色器
1 前言 固定管线着色器一、固定管线着色器二 中介绍了 ShaderLib 的基本用法,本文将接着讲解表面着色器(Surface Shader)的用法。固定管线着色器基于 ShaderLib 命令实现,表面着色器基于 CG 语言实现。目前主流的 Shader 编程语言主要有 GLSL、HLSL、 ......
【Unity3D】粒子系统ParticleSystem
1 简介 拖尾(TrailRenderer)、线段渲染器(LineRenderer)、粒子系统(ParticleSystem)是 Unity3D 提供的三大特效,其中粒子系统的功能最为强大,特效也最炫酷,但操作也最复杂。粒子系统中,不断地有粒子生成和粒子消亡,一般而言,粒子消亡速率和生成速率保持 ......
【Unity3D】同步Socket通讯
1 前言 在多人对战网络游戏中,玩家之间一般不是直接通讯,而是与服务器通讯,服务器再把消息转发给其他玩家。网络通讯一般基于 Socket 实现,也有一些开源网络游戏框架,如:光子引擎 Photon,其底层仍然使用 Socket 实现网络通讯。 同步 Socket 是指 Socket 的部分方 ......
【Unity3D】异步Socket通讯
1 前言 同步 Socket 通讯 中的 Accept、Connect、Receive 等方法会阻塞当前线程,当前线程必须等待这些方法执行完,才会继续往下执行,用户需要另开线程执行这些耗时方法,否则会阻塞主线程,导致 UI 卡顿。 异步 Socket 通讯中,通过 BeginAccept、E ......
【Unity3D】线段渲染器LineRenderer
1 LineRenderer 简介 LineRenderer 组件用于绘制线段,可以调整线段条数、端点坐标、颜色、宽度等属性,其属性面板如下: Materials:线段材质,最好设置为 Default-Line; Positions-Size:线段端点个数; Positions-Element: ......
【Unity3D】固定管线着色器一
1 前言 着色器(Shader)是渲染管线中最重要的一环,Unity3D 底层基于 OpenGL 实现,读者可以通过 渲染管线 了解 Unity3D 渲染流程。 OpenGL 1.x 为固定管线,2.x 之后才支持可编程管线,Unity3D 固定管线着色器使用 ShaderLab 语言实现。 ......
【Unity3D】固定管线着色器二
1 前言 固定管线着色器一 中介绍了 Shader 中外部属性、光照、贴图等基础用法,本文将进一步讲解固定管线着色器,介绍正面与反面剔除、Alpha 测试、深度测试、混合、渲染队列等用法。渲染管线相关理论知识详见→渲染管线。 2 正面与反面剔除 正面是指模型的表面,反面是指模型的内壁,一般而 ......
【Unity3D】基于粒子系统实现烟花特效
1 需求实现 粒子系统ParticleSystem 中介绍了粒子初始化、粒子发射、发射器形状、渲染器、碰撞、子发射器、拖尾等粒子系统的基本用法,本节将基于粒子系统实现烟花特效。 实现需求如下(资源见→Unity3D烟花特效预设体文件): 粒子发射阶段,只有一个粒子(记为 Spindle 粒子 ......
【Unity3D】顶点和片元着色器
1 前言 上文介绍了渲染管线、固定管线着色器和表面着色器,如下: 渲染管线 固定管线着色器一 固定管线着色器二 表面着色器 固定管线着色器通过命令方式实现光照和贴图等效果,表面着色器通过给 SurfaceOutput 赋值实现光照、贴图和法线贴图等效果,它们都不用关注光照算法是如何实现的,只 ......
Unity3D 小案例技巧06------Post processing 光效后期处理案例-路灯+烘培光
使用Unity2021编辑器 1.关闭默认光源 2.创建地面和路灯模型 3.在Cylinder02下创建Light >灯光Spot Light,再将光的方向调整到下方和光的强度设置为3 4.使用Cube搭建一个房子,给房子里放一个灯光照向窗户 烘培光操作:1.创建Area Light 2.调整光范围 ......
Revit 机电模型导入 Unity(一)
Revit 机电模型导入 Unity (一) 目前存在问题 1. Revit 机电模型导出带材质的模型到 Unity 2. Revit 机电模型颜色是通过过滤器(仅改变视图并未改变实际材质颜色)实现分类,导出带材质的模型并不能实际解决 3. 数据存储问题 目标预计实现 相同过滤器的管道一个材质、成组 ......
Unity Joint用法及案例
本篇文章主要讲解如何在Unity中使用Joint组件完成一些刚体物理之间的连接效果,并且讲解一个简单案例。 什么是Joint 官方文档介绍 Joint可以连接一个刚体与 另一个刚体 或世界空间某点,Joint可以通过施加力的方式来限制运动,joint中文翻译可以叫 约束。 在力学观点下,运动分为6个 ......
Unity JobSystem使用及技巧
什么是JobSystem 并行编程 在游戏开发过程中我们经常会遇到要处理大量数据计算的需求,因此为了充分发挥硬件的多核性能,我们会需要用到并行编程,多线程编程也是并行编程的一种。 线程是在进程内的,是共享进程内存的执行流,线程上下文切换的开销是相当高的,大概有2000的CPU Circle,同时会导 ......
【Unity 框架】 QFramework v1.0 使用指南 工具篇: 16. LiveCodingKit 写代码不用停止运行的利器 | Unity 游戏框架 | Unity 游戏开发 | Unity 独立游戏
我们在用 Unity 开发的时候,每次编写或修改一点代码就需要进行 停止运行->编写代码->等待编译->运行游戏。 而在很多情况下这个过程是一个比较耗神的过程,因为开发者需要等待,还需要动手操作。 在笔者体验过 GameMakerStudio 的 GMLive 插件后,发现不停止运行就可以直接查看代 ......