自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 Unity DOTS1.0(9) Struct Change

Struct Change概念:一些引发了unity重新排列chunk内存,改变了chunk数据内容的一些操作,叫做structural changes。这个操作消耗很大,并且只能在主线程里面运行。所以了解清楚很重要。导致Struct Change的操作:1. 创建一个Entity当你创建一个entity的时候,unity找一个已存在的chunk上给分配一块可以使用的内存给ComponentData;如果不存在空闲的chunk了,就会创建一块新的chunk来给entity作为Compone

2024-05-06 15:51:15 452

原创 Unity DOTS1.0(8) Aspect核心机制分析

ASPECT是一种用于描述Entity的特性或特征的概念。ASPECT通常用于在系统中筛选出具有特定组件集合的实体。你可以把5~6个组件得引用保存到一个数据对象里面(Aspect),你通过Aspect就可以拿到这些组件得引用,从而访问这些组件数据;Unity 会为关联的Components组,提供预定义好的aspects。你也可以通过IAspect接口定义自己的Aspect。

2024-05-05 21:23:58 346

原创 Unity DOTS1.0 入门(7) BlobAsset 核心机制概述

这三种类型都是为了支持在BlobAsset中存储复杂的数据结构,同时保持BlobAsset的不可变性和可重定位性。BlobAsset支持的三种特殊类型包括BlobArray,BlobPtr和BlobString。

2024-04-29 22:36:56 620

转载 Unity转微信小游,本地资源测试,不用上传CDN的操作方法

3.在微信开发者工具 顶部的 设置-项目设置,然后右边弹出窗口有开启静态资源服务器192.168.1.35:8001,这里的192.168.1.35:8001就是前面在unity里导出的时候填的http://192.168.1.35:8001,记得http://一定填上,不然会导致资源下载失败,然后再指定到minigame里面的webgl文件夹,这样就能在微信开发者工具里看到你的项目了。Unity转微信小游,本地资源测试,不用上传CDN的操作方法,资源下载失败问题。

2024-04-26 13:58:49 77

原创 Unity 微信小游戏 UI 刘海屏适配

【代码】Unity 微信小游戏 UI 刘海屏适配。

2024-04-26 09:43:20 134 1

原创 Unity DOTS 1.0(6) Filter baking output机制和baking Prefab

ECS 里面我们也可以把entity做成prefab,这样就可以非常方便的clone创建出来entity;Entity prefab和GameObject prefab的使用方式都是类似的。Step1:首先把GameObject Prefab Baking成Entity Prefab。Step2:使用我们的entity Prefab来进行复制我们的entity。Entity Prefab是一种特殊entity, 拥有以下两个Componentprefab tag。

2024-04-26 09:25:53 582

原创 Unity DOTS 1.0 (5) Baking System、Baking phases 和 Baking World

示例代码:给出了代码实现,给所有的有带有组件A的entity加一个tag component,如果一个entity没有组件A,但是又带了tag component,我们就把这个tag component从entity里面删除掉;这个代码就实现了批量处理Entity。

2024-04-25 22:16:51 608

原创 Unity DOTS1.0(4) Baking 和 Baker

为了保证lncremental Baking的正常工作,Unity会自动跟踪我们的Authoring Component中的数据成员,当数据成员改变了,就会调用Baker的bake方法,让他重新执行;**注意:**这里的GetComponent并不是原来意义上的GetComponent. 它在调用时内部也会注册依赖关系, 即使一开始对象上没有GetComponent获取的组件(baking时返回为空) 当重新获得这个组件的时候也会再一次触发这个Baker。

2024-04-14 19:50:38 732

原创 Unity DOTS1.0 入门(3) System与SystemGroup 概述

DOTS中的system 和 system group概述

2024-04-13 21:43:42 958

原创 Unity DOTS 入门(2) SubScene和Bake

Component是存放我们Entity数据的载体;Component里面的这个数据是给Sytem的算法来进行读写的;定义一个ComponentData/Component 需要继承lComponentData接口,这个接口作用只是标记为ECS的Component类型;里面的数据类型需要为非托管数据类型(int, NativeArray等)如果想要一个可以托管的ComponentData,那么直接定义为Class就可以了。

