原型模式介绍 原型模式通过复制现有对象来创建新对象,而不是通过实例化新对象并设置其属性值。原型模式允许我们在运行时动态地创建对象,并且避免了创建复杂对象时的构造逻辑。在原型模式中,通常有一个原型对象作为模板,当需要创建新对象时,可以通过复制原型对象来得到一个新的对象副本。这样做可以提高性能,尤其是在创建对象的过程中涉及到复杂的初始化操作或资源消耗较大的情况下。
代理器模式 代理模式是一种结构性设计模式,其中一个对象(代理)充当另一个对象(真实对象)的接口。代理控制着对真实对象的访问,允许你在访问真实对象之前或之后执行特定操作。这可以用于实现延迟加载、访问控制、日志记录等功能,而无需直接修改真实对象的代码。
常用的位操作符 按位与(&): 将两个操作数的对应位都设为1时结果为1,否则为0。例如,1010 & 1100 = 1000。按位或(|): 将两个操作数的对应位中只要有一个为1时结果为1,否则为0。例如,1010 | 1100 = 1110。按位异或(^): 将两个操作数的对应位不相同时结果为1,相同时结果为0。例如,1010 ^ 1100 = 0110。按位取反(~): 将操作数的每个位取反,即0变为1,1变为0。例如,~1010 = 0101。左移(<<): 将一个数的二进制位向
如何降低DrawCall 静态合并(Static Batching):Unity可以将静态(不移动、不旋转、不缩放)且共享相同材质的游戏对象合并为一个大的Mesh,从而减少Draw Calls。如何进行静态合批:PlayerSettings中开启static batching,对需要静态合批物体的Static打钩动态合并(Dynamic Batching):对于较小的、共享相同材质的动态游戏对象,Unity也能在运行时动态地将它们合并在一起,减少Draw Calls。动态合批是全自动的,我们不需要做任何事情。
Unity如何优化内存 减少纹理大小和分辨率:大的纹理消耗大量内存。考虑降低纹理的分辨率或使用压缩格式。使用Mesh优化:简化3D模型的多边形数量,移除不必要的顶点。音频剪辑优化:压缩音频文件,使用适合场景的最低合理质量。Asset Bundles:动态加载和卸载资源,按需加载资源,避免一次性加载全部资源。
MeshRender中的material和Sharedmaterial的区别 Material 属性指向的是一个实例化的材质对象。当你通过 renderer.material 获取或设置材质时,会创建该材质的一个副本,并将其应用于当前的 MeshRenderer。这意味着对于同一个 MeshRenderer,如果多次获取其 material,将会得到多个不同的材质实例。修改 material 属性获取的材质的属性(如颜色、贴图等)只会影响当前的 MeshRenderer,不会影响其他使用相同材质的 MeshRenderer。
什么是MVC框架 MVC(Model-View-Controller)是一种软件设计模式,用于将应用程序分解为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。每个组件都有其独特的责任和作用,以实现代码的分离和更好的可维护性。
接口(Interface)与抽象类之间的不同 接口:接口定义了一组抽象方法的集合,但不包含具体的实现。接口中的所有方法默认都是公共的,并且不包含字段或常量。抽象类:抽象类是一种特殊的类,可以包含抽象方法和具体方法。抽象方法是没有实现体的方法,而具体方法是有实现体的方法。抽象类可以包含字段、构造方法和非抽象方法。