unity
zhaixh_89
这个作者很懒,什么都没留下…
展开
-
scriptableobject类理解
ScriptableObject是一个数据容器,它可以用来保存大量数据,主要的用处就是在项目中通过将数据存储在ScriptableObject对象,避免值拷贝来减少游戏运行中的内存占用。当你有一个预制体,上面挂了一个存有不变数据的MonoBehaviour 脚本时,每次我们实例化预制体时都将产生一次数据拷贝,这时我们可以使用ScriptableObject对象来存储数据,然后通过引用来访问预制...原创 2020-03-26 14:06:49 · 5754 阅读 · 0 评论 -
Unity将来时:IL2CPP是什么?
Unity3D 想必大家都不陌生,独立游戏制作者们很多人都在用它,甚至一些大公司也用在很商业的游戏制作上。Unity3D最大的一个特点是一次制作,多平台部署,而 这一核心功能是靠Mono实现的。可以说Mono是Unity3D核心的核心,是Unity3D跨平台的根本。但是在2014年年中的时 候,Unity3D官方博客上却发了一篇“The future of scripting in unity”的...转载 2019-09-23 17:07:30 · 198 阅读 · 0 评论 -
Unity性能优化 – 脚本篇
最近开始进行Unity性能优化的工作,主要分为三类:CPU、GPU和内存。由于我们游戏的核心战斗是计算密集型,所以主要是受限于CPU。CPU的优化又分为渲染和脚本,本文将着重于脚本优化。一般来说,优化必须要知道性能热点在哪里,而知道性能热点则需要在目标设备去进行深度的profile。如果不进行profile,而是靠臆测去进行优化,往往会事倍功半,甚至适得其反。本文所讲述的是已经经过验证的,...转载 2019-09-19 11:33:35 · 777 阅读 · 1 评论 -
Unity性能优化 – 设置篇
Unity性能优化 – 设置篇Posted on 2019/05/30 · Leave a comment想要做好Unity性能优化,主要从CPU,内存,GPU等多方面进行,需要处理好许多事情。在脚本篇中我们就Unity API,C#,IL2CPP,Lua和算法数据结构等多方面提出了性能优化建议。鉴于Unity内设置项繁多,如果某项设置不当,就可能会对性能造成负面影响。本文将从纹理、模...转载 2019-09-19 11:30:15 · 1785 阅读 · 0 评论 -
浅谈unity中gamma空间和线性空间
一、概述 很久没有写文章了,今天写一篇对gamma空间和线性空间的个人理解总结,在查阅和学习了各个资料后,算是一个个人笔记吧。二、Gamma颜色空间和线性颜色空间其实对于颜色空间的理解,我个人是这样理解的:所有的一切颜色空间,最终的目的,都是为了最终投入到人眼中,能够基本重现自然界的颜色。 记住这一个目的,对下面的一些理解就会更加的有依据了。 2.1 人眼的感...转载 2019-09-05 17:57:09 · 317 阅读 · 0 评论 -
unity项目性能优化总结
待续。。。原创 2019-09-04 20:04:01 · 162 阅读 · 0 评论 -
Unity性能优化(DrawCall合批)
为了在屏幕上绘制一个对象,游戏引擎必须发出一个绘制命令给图形化API接口(如OpenGL 或者Direct3D),DrawCalls通常都是资源密集的,图形化API每一次DrawCall都要做很多重要的工作,会造成CPU一定的性能开销,这通常是由于在显示卡驱动中DrawCall资源密集验证和转化步骤之间状态切换导致的Unity利用两种技术来解决上述问题:Dynamic batching对于...原创 2019-08-30 11:24:57 · 3008 阅读 · 0 评论 -
Unity优化之GC(官方文档翻译)
本想将unity的gc优化翻译一遍,正巧网上看见已有人翻译好了,看了下,翻译的很不错,自己翻译的肯定没有这么到位,就直接拿过来了,英文链接英文地址介绍: 在游戏运行的时候,数据主要存储在内存中,当游戏的数据在不需要的时候,存储当前数据的内存就可以被回收以再次使用。内存垃圾是指当前废弃数据所占用的内存,垃圾回收(GC)是指将废弃的内存重新回收再次使用的过程。 Unity中将垃圾...转载 2019-08-30 10:19:10 · 186 阅读 · 0 评论 -
unity各功能字段含义整理(持续更新)
1、防止重命名后旧变量aaa所关联的引用丢失[FormerlySerializedAs("aaa")]public string bbb;2、一般用于创建组件使用,防止一个对象上多次挂载同一组件[DisallowMultipleComponent]3、代表该类在运行模式和编辑模式下都会运行[ExecuteAlways]4、强制unity序列化一个私有的或者保护的属...原创 2019-06-11 21:05:22 · 2247 阅读 · 0 评论 -
获取摄像机的视口区域
常用的摄像机有两种、一种是正交摄像机,另一种是透视摄像机,由于正交相机的视口范围是固定不变的,因此这里只讨论透视摄像机,它是由原点向外扩散的视锥体,这里引用下雨松MOMO的一篇博客《Unity3D研究院之获取摄像机的视口区域》中代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;...原创 2019-03-12 16:53:38 · 505 阅读 · 0 评论 -
UGUI屏幕分辨率适配
在提及UI适配之前,我们再来回顾下其中要用到的Canvas组件,有不了解的可以移步这里Canvas中的Render Mode属性,我们知道共有Screen Space-Overlay模式、Screen Space-Camera模式、World Space模式三种,对于这三种模式,我的使用理解是如果项目是2d的就选用第一种(当然第二种也可以,只是没有第一种方便,因为要涉及到相机,或者你也可以不使...原创 2018-12-24 17:50:45 · 1531 阅读 · 0 评论 -
unity发布安卓包路径显示错误
unity项目在windows下运行正常,进行安卓打包测试的时候发现以下错误经过反复查找,最后发现竟然是因为打包的时候指定了错误的路径修改之后再次build仍然报错如下: 最后在xlua的github中FAQ发现了解决之道,是因为有些函数被放在了条件编辑里头,只在UNITY_EDITOR下生效,因此,只需将这些函数放到黑名单中,如图最后的最后,添加完黑名单之后一...原创 2018-11-05 16:24:15 · 993 阅读 · 0 评论 -
Unity3D内存释放
最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于unity3d对于内存的管理与优化.Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大。 Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时 动态...转载 2018-10-30 16:53:06 · 233 阅读 · 0 评论 -
xlua扩展第三方库记录
随着xlua的开源,其在项目中的使用也越来越广泛。游戏开发中我们经常会使用第三方库如,json解析,网络协议等等,目前xlua目前内置的扩展库:1、针对luajit的64位整数支持;2、函数调用耗时以及内存泄漏定位工具;3、用于支持ZeroBraneStudio的luasocket库;4、tdr 4 lua;随着使用项目的增加以及项目使用的深入程度,仅有这几个扩展已经没法满足项目组了...原创 2018-10-30 11:25:03 · 5597 阅读 · 0 评论 -
tolua之wrap文件的原理与使用
什么是wrap文件每个wrap文件都是对一个c#类的包装,在lua中,通过对wrap类中的函数调用,间接的对c#实例进行操作。wrap类文件生成和使用的总体流程生成一个wrap文件的流程这部分主要通过分析类的反射信息完成。wrap文件内容解析使用UnityEngine_GameObjectWrap.cs进行举例。注册部分public static void ...转载 2018-10-09 16:22:26 · 504 阅读 · 0 评论 -
Unity Layers与LayerMask理解
LayerMask一般用于Physics.Raycast光线投射先看下Raycast函数的参数public static bool Raycast(Ray ray, out RaycastHit hitInfo, float maxDistance, int layerMask);他还有很多重载函数ray:射线的起点和方向hitInfo:如果返回true,hitInfo将包含碰...原创 2018-09-13 14:03:37 · 18956 阅读 · 1 评论 -
Unity 函数activeInHierarchy和activeSelf区别
注释如下:根据注释,引擎已丢弃active用法,并推荐我们使用activeInHierarchy和activeSelfactiveInHierarchy(read only只读)表示gameobject在场景中的是否显示,也就是说要使这个值为true,这个物体及其所有父物体(及祖先物体)的activeself状态都为true。activeSelf(read only只读)代表gam...原创 2018-09-05 20:35:03 · 19637 阅读 · 2 评论 -
Unity StartCoroutine 中 yield return 总结
Unity 中协程是个非常强大的功能,其作用主要是用于游戏中的延时调用或者执行一连串的有时间间隔的事件流程,例如剧情对话等。 看过几篇大佬的文章后,我简单总结了几点协程相关的知识点,旨在加深记忆,同时为初学者解惑。 本篇总结没有截取测试代码,不过总结的内容并不深入,建议读者亲自调试一下,印象会更加深刻。 1.协程与线程 ...转载 2018-09-05 11:54:04 · 672 阅读 · 0 评论