我们知道unity可以使用任何建模软件构造的3D模型,但是有一些简单的模型,或者临时测试对象,就不必要使用建模软件来构造了,因为那样效率非常低下。比如你正在测试一个算法,只需要一个物体就可以代表一辆汽车在运动了。因此,unity提供了一些基本的模型创建,命名为Cube(立方体),Sphere(球体), Capsule(胶囊体), Cylinder(圆柱体), Plane(平面)和 Quad(四方形
转载
2024-04-21 18:52:08
127阅读
注:本文中用到的大部分术语和函数都是Unity中比较基本的概念,所以本文只是直接引用,不再详细解释各种概念的具体内容,若要深入了解,请查阅相关资料。 Unity的资源陷阱游戏资源的加载和释放导致的内存泄漏问题一直是Unity游戏开发的一个黑洞。因此导致游戏拖慢,卡顿甚至闪退问题成为了Unity游戏的一个常见症状。究其根源,一方面是因游戏设备尤其是Unity擅长的移动设备运行内存非常有限,
转载
2024-02-17 12:21:16
152阅读
Unity静态合批前言之前写这篇笔记的时候,对静态合批也是半知半解。最近也就稍微细的了解了一下所谓的静态合批究竟是个啥,在此作下笔记。静态合批就属于那种听上去很常用很实用,但是实际上并没有很多手游使用的优化方式(端游上常用)。 批量渲染批量渲染又叫做合批,是一种通过减少DC来提升逻辑线和渲染线整体效率的方法。但这是建立在GPU相对空闲,而CPU把更多的时间都耗费在渲染命令的提交上时,才有意义。因为
转载
2024-04-25 06:38:31
152阅读
下面的示例解释了为Unity3D引擎编写脚本的时候如何来使用静态变量.本文示例的脚本使用C#编写,同样的适用于javascript。 在深入主题之前,必须要清楚地是我们应该尽量避免使用静态变量,有大量的缘由可以很容易在网上找到.大部分时候使用单例更好。了解了上面的东西之后,这里有一个对静态变量的简单定义:它们是属于类的变量,不属于对象或类创建。这意味着静态变量始终保持同样的值,不论给定类
转载
2024-04-21 16:15:04
67阅读
1、介绍2、滚一个骰子3、导入模型4、添加脚本5、方法6、识别骰子上的随机面值 客观的这篇文章的主要目的是给你一个关于如何在Unity 3D中掷骰子的想法。 第一步介绍1、构建一个棋盘游戏,但对骰子有问题;这里是一个示例代码,演示如何像真正的骰子一样掷骰子,以及如何在游戏控2、制台上识别骰子的表面值。3、这个问题分为两个主要部分:4、如何掷骰子?5、确定在1和6之间的随机整数(
转载
2024-05-18 03:06:15
224阅读
1.什么是UGUI优化,UGUI优化的理论基础1.1理论基础 Canvas, 是Unity渲染系统给层状几何体( layered geometry )提供的可以被画入、被放在上面或者放在世界空间的底层Unity组件。Canvas负责将它包含的几何体组合成batch,生成合适的渲染命令发送给Unity图形系统。这个过程在底层的C++代码中完成,这个过程被称为
转载
2024-08-12 14:51:29
68阅读
博主近来开始学习Unity 打算做一些笔记来督促自己学习,希望这样能改一改自己拖延以及坚持不久的坏毛病…… 这些笔记里主要会写一些博主学习时遇到的一些疑惑的地方,可能会有一些很弱智的,也可能是比较有用的。由于博主刚刚开始学习Unity,所以很可能在文章中间有一些说错的地方,希望观众同学们及时帮忙指出,lz也会及时订正。共同进步…… 以下开始是正文: 在官方
转载
2024-02-28 20:40:56
85阅读
概述本篇博客作为上一篇文章【Unity2D案例学习——背包系统制作】()的补充内容,同样来自b站up主M_Studio 在之前的制作中,该项目已经可以实现在Unity引擎中的正常运作——玩家可以收集场景物品到背包中,在背包中拖拽调整物品的位置,并在数据库文件中保存这些操作数据。但将游戏导出后,运行时所作的操作并不能保存到下一次游戏的开启。因此我们需要学习保存和读取ScriptableObject通
转载
2024-03-21 09:30:03
81阅读
我觉得Unity里面的Transform 和 GameObject就像两个双胞胎兄弟一样,这俩哥们很要好,我能直接找到你,你也能直接找到我。我看很多人喜欢在类里面去保存GameObject对象。解决GameObject.Find()无法获取天生activie = false的问题。 private GameObject root; 我觉得你最好不要保存GameObject ,而是去保存Trans
转载
2024-03-24 12:28:56
149阅读
在inspector面板的static打钩,在Build的时候Unity会自动提取这些共享材质的模型的Vertexbuffer和indexbuffer,将这些数据变换到世界空间下,存储在新构建的大VertexBuffer和IndexBuffer中(内存占用翻倍),并且记录每一个子模型的Index buffer数据在构建的大Index buffer中的起始及结束位置。 在后续的
转载
2024-05-16 12:15:58
35阅读
合并网格的目的为了方便Call Drall 静、动态批处理优化为了方便模型部分更换、换装什么模型适合合并网格并不是越多模型合并越好哦。那是没有任何意义的。因为他们依旧是一个复杂的模型。 颗粒度较高、相对静态、重复率较高的模型组合,都适合合并 。比如重复率较高的建筑模型、物品。合并网格的几种方法1 静态物体自动合并(不会改变结构也不会移动的物体,适用于背景)所有被设置为静态的物体的Mesh Filt
转载
2024-04-03 20:12:20
232阅读
一、Scene 场景简介、二、添加游戏物体、三、操作游戏物体、1、选中游戏物体、2、场景显示效果缩放、3、重命名游戏物体、4、复制游戏物体、5、删除游戏物体、
原创
2022-11-13 01:26:06
235阅读
要进入静态批处理,需要给到channel,unity的channel保存的是包括顶点信息,uv信息之类的材质相关信息。PrePassRenderLoop::RenderBasePass或者 ForwardShaderRenderLoop::PerformRendering或者ForwardShaderRenderLoop::CollectShadows或者PrePassRenderLoop::Re
转载
2024-09-05 08:45:21
110阅读
静态批处理[1]
定义标明为 Static 的静态物件,如果在使用相同材质球的条件下,在Build(项目打包)的时候Unity会自动地提取这些共享材质的静态模型的Vertex buffer和Index buffer。根据其摆放在场景中的位置等最终状态信息,将这些模型的顶点数据变换到世界空间下,存储在新构建的大Vertex buffer和Index buffer中。并且记录每一个子模型的Index
序列化变量后拖游戏对象的方法就不说了,最简单也是最麻烦的方法。1.GameObject.Find()通过场景里面的名子或者一个路径直接获取游戏对象。 GameObject root = GameObject.Find(“GameObject”);我觉得如果游戏对象没再最上层,那么最好使用路径的方法,因为有可能你的游戏对象会有重名的情况,路径用“/”符号隔开即可。GameObject ro
转载
2024-03-28 16:40:32
63阅读
【Unity3D实战】RPG黑暗之光Scene3:创建游戏运行场景及角色控制1、创建场景:
基于上一个场景做一份拷贝,删除UI Root下的所有组件(除Camera外)。删除CharacterCreation物体。
2、标签管理:
创建脚本Tags.cs管理全局的标签。比如:
public const string ground = "Ground"; //const 标明这个是一个共有的不可变的
转载
2024-08-20 15:12:33
33阅读
我觉得Unity里面的Transform 和 GameObject就像两个双胞胎兄弟一样,这俩哥们很要好,我能直接找到你,你也能直接找到我。我看很多人喜欢在类里面去保存GameObject对象。解决GameObject.Find()无法获取天生activie = false的问题。private GameObject root ;我觉得你最好不要保存GameObject ,而是去保存Transfo
转载
2024-04-23 20:11:27
27阅读
第一部分 --- 对象的创建和观察方式1.创建方式分为两种:一.在层级面板中鼠标右键创建和用顶上的gameobject来创建2.平面(quad)和四边形(plane)的区别:在引擎中物体都是由网格(三角形)构成的其中平面是由很多的三角形组成的,而四边形则是由较少的三角形组成换句话说,平面是由很多的四边形组成的然后平面和四边形都有一个特点:它们都是单面,只有一面可视,另一面是不可视的 4.
转载
2024-03-20 10:22:39
135阅读
层次细节(LOD),它是根据物体在游戏画面中所占视图的百分比来调用不同复杂度的模型的。简单而言,就是当一个物体距离摄像机比较远的时候使用低模,当物体距离摄像机比较近的时候使用高模。这是一种优化游戏渲染效率的常用方法,缺点是占用大量内存。使用这个技术,一般是在解决运行时流畅度的问题,采用的是空间换时间的方式。 &nb
转载
2024-06-06 23:35:34
408阅读
静态批处理[1]
定义标明为 Static 的静态物件,如果在使用相同材质球的条件下,在Build(项目打包)的时候Unity会自动地提取这些共享材质的静态模型的Vertex buffer和Index buffer。根据其摆放在场景中的位置等最终状态信息,将这些模型的顶点数据变换到世界空间下,存储在新构建的大Vertex buffer和Index buffer中。并且记录每一个子模型的Index