UNITY
【Unity3D】UI Toolkit元素
1 前言 UI Toolkit简介 中介绍了 UI Builder、样式属性、UQuery、Debugger,UI Toolkit容器 中介绍了 VisualElement、ScrollView、ListView、GroupBox 等容器,UI Toolkit样式选择器 中介绍了简单选择器、复杂 ......
从FrameDebugger看Unity渲染(一)
Unity如何渲染一个3D+2D的游戏画面,今天通过FrameDebugger来看下Unity内置渲染管线的渲染策略, 后续再出一些URP渲染管线相关的文章。 Unity 渲染场景的几个主要部分 Unity内置渲染管线是基于摄像机来进行渲染的,每个摄像机按照摄像机的渲染顺序来依次渲染,渲染完一个摄像 ......
Unity基于状态机的流程控制
我们做游戏的时候经常会有流程控制,流程控制的方法有很多,行为决策树,状态机等。本质差别都不大,就是把每一段执行逻辑做成一个一个的节点,根据条件执行某个节点,切换到某个节点。今天给大家分享一下基于状态机来做游戏流程的控制。 1 一个简单的状态机案例 我们先来拆解一个使用案例,通过这个案例让大家对状态机 ......
Unity 打包il2cpp模式时的常见问题分析
Unity 编辑器模式下是采用.net 虚拟机解释执行.net 代码,发布的时候有两种模式,一种是mono虚拟机模式,一种是il2cpp模式。由于iOS AppStore规定不允许使用虚拟机,所以发布到iOS,Unity采用了il2cpp技术,把IL(.net字节码) 的代码转成c++代码,然后再用 ......
Unity游戏开发中如何组织项目目录结构
组织好项目的目录结构,是维护项目的很重要的一个点,我们学习别人源码,了解别人的设计思路都是从目录结构开始,一个清晰的目录结构,对项目开发维护,项目管理来说非常的重要,目录维护的好,大家在一起工作很愉快,目录维护的不好,有可能会把项目搞的乱七八糟。今天我们一起来看看Unity架构师是如何维护自己的目录 ......
Unity 如何设计网络框架
在Unity框架设计中与游戏服务器对接的网络框架也是非常重要的一个模块,本文給大家分享如何来基于Unity来设计一个网络框架, 主要的讲解以下几个点: (1) TCP半包粘包, 长连接与短连接, IO阻塞; (2) Tcp Socket与UDP Socket 的技术方案; (3) Unity的序列化 ......
Unity Mesh切割算法详解
我们在开发游戏的时候经常会有一些特殊的游戏玩法等,需要涉及Mesh切割。比如3D切水果, 在地图的城墙上挖一个洞,今天给大家来分享一个Mesh切割的算法,帮助大家解决项目中需要用到的Mesh切割的问题。本文主要从一下几个方面来讲解Mesh切割。 (1) 如何接受玩家的触摸操作,生成切割面; (2) ......
Unity3D 如何制作带厚度的透明图片详解
Unity3D是一款功能强大的游戏开发引擎,可以实现各种复杂的游戏效果。本文将详细介绍如何使用Unity3D制作带厚度的透明图片,并提供代码实现。 对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。在Unity3D中,创建带厚 ......
Unity手机游戏发热发烫优化指南与技巧
很多小伙伴做完游戏后,发布到Android,运行,游戏很流畅,也不卡顿,但是跑一会游戏,手机就发热,发烫。客户提出需求,能否让它不发烫? 本文从以下3方面来分析手机发烫的问题,给大家提供一个解决此类问题的通用思路: (1) 手机发烫是如何引起的?为什么要解决发烫问题? (2) 如何定位手机发烫的问题 ......
最新Unity 如何打包发布到Android
Unity打包Android现在Unity Hub已经做的非常好了,可以直接下载对应Unity版本所对应得JDK, NDK, SDK,直接可以通过unity hub下载避免了,各种版本不同导致的编译问题,大大的降低了初学者的打包发布的难度,本文详细讲解Unity Android打包以及在打包中间需要 ......
如何在linux(Ubuntu)下安装unity(Unity engine游戏引擎)
如果直接从unity官网下载unityhub的deb包,直接安装有可能出现unityhub打不开/打开缓慢/无法登陆/无法申请密钥等问题。 正解:从Unity官方源下载unity 1.先添加unityhub的储存库: sudo sh -c 'echo "deb https://hub.unity3d ......
【Unity3D】UI Toolkit简介
1 前言 UI Toolkit 是一种基于 Web 技术的 GUI 框架,是为了解决 UGUI 效率问题而设计的新一代 UI 系统(UGUI 的介绍详见→UGUI概述)。与 UGUI 不同,UI Toolkit 没有采用 GameObject 的方式,而是参考了 Web 技术的 XML 和 CS ......
【Unity3D】UI Toolkit容器
1 前言 UI Toolkit简介 中介绍了 UI Builder、样式属性、UQuery、Debugger,UI Toolkit元素 中介绍了 Label、Button、TextField、Toggle、Radio Button、Slider、Progress Bar、Dropdown、Fol ......
Unity 常规用法
刚体 Rigidbody 控制游戏对象的物理行为 // 获取刚体属性 GetComponent<Rigidbody>(); 聚焦 双击、F键 窗口控制 ALT+鼠标左键 鼠标中键 鼠标右键 滑轮 点击方向键移动物体 E键调整角度 场景视野 透视视野、平行视野 世界坐标原点 小球设置0/0/0坐标 U ......
在Unity的Inspector面板显示一个按钮
在Unity的Inspector面板显示一个按钮 这个脚本应该放置Unity的Assets文件夹下的Editor文件夹下。 using UnityEngine; using UnityEditor; using System.Collections.Generic; namespace wyhToo ......
Unity DOTS中ECS核心架构详解
最近DOTS终于发布了正式的版本, 我们来分享一下DOTS中ECS的几个关键概念与结构,方便大家上手学习掌握Unity DOTS开发。 ECS中的World Unity DOTS ECS架构中所有的Entity都是被放到了World对象里面,每个Entity在World里面都有唯一的Id号。Unit ......
【Unity3D】水面特效
1 前言 水波特效 中通过屏幕后处理实现了环形水波效果,本文通过 Shader Graph 实现了模拟水面特效,包含以下特效细节。Shader Graph 基础知识详见→Shader Graph简介、Shader Graph节点、程序纹理简单应用。 深水区和浅水区颜色差异; 水面有波纹,并且在移 ......
【Unity3D】程序纹理简单应用
1 几何纹理应用 本文所有案例的完整资源详见→Unity3D程序纹理简单应用。 1.1 边框 1)边框子图 Border.shadersubgraph 说明:Any 节点用于判断输入向量中是否存在一个分量非零,Branch 节点根据输入的真假走不同的分支,详见→Shader Grap ......
Unity3D学习记录02——PloyBrush场景搭建
首先在Window->Package Manager里面搜索Poly Brush,下载后将URP的Shader样例导入 导入后Asset文件夹下会有Sample的文件夹,在菜单栏Tools->PolyBrush->PolyBrush Window打开窗口 这个窗口最上面的五个,第一个是用来调整地形高 ......
Unity3D学习记录01:URP渲染管线以及3D游戏场景设置
以下内容所使用的版本均为Unity2022.3 先在Window->Package Manager->Unity Registry里面搜索添加Universal RP Unity中,创建渲染管线的方式为Asset文件夹下右键Create->Readering->URP Asset(with Univ ......
【Unity3D】Renderer Feature简介
1 3D 项目迁移到 URP 项目后出现的问题 3D 项目迁移至 URP 项目后,会出现很多渲染问题,如:材质显示异常、GL 渲染不显示、多 Pass 渲染异常、屏幕后处理异常等问题。下面将针对这些问题给出一些简单的解决方案。 URP 官方教程和 API 详见→Universal RP 文档 ......
【Unity代码片段】Unity在Unity中显示帧率
在Unity中显示帧率
1.将脚本挂在于一个物体,
2.为FPS赋值一个UnityEngine.UI.Text text运行即可
FrameUpdata是帧数的在UI上的更新速度。 ......
Unity RectTransform中使用stretch模式时代码动态控制Left、Top、Right、Bottom
Unity RectTransform中使用stretch模式时代码动态控制Left、Top、Right、Bottom 对于屏幕进行适应的代码: var rect = panelObj.AddComponent<RectTransform>(); rect.anchorMin = Vector2.z ......
使用Git管理Unity项目
使用Git管理Unity项目 目录前置准备注册GitHub账号下载安装Git,进行基础的配置将自己的项目传到GITHUB 前置准备 注册GitHub账号 前往GitHub官网注册一个自己的账号,注意要开梯子进去。这些就不多说了 下载安装Git,进行基础的配置 1.前往Git官网下载安装git,安装期 ......
【Unity3D】花瓣特效
1 花瓣绘制原理 如下图是实现的花瓣特效效果,为方便描述,我们将每个红色的扁状长条称为花瓣,每个花瓣中心的绿点称为花蕊,花朵的正中心称为花心。 我们在 xOz 平面上绘制花朵,假设花心为 O 点,其世界坐标为 _Center, 花瓣个数为 _PetalNum,花瓣半长度和半宽度分别为 _Pe ......
【Unity3D】消融特效
1 前言 选中物体消融特效中基于 Shader 实现了消融特效,本文将基于 Shader Graph 实现消融特效,两者原理一样,只是表达方式不同,另外,选中物体消融特效中通过 discard 丢弃片元,本文通过 alpha 测试丢弃片元。 Shader Graph环境搭建、简单应用详见→S ......
【Unity3D】地面网格特效
1 前言 本文实现了地面网格特效,包含以下两种模式: 实时模式:网格线宽度和间距随相机的高度实时变化; 分段模式:将相机高度分段,网格线宽度和间距在每段中对应一个值。 本文完整资源见→Unity3D地面网格特效。 2 地面网格实现 SceneController.cs using Sys ......
【Unity3D】Shader Graph简介
1 Shader Graph 简介 Shader Graph 是 Unity 官方在 2018 年推出的 Shader 制作插件,是图形化的 Shader 制作工具,类似于 Blender 中的 Shader Editor 和 UE 中的 Material Editor,它使用流程图的形式表达顶 ......
【Unity3D】Cesium加载大地图
1 前言 Cesium 是一个地球可视化平台和工具链,具有数据切片、数据分发、三维可视等功能。 Cesium 支持 JS、Unity、Unreal、O3DE、Omniverse 等平台,框架如下。 Cesium 相关链接如下: Cesium 官网:https://cesium.com C ......
【Unity3D】伽马校正
1 伽马相关概念 1.1 人眼对亮度变化的感知 人眼对亮度变化的感知不是线性的,如下图,人眼对亮区的亮度变化不太敏感,对暗区的亮度变化较敏感。另外,我们可以想象一下,在一个黑暗的房间里,由 1 根蜡烛到 2 根蜡烛的变化,我们很容易感知到,但是由 100 根蜡烛到 101 根蜡烛的变化,我们就不 ......