- 博客(47)
- 资源 (12)
- 收藏
- 关注
原创 unity插件Excel转换Proto插件-ExcelToProtobufferTool
是一个Unity插件,用于将Excel配置文件转换为Protobuf数据格式,并生成对应的C#脚本或DLL文件。通过配置类。
2025-01-20 12:02:15
1236
原创 unity Gpu优化
将场景模型使用同一个材质,并使用上面同一个图集。保证所有模型使用相同材质将场景所有不同模型通过工具或者脚本把相对应的纹理合并为一个个对应图集,如所有模型的主纹理合并一个图集,法线纹理合并为一个纹理。也可以让美术去合并。脚本的话可以使用unity 自带的Texture2D.PackTextures()方法区合并图集。但是还要对网格的UV做处理。
2024-10-16 17:51:32
1156
原创 unity动态批处理
Unity 可以对阴影投射器使用动态批处理,即使它们的材质不同,只要 Unity 需要的阴影传递材质值相同。动态批处理是一种绘制调用批处理方法,用于批处理移动的 GameObjects 以减少绘制调用。有关网格和动态几何体之间的内部差异的信息,请参阅网格的动态批处理和动态生成几何体的动态批处理。要确定在你的应用中使用动态批处理是否有利,建议在启用和禁用动态批处理的情况下对应用进行性能分析。在现代消费硬件上,动态批处理在 CPU 上的工作量可能超过绘制调用的开销,这会对性能产生负面影响。
2024-10-16 15:13:51
1095
原创 unity静态批处理
如果多个 GameObject 使用相同的网格,Unity 会为每个 GameObject 创建该网格的副本,并将每个副本插入到组合网格中。静态批处理是一种绘制调用批处理方法,它将不移动的网格组合在一起,以减少绘制调用。与构建时的静态批处理不同,运行时批处理不需要启用静态批处理玩家设置。:如果在构建时执行静态批处理,Unity 在运行时不会使用任何 CPU 资源来生成静态批次的网格数据。如果满足常见使用信息中描述的条件,Unity 将自动将指定的静态网格批处理为同一个绘制调用。
2024-10-16 15:11:15
1175
原创 开始进入shader世界 unity着色器shader从学习到放弃
unity中 shader基础。从原理到完整的shader编写。让图形渲染不在是高大上
2024-09-15 23:35:49
892
原创 切线空间:unity中shader切线空间,切线矩阵,TBN矩阵 ,法线贴图深度剖析
NormaltangentxyzNormaltangentxyz说明切线空间的法线向量实际上是模型空间中的法线向量,但其坐标系统基于模型的顶点。切线空间的原点是模型顶点,因此切线空间的坐标轴(即切线、双切线和法线)也是基于模型空间的坐标轴。具体来说,切线空间的三个基向量(切线、双切线和法线)都是相对于模型坐标系定义的。为了将切线空间中的法线向量转换到世界空间,我们需要知道模型空间中的基向量(即切线、双切线和法线)在世界空间中的表示。
2024-09-13 11:01:26
1571
原创 不一样的视角,深度解读unity性能优化。unity性能优化,unity内存优化,cpu优化,gpu优化,资源优化,资源包、资源去重优化,ugui优化。
通过从多个角度进行优化,可以显著提高Unity游戏的性能。物理计算:减少触发器和刚体使用、优化碰撞体的数量和复杂性、利用Layer Collision Matrix进行分层碰撞检测。模型和渲染:使用LOD技术、遮挡剔除、简化模型顶点。动画:减少关键帧、简化Animator状态机。布料模拟:减少布料物理模拟的使用。对象管理:实现对象缓存池来减少对象实例化。导航网格:调整NavMesh的精度和分区来优化寻径计算。
2024-09-02 14:12:36
2797
1
原创 unity中的InstanceID详解 即Object.GetInstanceID
Object.GetInstanceID 但是InstanceId给我们在编辑器模式下卸载内存资源,编辑器模式调试资源带来可能。
2024-08-31 14:21:27
2932
2
原创 可编程渲染管线报错 Unity Universal RP asset not assigned
SRP 自定义渲染管线 报Unity Universal RP asset not assigned错误
2022-11-16 20:47:24
2256
原创 网页出现DNS_PROBE_FINISHED_NXDOMAIN 解决方法
此问题是因为你从dns获取ip映射(即域名映射到ip地址)失败造成的。修改dns比较好用的几个通用dns阿里云DNS服务器:223.5.5.5,223.6.6.6百度DNS服务器:180.76.76.76腾讯DNS服务器:119.29.29.29360DNS服务器:101.226.4.6114DNS服务器:114.114.114.114下面是省市的dns,百度一下个省市dns就可以了。比如上海电信,上海移动 dns,上海网通dns上海电信DNS服务器:202.96.2
2022-05-18 19:43:36
12479
转载 c# 迭代器 文档
迭代器原微软官方文档链接:https://docs.microsoft.com/zh-cn/dotnet/csharp/iterators编写的几乎每个程序都需要循环访问集合。因此需要编写代码来检查集合中的每一项。还需创建迭代器方法,这些方法可为该类的元素生成迭代器(该对象遍历容器,尤其是列表)。这些方法可用于:对集合中的每个项执行操作。 枚举自定义集合。 扩展LINQ或其他库。 创建数据管道,以便数据通过迭代器方法在管道中有效流动。C# 语言提供了适用于这两种方案的功...
2021-02-07 14:06:08
161
原创 C# List去除重复值
方法算法一List<int> trans =new List<int>(); int count = trans.Count; int time = 0;count = trans.Count;for (int i = 0; i < count; i++){ for (int j = i + 1; j < count; j++) { time++; if (trans[i] == tran
2021-01-24 18:37:40
2121
原创 unity UGUI CanvasRenderer 实现UGUI模型渲染
效果:将模型渲染到UGUI中创建材质球代码实现using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;using UnityEngine.UI;using static UnityEngine.ParticleSystem;public class UIRenderer3D : UIBehaviour{ .
2021-01-21 13:22:05
4268
2
原创 lua 面向对象类封装
LuaObject = {}function LuaObject.extends(o) o = o or {} local obj = {} setmetatable(obj, { __index = o }) return objendlocal function LuaObjectClone(obj, objMap) if not obj or type(obj) ~= "table" and type(obj) ~= "us.
2021-01-18 20:00:32
274
原创 unity hlsl 库函数
内在函数下表列出了HLSL中可用的内在函数。每个函数都有一个简短的描述,以及一个指向参考页面的链接,该页面具有有关输入参数和返回类型的更多详细信息。 表1 名称 描述 最小着色器模型 abort 终止当前正在执行的绘制或调度调用。 4...
2020-04-17 12:06:01
2889
原创 unity 语义学习
语义学语义是附加到着色器输入或输出的字符串,该字符串传达有关参数的预期用途的信息。着色器阶段之间传递的所有变量都需要语义。此处显示了向着色器变量添加语义的语法(变量语法(DirectX HLSL))。通常,流水线阶段之间传递的数据是完全通用的,系统不会对其进行唯一解释。允许没有特殊含义的任意语义。包含这些特殊语义的参数(在Direct3D 10及更高版本中)称为系统值语义。Dir...
2020-04-17 11:13:37
1285
1
原创 unity 性能优化
1.设置物体显示隐藏网上说设置物体显示隐藏(GameObject.SetActive())会消耗性能.其实这种说法是片面的,或者是错误的。测试代码在一个节点里初始化5000左右个物体。将物体显示和隐藏,添加标记"xxxxxxxxxxxxxxxxxxx",然后查看性能。using System.Collections;using System.Collections.Generi...
2020-04-05 17:23:05
2320
1
原创 圆形拖拽滑动条
圆形拖拽滑动条using System;using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.Events;using UnityEngine.EventSystems;using UnityEngine.UI;public class Cir...
2019-08-10 16:13:01
984
原创 unity 奇葩报错集---- 生成unity资源报错: Failed to unload "Assets/Animation/Clips/run_5.anim"
此报错是因为在生成资源时路径填写错误:AssetDataBase.DreateAsset("Assets//Animation/Clips/run_5.anim");上面代码会报Failed to unload "Assets/Animation/Clips/run_5.anim"原因是AssetDataBase.DreateAsset()的路径填错了,上面标红的"//"应该是"/",...
2019-03-28 11:30:34
2480
原创 unity自定义Scene窗口
unity自定义Scene窗口。Scene窗口添加按钮等,如下效果using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;using UnityEditor.SceneManagement;using UnityEngine.SceneMan...
2019-03-28 00:47:28
2442
原创 UGUI事件和UI渲染
UGUI 事件场景必须存在EventSystem 并且挂载继承自PointerInputModule基(PointerInputModule继承自BaseInputModule),包括StandaloneInputModule和TouchInputModule。事件触发从输入类BaseInput开始,此类是对Input类的包装,简化事件以适应UI事件。此类将在StandaloneInput...
2019-03-25 00:16:42
660
原创 copy 复制文件夹目录下所有文件,包括子目录 (新思路)
复制文件夹可以使用递归,但是递归阅读起来不易理解,下面不使用递归复制所有文个人件夹,阅读更容易。(我不认为使用递归多么牛逼,反而唾弃。能用循环的坑定不用递归。递归是用来解决循环难以决绝的问题)直接上代码:using System.IO;using System.Text;using System;public class FileTool{ //方法1 ///...
2019-03-18 23:51:53
4631
1
原创 UGUI 事件整合(点击事件,双击时间,长按事件,按下事件,弹起事件),动态定制事件
UGUI 点击事件整合(点击事件,双击时间,长按事件,按下事件,弹起事件),动态定制事件。一个按钮可以相应多个事件效果图直接上代码using System;using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.Events;using U...
2019-03-17 21:16:26
803
原创 UGUI系统研究讲解-----》UIBehaviour功能说明
UGUI的基础组件都最终继承自UIBehaviour,而UIBehaviour又继承自MonoBehaviour。所以我的讲解将从UGUI最基类UIBehaviour开始,并结合MonoBehaviour去研究。首相直接上UIBehaviour代码截图。上面除了框选的方法外都是运行是可调用的虚方法。而这些方法又是通过UIBehaviour的基类MonoBehaviour通过消息发送...
2018-11-13 17:09:40
5676
原创 unity编辑器 ---SceneView窗口自定义
SceneView窗口自定义 是通过Handles类 控制柄来自定义界面,通过HandleUtility 控制柄工具辅助。Handles控制柄到底是什么?直接上图就明白了:如上图箭头所指的,我们都可以通过Handles控制柄来画出来。所谓的Handles控制柄就是我们选择的物体后在场景里的控制点。直接上代码小测试首先加一个空脚本目的是挂在的物体上,然后自定义脚本窗口u...
2018-10-12 13:39:01
4841
1
原创 unity 编辑器----编辑器窗口控件创建和UI布局
unity编辑器窗口控件通过EditorGUILayout、EditorGUI、GUILayout和GUI来创建控件和实现布局。EditorGUILayout、EditorGUI这两个是unity编辑器使用。而GUILayout和GUI运行时游戏中和编辑器中都可以使用,但是这两个类就是服务于运行时,Monobehaviour的OnGUI()方法大家都知道吧,这两个类就是为OnGUI()的U...
2018-10-11 17:03:15
7316
原创 unity 编辑器 ---获取unity编辑器中的所有窗口,并打开显示,以备后面编辑器扩展
获取原理:unity 所有窗口界面都继承自编辑器UnityEditor程序集下的EditorWindow。而所有的编辑器窗口都在UnityEditor程序集里定义,所以,我们通过反射获取UnityEditor程序集获取所有窗口就可以了。直接上代码:using System;using System.Collections;using System.Collections.Generi...
2018-10-11 13:37:03
3189
原创 Tesseract编译及使用(windows vs 2017)
Tesseract编译及使用尊重他人的劳动转载请标注资源准备Vs2010或者更高版本。本教程使用vs2017Tesseract源码。Git下载,或者直接从我的下载资源下载。Git主页地址https://github.com/tesseract-ocr,现在goggle维护 蓝框是tesseract代码,也就是我们要编译的代码。 红框是我们要识别的...
2018-09-14 16:13:52
6966
9
原创 sql server 创建存储过程
首先先把我困惑的地方放到前面,后面在详细讲一下过程。在 “对象资源管理器”中,连接到 数据库引擎 的实例,然后展开该实例。依次展开 “数据库”---》 “可编程性”。右键单击“存储过程”,再单击“新建存储过程”将会创建存储过程模板:让我困惑的 <Procedure_Name, sysname, ProcedureName> 有什么用?搜遍全网 也没答案。。。。上图其实是一个存储过程...
2018-03-01 13:52:52
31451
3
原创 c# sql Server 连接 数据库教程
demo下载1.首先建立数据库连接:首先说明一下数据库连接字符串:string conString = @"Data Source=bds2715212581.my3w.com;Initial Catalog=bds271521258_db;Persist Security Info=True;User ID=bds271521258;Password=123456";下面是sql server2...
2018-02-28 15:24:25
16419
7
原创 unity 协程 详细说明
前言:unity协程(coroutine) 其实就是一个枚举器 的封装。下面将会说明协成的实现原理。本文档将会从c#枚举器到unity协成过程一步步去做说明,帮你深入理解unity 协成(coroutine)。demo下载地址1.c#枚举器是什么?其实你只要用过List泛型列表遍历元素(foreach),你就会用到枚举器 。如下面脚本:using System.Collections;using ...
2018-02-27 12:56:34
3185
1
原创 c# XML数据解析通用工具, 获取 节点 文本内容
首先先说明一下 ,节点文本内容获取方法,如:<root>文本内容</root>获取节点文本内容(红色字体部分),假设xmlElement是root节点。上面红色字体的文本其实是root节点的子节点,获取文本内容的方法,就是遍历子节点,判断类型是否为文本内容。方法如下: for (int i = 0; i < xmlElement.ChildNodes.Count; i...
2018-02-11 18:58:39
5677
原创 c# Attribute(特性) 研究
MSDN说明: 特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集、类型、方法、属性等)相关联。 特性与程序实体关联后,即可在运行时使用名为“反射”的技术查询特性。特性具有以下属性:特性可向程序中添加元数据。 元数据是有关在程序中定义的类型的信息。 所有的 .NET 程序集都包含指定的一组元数据,这些元数据描述在程序集中定义的类型和类型成员。 可
2017-03-09 20:00:41
387
原创 C# 文件路径 Path类 测试
C# 文件路径 Path类 测试腾出点时间对Path类做一个系统的测试 private void PathTest() { //------------必须的空间-------using System.Diagnostics; using System.IO
2017-01-03 17:12:22
1223
原创 lua UTF8字符串操作,截取,索引
首先引用网络一段说明UTF-8是一种变长字节编码方式。对于某一个字符的UTF-8编码,如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的位数,其余各字节均以10开头。UTF-8最多可用到6个字节。 如表: 1字节 0xxxxxxx 2字节 110xxxxx 10xxxxxx 3字节 1110xxxx
2016-12-22 09:20:28
2575
SqlServer服务器连接教程
2018-02-28
unity 协程详细说明 demo
2018-02-26
unity 5.3.3完整版下载,包含所有组件
2016-03-09
3D游戏引擎设计 实时计算机图形学的应用方法 第2版_(美)艾伯利著_北京:清华大学出版社_完整版 PDF电子书下载 带索引书签目录3
2016-02-17
3D游戏引擎设计 实时计算机图形学的应用方法 第2版_(美)艾伯利著_北京:清华大学出版社_完整版 PDF电子书下载 带索引书签目录4
2016-02-17
3D游戏引擎设计 实时计算机图形学的应用方法 第2版_(美)艾伯利著_北京:清华大学出版社_完整版 PDF电子书下载 带索引书签目录2
2016-02-17
3D游戏引擎设计 实时计算机图形学的应用方法 第2版_(美)艾伯利著_北京:清华大学出版社_完整版 PDF电子书下载 带索引书签目录
2016-02-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人