2024-04-11 11:24:55 355

原创 Unity DOTS1.0 入门(1) ECS机制与概述

DOTS相关关键概念逐一解释

2024-04-11 11:18:54 527

原创 Unity3D URP 仿蜘蛛侠风格化Bloom&AO

通过URP的Custom Renderer Feather 实现风格化后处理效果。并使用shader graph制作Shader

2023-09-10 20:47:29 795

原创 在UI中使用SpriteMask裁减任意shader的粒子效果

由于我们需要在Mask中对粒子效果进行裁减。但是我们的的特效同事不愿意每个shader都去添加Stencil。所以使用SpriteMask方式进行裁减。

2023-07-14 16:00:48 820

原创 Unity HybridCLR + Xlua + Addressable 要点记要

HybridCLR + Xlua + Addressable 问题纪要

2023-06-13 11:22:33 2331

原创 Unity 基于法线和深度实现完美描边,可独立控制物体描边

Unity 后处理描边效果实现。可独立控制物体是否显示描边

2022-12-30 18:52:09 3593 7

原创 Unity DOTS学习 前置知识(二)

ECS 结构和一些专用名词

2022-12-01 20:54:18 723

原创 Unity DOTS学习 前置知识(一)

DOTS 学习

2022-11-23 22:00:27 719

原创 Unity 移动端静态资源优化技巧与经验分享

关于Unity的贴图、模型、音频、动画相关优化经验

2022-09-12 21:16:54 1276

原创 近期项目优化记录

最近进行的一次项目优化,记录一些重点问题。涉及shader、gc、组件

2022-08-26 16:07:59 840

原创 Unity 星球边光渲染

星球边光shader,特殊场景使用

2022-08-12 18:04:52 266

原创 Unity Game Optimization - Third Edition Unity游戏性能优化(6)内存管理

Unity内存优化

2022-06-04 21:25:17 556

原创 Unity 给手游用的高性能辉光(Bloom) Shader

一个简单的后处理Bloom效果。性能相对友好。

2022-06-01 21:32:54 2237 6

原创 Unity Game Optimization - Third Edition Unity游戏性能优化(5)物理优化

Unity 物理性能优化

2022-05-07 20:50:31 921

原创 Unity 游戏性能优化(4)资源优化

音频、图片、网格资源优化

2022-05-02 19:35:10 1666

原创 Unity Game Optimization - Third Edition Unity游戏性能优化(3)Batching的优势

动态合批和静态合批的要点与坑

2022-04-27 22:01:16 1551

原创 Unity 游戏性能优化(2) 第二章 脚本策略

Unity 脚本相关优化

2022-04-26 21:40:42 1903

原创 Unity Game Optimization - Third Edition 阅读笔记 Chapter 1 分析性能问题

Profiler 使用和自定义性能查看工具

2022-04-20 11:40:11 3404

原创 Unity 渲染可能出现非期望的颜色边问题

边缘出现非预期颜色

2022-04-06 10:29:29 2074

原创 给手机使用的模糊玻璃Unity shader, 可模糊UI

Unity 局部模糊shader。模糊玻璃

2022-02-19 16:09:31 2571

原创 Rider 使用Emmylua 代码提示

基本流程和idea一样1. 在群里(Emmylua官方QQ群)下载并手动安装最新版本EmmyLua插件,以及EmmyLua-Unity插件2. 下载 EmmyLuaService.cs 放到Unity工程的Editor目录3. 打开Unity,点击菜单 EmmyLua -> Enable 来启用API服务4. 打开IDEA 即可在Lua代码中使用C#端的API提示最后需要在这里额外添加“lua”...

2021-12-22 16:31:03 3666

原创 Unity 打包 “Android resource linking failed”

Unity 打包错误

2021-12-07 19:07:06 1172

原创 Unity 粒子效果在RenderTexture中不显示。Addictive 模式可能显示错误。

