底层unity

Unity 计算圆的切点

/// <summary> /// 计算过圆外一点的切点,在圆上的切点 /// </summary> /// <param name="center"></param> /// <param name="radius"></param> /// <param name="point"></param ......
切点 Unity

基于Unity Compute Shader实现Ray Tracing

本文主要介绍了如何利用Unity的Compute Shader实现照片级别的渲染器,并给出了渲染器的GitHub项目地址供大家学习。不少对Ray Tracing渲染感兴趣的朋友用了CUDA等工具开发,工作量相当大。作者直接使用大家较为熟悉的Unity,降低了工程上的开发成本,着重于Ray Traci ......
Compute Tracing Shader Unity Ray

Unity主程架构师应该如何学习,需要学习哪些知识点

很多小伙伴想进阶Unity主程,进阶Unity架构师,不知道要学哪些知识,今天给大家分下一个比较完整的知识体系,介绍一些有干货的博主与教程,给大家做参考。 1: 编程语言,数据结构与算法 (1) c#的基本语法与常用的机制:权限,继承,多态, virutal, override委托,协程,forea ......
知识点 架构 知识 Unity

Unity3D 如何基于addressable来做资源管理详解

前言 Unity3D是一款非常流行的游戏开发引擎,其强大的功能和易用性使其成为了众多游戏开发者的首选。在游戏开发中,资源管理是一个非常重要的方面,而Unity3D提供了一种名为Addressable的功能,可以帮助开发者更好地管理和加载游戏资源。本文将详细介绍如何基于Addressable来进行资源 ......

缺乏底层知识的空中楼阁之——HashMap

HashMap HashMap是基于哈希表对Map接口的实现 HashMap提供所有可选的映射操作,允许使用空键空值 new HashMap<>().put(null,null) 当存在多个线程同时写入HashMap时,可能会导致数据的不一致 HashMap的底层实现: loadFactor thr ......
空中楼阁 楼阁 底层 HashMap 知识

Unity DOTS系列之System中如何使用SystemAPI.Query迭代数据

最近DOTS发布了正式的版本, 我们来分享一下System中如何基于SystemAPI.Query来迭代World中的数据,方便大家上手学习掌握Unity DOTS开发。 SystemAPI.Query的使用 System有两种,一种是Unmanaged 的ISystem,一种是managed 的S ......
SystemAPI 数据 System Unity Query

Unity DOTS系列之System中如何使用SystemAPI.Query迭代数据

最近DOTS发布了正式的版本, 我们来分享一下System中如何基于SystemAPI.Query来迭代World中的数据,方便大家上手学习掌握Unity DOTS开发。 SystemAPI.Query的使用 System有两种,一种是Unmanaged 的ISystem,一种是managed 的S ......
SystemAPI 数据 System Unity Query

Unity 自定义Postprocess 景深和散景模糊

前言 本篇将介绍如何通过添加RenderFeature实现自定义的postprocess——散景模糊(Bokeh Blur)和景深 关于RenderFeature的基础可以看这篇https://www.cnblogs.com/chenglixue/p/17816447.html 景深 定义:聚焦清晰 ......
景深 Postprocess Unity

Unity2022.3 代码挂载的小BUG

在2022.3版本中,我先在DialogueManager脚本声明一个StoryData的对象 然后在名为DialogueManager的空物体上挂载两个脚本,并把StoryData脚本给到DialogueManager实例化的对象 在笔者看来,这种应该没什么问题,符合逻辑,此时运行游戏也没用任何问 ......
代码 2022.3 Unity 2022 BUG

Unity 格子工具

