合批和UI图集
项目文件 “MoveSnake” tips:打图集类似合批,UI 渲染以 Canvas 为单位,每个 canvas 带一个批次,然后根据 canvas 下的内容进行分批渲染,一个图集中的 Image 为一个批次,不在一个图集中或不在一个 canvas 下为另一个批次 脚本打包方式,找行为树教学 合批
网格,纹理,着色器和材质
网格纹理材质着色器
Unity渲染管线
渲染管线简介渲染管线是计算机图形学中用于将 3D 模型转换为 2D 图像的一系列处理步骤。这个过程从读取 3D 模型的数据开始,一直到将最终的像素颜色输出到屏幕上结束。概括来说,这些操作如下: 剔除 渲染 后期处理 这里把他们详细的分为几个阶段: 应用阶段(Application Stage) 在这一阶段,开发者通过编程控制模型的变换、材质和光照设置。 这里通常涉及到模型、视图和投影矩阵的设置,用于控制物体在世界中的位置、方向和大小,以及摄像机的位置和视角。 顶点着色(Vertex Shading) 顶点着色器接收原始顶点数据,执行一系列数学运算,如模型变换、光照计算等,来准备顶点供下一步处理。 这一步骤也常用于处理动画、皮肤和骨骼绑定。 光栅化(Rasterization) 光栅化阶段将 3D 空间中的多边形转换为 2D 屏幕上的像素。 这个过程中,每个多边形被分解成像素,然后这些像素被着色。 片段着色(Fragment Shading) 片段着色器(也称为像素着色器)为每个像素计算最终颜色,包括光照、纹理贴图、阴影和透明度等效果。 这一步骤负责产生最...
UGUI基础知识
Unity UI(用户界面)是 Unity 引擎中用于创建游戏和应用中的交互式界面的系统。它允许开发者设计、构建和管理 2D 和 3D 游戏内的菜单、HUD(抬头显示)、按钮、滑块、文本框等元素。 Unity UI 的主要组成部分Canvas(画布)Canvas 是所有 UI 元素的容器。你可以有多个 Canvas,每个 Canvas 可以有自己的渲染模式(Screen Space-Overlay, Screen Space-Camera 或 World Space)和相机设置。画布 使用 EventSystem 对象来协助消息系统。 元素绘制顺序画布中的 UI 元素按照它们在 Hierarchy 中显示的顺序绘制。如果两个 UI 元素重叠,则后一个元素将显示在前一个元素之上。 要更改元素的显示顺序,只需在 Hierarchy 中拖动元素进行重新排序。也可以通过在变换组件上使用以下方法从脚本控制顺序:SetAsFirstSibling、SetAsLastSibling 和 SetSiblingIndex。 渲染模式 Screen Space-Overlay:UI 元素直接渲染到屏...
ScreenToWorldPoint从屏幕坐标系转换到世界坐标系
最终代码private void OnMouseDrag(){ Vector3 mousePos = Input.mousePosition; mousePos.z = camera.WorldToScreenPoint(transform.position).z; Vector3 pos = Camera.main.ScreenToWorldPoint(mousePos); transform.position = pos;} 问题描述测试鼠标事件 OnMouseDrag()时,想让鼠标拖着游戏物体移动,最开始使用代码 private void OnMouseDrag(){ transform.position = Camera.main.ScreenToWorldPoint(Input.mousePosition);} 发现物体不见了,检查发现 Cube 位置变为了(0,1,-10) 分别输出 Input.mousePosition 和转换后的 Camera.main.ScreenToWorldPoin...
Unity输入系统基础
输入Unity 的输入系统是用于处理用户输入的核心模块,它使开发者能够捕获和响应来自键盘、鼠标、触摸屏、游戏手柄等各种输入设备的输入事件。Unity 的输入系统经历了几个重大版本的演变,目前主要有两种输入系统:经典输入系统和新的输入系统(Input System package)。 经典输入系统经典输入系统是 Unity 早期版本中内置的输入系统,它通过一系列的公共变量和函数来提供输入处理。这些变量和函数可以在脚本中直接使用,例如: Input.GetAxis:获取轴的值,常用于处理模拟输入,如游戏手柄的摇杆或键盘的方向键。 Input.GetButton:检查按钮是否被按下,适用于数字输入,如键盘按键或手柄按钮。 Input.GetMouseButton 和 Input.GetMouseButtonDown:分别用于检测鼠标按钮是否被按下或是否被按下了一帧。 Input.mousePosition:获取鼠标的屏幕坐标。 Input.touchCount 和 Input.GetTouch:用于处理触摸屏输入。 经典输入系统的优点是简单易用,但是它的功能相对有限,对于复杂的输入...
Unity 资源管理基础知识
各类型资源以及导入面板相关参数Unity 是一款强大的跨平台游戏开发引擎,它支持多种类型的资源,这些资源可以被用于构建游戏场景、动画、交互以及音效等。以下是一些常见的 Unity 资源类型及其用途: 纹理和图像 (Textures and Images)包括 BMP, TIF, TGA, JPG, PNG, PSD 等格式,用于材质、UI 元素或贴图。Inspector 面板: Texture Type Default: 这是用于所有纹理的最常用设置。此选项可用于访问大多数纹理导入属性。 Normal map: 选择此选项可将颜色通道转换为适合实时法线贴图的格式。 Editor GUI and Legacy GUI: 在任何 HUD 或 GUI 控件上使用纹理. Sprite(2D and UI): 在 2D 游戏中使用该纹理作为精灵. Cursor: 将纹理用作自定义游标. Cookie: 此选项可通过基本参数来设置纹理,从而将其用于场景光源的剪影. 光照贴图(Light map): 允许将纹理编码为特定格式(RGBM 或 dLDR,具体取决于平台)并通过后期处理...
搭建自己的博客
使用 Hexo 搭建博客什么是 HexoHexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他标记语言)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。 安装前提Node.js (Node.js 版本需不低于 10.13,建议使用 Node.js 12.0 及以上版本) Git 更新 Node.js 查看当前版本npm -v 更新到最新版npm install npm@latest -g 安装 Hexo打开 cmd 输入指令 $ npm install -g hexo-cli$ npm install -g hexo-cli@4.3.2安装记得打开管理员权限,不然可能安装失败 查看版本 $ hexo v需要安装对应版本的npm和hexo才能正常使用,对比文档 初始化 $ hexo init 安装主题1.在 主题网站 选择主题并跳转到 github 2.clone 仓库地址 这里选择”hexo-theme-butt...