不显示解决方案参考文章:https://blog.csdn.net/f_957995490/article/details/106648584Addictive 模式显示错误解决不显示的问题后遇到另外一个问题:原来因该透明的位置变成黑色一块。问题分析:由于为了节省资源,Addictive粒子效果使用的图片不含Alpha通道,如下图:RenderTexture在混合时默认所有像素点Alpha = 1.此时再把RenderTexture 放到UI上时,这部分就成了不透明区域。解决方案

2021-11-22 16:03:37 3006

原创 开启使用SPR Batch 问题记录

问题1:内置属性需要放到 UnityPerDraw 的cbuffer下解决:问题2:内饰属性的偏移再cbuffer中覆盖了其他的地方解决:问题3解决

2021-11-01 18:16:21 141

原创 Unity Shader 数据精度使用情况 float half fixed

Unity Shader 数据精度使用情况 float half fixedMost mobile GPUs support both precision types, half being more efficient. So if you’re optimizing for mobiles it makes sense to use half as much as possible. The rule of thumb is to use float for positions and texture

2021-11-01 11:06:34 3063

原创 ILRuntime 跨域代理原理分析

在Unity 主工程中的一个代理调用了热更工程中的方法,必须经过一个Convert, 通过Convert 再调用热更工程中的Method

2021-06-11 09:32:03 274

原创 ILRuntime CLR 绑定原理分析

使用Unity ILRuntime编辑器工具所带功能进行CLR绑定后,跨域调用方法不再是反射方式,而是一种类是劫持方式进行,运行效率高于反射很多倍, 并且没有GC开销原理解释:例如,调用一个gameobject的SetActive方法。ILRuntime 内部会在一个CLRBinding表里进行查找,在这个表里面如果有GameObject.SetActive 那么调用此方法,如果没有则按反射调用。进行new的时候,会去找重定向的方法,在CLRRedirection表里面。new 的重定向方法是acti

2021-06-10 15:31:14 1251 1

原创 Unity 判空性能研究和遇到的坑。

在做新能优化时注意到判空产生了能引起注意的性能百分比。转而尝试使用C#的判空方式。性能测试比较如下:由上图可见,C# 判空性能是Unity Object使用“==”的8倍。这是因为Unity重载了“==”,以保证在Destroy gameobject后能正确判空。 public static bool operator ==(Object x, Object y) { return Object.CompareBaseObjects(x, y); } pri

2021-05-26 16:51:59 880

原创 KBEngine 机器人测试记录

给bot服务器配置Cid-进程Id 配置:输入debug命令:启动机器人进程:注意:要等服务器启动完毕(看日志)才能启动机器人进程-Windows下采用select模型有64个并发socket的限制,所以不要在win下压测:终止机器人进程:相当于杀死进程内所有的模拟客户端,也就断开了客户端跟服务器的连接,此时由于一局房间内所有机器人都断开,进而房间被释放,但是Avatar的base实体没有被释放.将机器人踢出房间,并参与机器人对局:在GuiConsol..

2021-05-19 17:44:34 232

原创 Unity 帧同步碎问题、坑,记录

1. 解决寻路过程中,角色堆叠的问题是把每个角色也当做是 NavMesh 中的障碍物来实时更新 NavMesh 生成的地图,因为角色都是障碍物了,那角色自然不对堆叠到障碍物里面去。2. 用什么方式来检验游戏结算?把帧同步客户端里逻辑部分的代码打包成dll,不包含渲染部分的代码,然后把这个dll放到服务器里去把所有帧数据过一遍,最后再得到游戏结算。3. 帧同步里面,玩家的命令,在发送给服务器的时候,需要带上一个帧序列 ID不带的话,会有一个问题是,玩家出现延迟,然后在延迟的时候一顿猛操作,然后网络变

2021-05-09 22:16:33 294

原创 Unity IL2CPP 打包后 出现AOT错误

问题分析:这是应为Unity 在执行striping assemply 时把项目中一些类隔离了。解决方案:在会被隔离类上引用 UnityEngine.Scripting;然后在类中方法上加[preserve]标签

2021-04-29 11:55:18 599

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除