using UnityEditor; using UnityEngine; public class CustomGridWindow3 : EditorWindow { private Texture2D customBackgroundTexture; private Vector2 gridS ......
格子 工具 Unity

Unity 编辑器UI 杂记

用 rootVisualElement 方法绘制按钮和用 GUILayout.Button 绘制按钮混用的案例 using System.Collections; using System.Collections.Generic; using NUnit.Framework; using Unity ......
杂记 编辑器 Unity

Unity HybridCLR(wolong)/huatuo系列

Lua,ILRuntime, HybridCLR(wolong),huatuo热更对比分析 这两年,各种Unity热更新方案如雨后春笋般出来了,今天来写篇文章来对比一下Unity各大热更新方案的优缺点。目前主流的Unity热更新的方案有: Lua系解决方案: 内置一个Lua虚拟机,做好UnityEn ......
HybridCLR wolong huatuo Unity

最新Unity 如何打包发布到Android

Unity打包Android现在Unity Hub已经做的非常好了,可以直接下载对应Unity版本所对应得JDK, NDK, SDK,直接可以通过unity hub下载避免了,各种版本不同导致的编译问题,大大的降低了初学者的打包发布的难度,本文详细讲解Unity Android打包以及在打包中间需要 ......
Android Unity

Unity项目开发中如何做资源加密

Unity的游戏很容易被人反编译出来,然后再重新打包发布,把自己辛辛苦苦开发的游戏,抄写的一丝不挂。很多项目要求要做好资源加密,Unity中如何做好资源加密呢?本文給大家分享加密算法+资源打包整合思路: (1) 游戏资源加密如何选择加密算法; (2) Assetsbundle资源包的加密与解密; 游 ......
项目开发 项目 资源 Unity

Unity架构师必备的开源库,让你3天搭建商用游戏框架

现在Unity的相关技术已经都非常常熟了,如果你的技术能力与阅历够,搭建一个商用的游戏框架,你只需要3天的时间。今天给大家分享一个Unity老鸟3天能搭建一个自己的商用框架的几个必备的开源库,方便大家学习与使用,同时学习这些有前途的开源库也能让你在公司里面游刃有余。 1: 搭建商用Unity框架必须 ......
商用 架构 框架 Unity

UNITY---huatuo,革命性的热更新解决方案

最近huatuo(华佗)热更新解决方案火爆了unity开发圈,起初我觉得热更新嘛,不就是内置一个脚本解释器+脚本语言开发,如xLua, ILRuntime, puerts。Huatuo又能玩出什么花样,凭什么会这么NB,引起了那么多程序员的关注与称赞呢?带着这些问题我详细的看了huatuo的资料,阅 ......
革命性 解决方案 方案 huatuo UNITY

Unity UGUI 开发规范

今天给大家分享Unity UI开发相关的一些编码和规范,有了这些指导规范,帮助你的项目获得更好的性能,少走弯路。Unity GUI(也被称为UGUI)经常是项目性能问题的来源。 考虑使用多分辨率和宽高比 大部分情况下,我们一套UI,能基本全部适配好,Unity UI让建立一个可以适应不同分辨率和宽高 ......
Unity UGUI

从FrameDebugger看Unity渲染

Unity如何渲染一个3D+2D的游戏画面,今天通过FrameDebugger来看下Unity内置渲染管线的渲染策略, 后续再出一些URP渲染管线相关的文章。 Unity 渲染场景的几个主要部分 Unity内置渲染管线是基于摄像机来进行渲染的,每个摄像机按照摄像机的渲染顺序来依次渲染,渲染完一个摄像 ......
FrameDebugger Unity

Unity 搭建ILRuntime开发环境

Unity热更新目前主流的方案有: Lua, ILRuntime, puerts, huatuo方案。前两个大家都比较熟悉了,puerts 是基于TypeScript开发的热更新,huatuo是基于C#的方案。后两个大家会比较陌生。本系列分享基于ILRuntime来做热更新。 ILRuntime热更 ......
ILRuntime 环境 Unity

Unity性能调优技术集锦

性能调优,一直是游戏上线之前的很重要的一个环节, 游戏帧率过低,手机发烫, 低端机上跑不起来等, 这些都需要来做优化,今天我们来给大家分享Unity做性能调优的常用技术手段。 性能调优的指导思想 接触过很多刚做性能调优的小伙伴,他们做性能调优最大的问题就是缺乏一个做性能优化的指导思想, 导致很多想法 ......
集锦 性能 Unity 技术

Unity 程序员性能优化指南

Unity性能优化是面试的时候经常被问道的一些内容,今天给大家分享一些常用的Unity的优化技巧和思路,方便大家遇到问题时候参考与学习。 包体大小优化 游戏的安装包体大小对于游戏开发而言非常重要,因为发布后这些包都会上传到渠道或商店让用户下载,包体越小用户下载的时间就越少,如果一个包体过大,可能导致 ......
程序员 性能 指南 程序 Unity

Unity程序员要注意的编码规范

Unity程序员如何写好代码,写代码的过程中要注意的哪些些点,今天给大家分享一些经验规则,通过遵守这些规则作出明智的架构决策,确保更高的团队开发效率和稳定的代码。 避免抽象类 我们在开发中经常喜欢抽象,其实抽象得过程中往往会产生设计过度和抽象过度,而这些抽象得代码可能会令人难以理解,让人不容易看出整 ......
程序员 编码 程序 Unity

Unity 自定义Postprocess Kawase Blur

前言 本篇将介绍如何通过添加RenderFeature实现自定义的postprocess——KawaseBlur 关于RenderFeature的基础可以看这篇https://www.cnblogs.com/chenglixue/p/17816447.html KawaseBlur介绍 因为毛神对于 ......
Postprocess Kawase Unity Blur

Unity程序员如何把控项目性能

作为一个主程,应该如何把控控游戏项目的质量,游戏项目的性能。在今天的文章中我将会给大家分享一些我的项目经验,希望能帮助大家顺利带好自己的游戏项目,转型为优秀的技术管理者。 1 从项目管理的角度来把控项目性能 医学里面有句名言, 治病最好的方式是防范于未然, 做项目把控项目的性能问题和稳定性也是一样的 ......
程序员 性能 程序 项目 Unity

Unity 自定义Postprocess BSC明度饱和度对比度

前言 本篇将介绍如何通过添加RenderFeature实现自定义的postprocess——调整屏幕的明度、饱和度、对比度(以下统称BSC) 关于RenderFeature的基础可以看这篇https://www.cnblogs.com/chenglixue/p/17816447.html Shade ......
饱和度 对比度 Postprocess Unity BSC

Unity 自定义Postprocess 最优秀的模糊算法 Dual Blur

前言 本篇将介绍如何通过添加RenderFeature实现自定义的postprocess——Dual Blur 关于RenderFeature的基础可以看这篇https://www.cnblogs.com/chenglixue/p/17816447.html Dual Blur介绍 因为毛神对于十大 ......
算法 Postprocess Unity Dual Blur

Unity游戏排行榜制作与性能优化

游戏排行榜是一个很重要的功能,在弱联网的单机游戏与网络游戏中排行榜都是非常重要的,今天我们来详细的讲解游戏排行榜的制作方案,主要有4个点: (1) 游戏排行榜排序算法核心算法实现; (2) 游戏排行服务器如何制作; (3) Unity客户端如何对接与请求排行榜数据; (4) Unity如何优化排行榜 ......
性能 排行榜 Unity

Unity ECS 内存分配器原理详解

ECS 为什么会高效,性能好,Entity的内存布局与分配就是非常重要的部分,今天我们一起来分析一下Unity ECS 架构里面如何来做高效的内存分配器。这种思路也可以给我们做内存分配提供很好的一个思路。 1: ECS 里面基本的一些概念 Unity ECS框架里面有几个重要的概念: Entity, ......
分配器 原理 内存 Unity ECS

Unity 自定义Postprocess

前言 虽然Untiy 提供了不少postprocess功能,但这些功能是固定的,没法修改,这让我很不舒服。本文将介绍如果通过Render Feature来实现自定义PostProcess——Box Blur 测试环境 Unity 2021.3.32 Win 10 JetBrains Rider 20 ......
Postprocess Unity

Unity中国全面支持OpenHarmony游戏开发,多款游戏率先完成适配

近日,Unity中国宣布团结引擎正式发布,已全面支持OpenHarmony游戏开发。华为游戏中心将携手Unity中国共同推进游戏技术突破和创新成果转化,拓展更多游戏新场景,为用户带来多元的游戏玩法和交互体验,为游戏产业注入新活力。 团结引擎是Unity中国融入了国内本土用户洞察和积累的经验,专为国内 ......
OpenHarmony Unity