这是从 Unity教程之再谈Unity中的优化技术 这篇文章里提取出来的一部分,这篇文章让我学到了挺多可能我应该知道却还没知道的知识,写的挺好的 优化几何体
这一步主要是为了针对性能瓶颈中的”顶点处理“一项。这里的几何体就是指组成场景中对象的网格结构。
3D游戏制作都由模型制作开始。
转载
2024-05-26 23:02:13
203阅读
网上查了一下Unity的SetActive变化事件没有找到,我想到用另一种思路来实现这个事件通知,它可用来调试是何处把某个gameobject隐藏掉了 Unity提供了这两个函数,OnEnable,OnDisable,当SetActive时会调用这两个函数,所在这两个函数中发出事件就可以实现想要的效
原创
2021-07-20 17:12:14
1278阅读
新建地形:在菜单中新建一个地形。
Unity3D教程:设置地形(Terrain)会看到Terrain对象。如果要修改地形参数,可以在Terrain菜单下的SetResolution中设置。
Unity3D教程:设置地形(Terrain)如上图所示。地形的参数设置:TerrainWidth:全局地形总宽度。其单位为Unity统一单位-米。TerrainHeight:全局地形允许的最大高度,单位为
转载
2024-03-12 15:47:04
35阅读
unity中有一些知识点比较碎,每次用到的时候都要去网上查,实在有些浪费时间,把这些知识点集中到一起倒是不错的想法,下面就是一些琐碎的知识点,以后会逐渐更新...1,gameObject.active 表示是否在场景中停用改物体,当active=false的时候,GameObject无法find此物体,表现在编辑器中就是物体的Inspector里面显示对号没有勾选,如果开始的时候active=tr
转载
2024-04-13 20:43:15
1163阅读
最近在学unity shader,学到SubShader的Tag的时候尤其是对于RenderType很模糊,网上文章看了半天也没有一个具体的解释,于是自己仔细阅读官方文档后,算是明白了些,所以写出来为一些还不明白的shader初学者作为参考Subshaders使用标签来告诉unity何时去渲染,tag有好几种,最常见的有俩种”Queue”和”RenderType”;“Queue”:渲染顺序队列物体
转载
2024-04-02 16:37:45
37阅读
【Unity】关于EventSystem在3D场景中的应用概述在UI上的应用可变动的地方在3D场景中的应用 Unity官方文档相对于这一部分的解释:中文文档:https://connect.unity.com/doc/Manual/EventSystem(感觉这个加载速度很随缘)英文文档:我是参看编辑器自带的,网址的话大家自行百度,搜索词:unity manual。其实官方文档对于这一部分的解释
在我们游戏开发过程中,碰撞检测函数的使用十分频繁,比如射击游戏检测子弹是否碰撞到敌人触发敌人掉血、受伤等状态,生存类游戏中常见的走到门前,通过碰撞检测来控制自动开关门等。碰撞检测函数在unity的中有两个用于碰撞检测的函数1. OnTriggerEnter(Collider other){
}2. OnCollisionEnter(Collision collision){.
}
转载
2024-03-31 08:34:14
109阅读
在UGUI中,EventSystem实现了所有关于交互方面的功能,和NGUI不一样的地方是,我们终于可以摆脱添加Box Collider了!下面我们来学习一下。对于按钮来说,直接有onClick的事件,我们可以直接在编辑器中方便的通过拖拽来实现响应函数的赋值,这点和NGUI是一样的,如下:Event TriggerEvent Trigger和NGUI中的Event Trigger功能保持一致,即使
转载
2024-08-28 15:26:07
80阅读
今天从群里的大神口中又套出了一句隐藏游戏物体的方法 gameObject.setActive=(false);这个方法可以使指定的游戏物体隐藏掉!
原创
2016-07-20 18:59:30
9241阅读
public class ObjectPoolManager : Singleton<ObjectPoolManager> { private class InternalPool { private Stack<GameObject> m_pool; private int m_poolDepth; private GameObject m_p...
原创
2021-11-18 16:44:46
796阅读
Unity防bug指南从这里开始,我们将会讨论Unity游戏编程中一些常见的非预期情况,以及相应的防范与应对策略。一. 【我血条呢??】——组件查找与组件依赖(本章对于有经验的Unity使用者而言可能太过简单了。如果你认为没有什么值得注意的,可以直接前往下一章。)1.1 获取游戏组件在Unity中,相信大家都了解一个极为常用的方法:GetConponent<T>此方法用于查找并返回游戏
转载
2024-03-27 15:09:16
62阅读
# 如何实现“iOS AVAudioSession 设置setActive”
## 流程图
```mermaid
flowchart TD
A(创建AVAudioSession实例) --> B(设置category)
B --> C(设置mode)
C --> D(激活AVAudioSession)
```
## 关系图
```mermaid
erDiagram
原创
2024-06-27 03:57:09
155阅读
# 使用 `audioSession setActive:YES error` 控制音频会话活跃状态
## 导语
在 iOS 开发中,音频会话是一个重要的概念,它可以管理应用程序与系统之间的音频交互。在某些情况下,我们可能需要手动控制音频会话的活跃状态。本文将详细介绍如何使用 `audioSession setActive:YES error` 方法来激活音频会话,并附带代码示例。
## 什
原创
2023-09-12 06:02:05
377阅读
A:CPU性能优化GPU与CPU不同,侧重点也不一样。GPU的瓶颈主要存在以下方面:1.填充率,可以理解为图形处理每秒渲染的像素数量2.像素的复杂度,比如动态阴影,光照,复杂的shader等等3.几何体的复杂度4.当然还有GPU的显存带宽针对以上几点发现,影像GPU性能的无非就是2大方面,一方面就是顶点数量过多,像素计算过于复杂。另一方面就是GPU的显存带宽。1.减少顶点数目,简化计算的复杂度2.
转载
2024-03-15 15:10:37
92阅读
Unity性能优化方案整理包体大小优化CPU性能优化内存优化模型优化其它 包体大小优化安卓: 更新不透明贴图的压缩格式为ETC 4bit,因为android市场的手机中的GPU有多种, 每家的GPU支持不同的压缩格式,但他们都兼容ETC格式,有透明通道用ETC2 8bit贴图压缩:要求美术使用16位制图,我们选择rgba16位,进行压缩对于透明贴图,我们只能选择RGBA 16bit 或者RGBA
转载
2024-02-20 14:49:49
36阅读
protobuf-net是Unity3D游戏开发中被广泛使用的Google Protocol Buffer库的c#版本,之所以c#版本被广泛使用,是因为c++版本的源代码不支持Unity3D游戏在各个平台上的动态库构建。它是一个网络传输层协议,在GC上有很大的问题,本文对它进行了一次比较彻底的GC优化。从protobuf-net产生GC分析,到给出优化方案,到最后
转载
2024-03-27 20:29:55
59阅读
不在Update方法中创建新对象在Update系列的函数中,比如FixedUpdate,LateUpdate。不应该出现New关键字,而是应该使用已有对象。一次创建,多次重用这条规则的意思是:要在Start方法和Awake方法中分配所有内容。这条规则和第一条类似,其实只是从Update方法移除new关键字的另一种方式。开发者应该从Update方法移除有以下行为的代码:创建新实例寻找任意游戏对象然后
转载
2024-05-29 09:41:53
53阅读
每年整个新活,每年出个手游项目。又到了项目收尾的季节,也是最掉头发的时候。这两周开启漫漫的优化之路。 老方法,先按住Ctrl+7,打开profiler性能分析工具,找到性能占用的大头。不用看也能猜到,Batches是优化的重头戏。一,降低Batches
完成这一步,其实已经做了70%以上的优化工作。但说起来简单,模型、ui、特效七七八八的算下来,都是疑难杂症的点。我们来一个个解决。1,合理使用
转载
2024-03-23 14:14:25
171阅读
使用Profiler工具分析内存占用情况 System.ExecutableAndDlls:系统可执行程序和DLL,是只读的内存,用来执行所有的脚本和DLL引用。不同平台和不同硬件得到的值会不一样,可以通过修改Player Setting的Stripping Level来调节大小。Ricky:我试着修改了一下Stripping Level似乎没什么改变,感觉虽占用内存大但不会影响游戏运行。我们
转载
2019-03-16 11:51:00
348阅读
2评论
一、枚举(enum):1. AVAudioSessionInterruptionOptions:只有一个枚举值AVAudioSessionInterruptionOptionShouldResume,用于中断音频之后,重新激活之前播放的音频。在音频中断时,系统会发送AVAudioSessionInterruptionNotification通知,userInfo中AVAudioSessi
转载
2024-06-12 05:38:09
349阅读