首页 > 其他分享 >(十一)Unity性能优化-物理优化

(十一)Unity性能优化-物理优化

时间:2023-09-25 21:55:09浏览次数:63  
标签:RigidBody 十一 Collider 对象 RayCast Unity 优化 物理

原链接:https://github.com/lwwhb/Unity2022_SUNTAIL_Stylized_Fantasy_Village_Optimization

Unity中的物理解决方案
Box2D
Nvidia PhysX
Unity Physics
Havok Physics for Unity
Trigger与Collider
Trigger对象的碰撞会被物理引擎所忽略,通过OnTriggerEnter/Stay/Exit函数回调
Collider对象由物理引擎触发碰撞,通过OnCollisionEnter/Stay/Exit函数回调
Trigger对象不需要RigidBody组件,Collider对象必须至少有一个Collider对象有RigidBody组件
Trigger对象更高效
Unity中的物理组件Collider部分的优化
尽量少使用MeshCollider,可以用简单Collider代替,即使用多个简单Collider组合代替也要比复杂的MeshCollider来的高效
MeshCollider是基于三角形面的碰撞
MeshCollider生成的碰撞体网格占用内存也较高
MeshCollider即使要用也要尽量保障其是静态物体
可以通过PlayerSetting选项中勾选Prebake Collision Meshes选项来在构建应用时预先Bake出碰撞网格。
Unity中的物理组件RigidBody部分的优化
Kinematic与RigidBody
Kinematic对象不受物理引擎中力的影响,但可以对其他RigidBody施加物理影响。
RigidBody完全由物理引擎模拟来控制,场景中RigidBody数量越多,物理计算负载越高
勾选了Kinematic选项的RigidBody对象会被认为是Kinematic的,不会增加场景中的RigidBody个数
场景中的RigidBody对象越少越好
Unity中的RayCast与Overlap部分的优化
Unity物理中RayCast与Overlap都有NoAlloc版本的函数,在代码中调用时尽量用NoAlloc版本,这样可以避免不必要的GC开销
尽量调用RayCast与Overlap时要指定对象图层进行对象过滤,并且RayCast要还可以指定距离来减少一些太远的对象查询
此外如果是大量的RayCast操作还可以通过RaycastCommand的方式批量处理,充分利用JobSystem来分摊到多核多线

标签:RigidBody,十一,Collider,对象,RayCast,Unity,优化,物理
From: https://www.cnblogs.com/zerobeyond/p/17728953.html

相关文章

  • 编译器优化记录(死代码消除+“激进的”死代码消除)
    编译器优化记录(3)——死代码消除+”激进的“死代码消除0.什么是死代码消除相信大家在写C++的时候,如果你定义了一个变量但是没有对其使用,大部分IDE都会对这个变量进行灰色的染色。又或者说,当你开了一个空的循环,在里面定义并使用了一堆和输出值/返回值没有关系的变量,这个时候IDE......
  • uniapp项目实践总结(二十二)分包优化和游客模式
    导语:这篇主要介绍应用分包和游客模式相关的内容。目录应用分包游客模式应用分包微信对于小程序的打包压缩后的代码体积是有限制的,网页和APP也可以适用分包功能,因此需要进行分包添加以及分包优化。分包添加在pages.json文件中添加分包的信息。例如:有一个名叫user的分......
  • pytest + yaml 框架 -56. 输出日志优化+allure报告优化
    前言v1.4.8版本优化接口请求和响应输出日志,生成的allure报告也按步骤优化request和response详情日志优化日志用例test_log1:-name:log1request:url:http://127.0.0.1:8000/api/test/demomethod:GETvalidate:-eq:[status_code,200]-eq:......
  • 智慧工地系统源码,实现对施工全过程的实时监控、数据分析、智能管理和优化调控
    智慧工地是指通过信息化技术、物联网、人工智能技术等手段,对建筑工地进行数字化、智能化、网络化升级,实现对施工全过程的实时监控、数据分析、智能管理和优化调控。智慧工地的建设可以提高工地的安全性、效率性和质量,降低施工成本,是建筑行业数字化转型升级的重要抓手。智慧工地物......
  • 智慧工地系统源码,实现对施工全过程的实时监控、数据分析、智能管理和优化调控
    智慧工地是指通过信息化技术、物联网、人工智能技术等手段,对建筑工地进行数字化、智能化、网络化升级,实现对施工全过程的实时监控、数据分析、智能管理和优化调控。智慧工地的建设可以提高工地的安全性、效率性和质量,降低施工成本,是建筑行业数字化转型升级的重要抓手。智慧工地物联......
  • JDK10优化了哪些功能以及新增了哪些特性功能|JDK各个版本的特性分析
    一、前言上一期讲了JDK9的一些新特性,需要回顾的朋友们可以看下这篇文章《JDK9优化了哪些功能以及新增了哪些特性功能》这一期讲一讲JDK10的一些新功能二、新增特性以下是JDK10的一些新增或变化的特性:1.局部变量类型推断(LocalVariableTypeInference):引入了var关键字,允许在局部变......
  • JDK9优化了哪些功能以及新增了哪些特性功能|JDK各个版本的特性分析
    一、前言我们现在大部分公司都在使用jdk8,jdk8的功能主要是增加了lambda流式处理,还有优化了线程安全的时间LocalDate,这里我就先不赘述了,那jdk9相对jdk8优化了哪些功能,以及新增了哪些特性功能呢,下面一一给大家讲述一下二、新增特性以下是一些主要的变化和新增特性:1.模块化系统(Jig......
  • SQL优化-正确使用并行
    一、问题概述 某业务人员反馈帮领导导数据的SQL,执行了20分钟没出结果。同时他疑问为什么加了并行SQL仍然跑的慢?1.1SQL文本SELECT*FROM(SELECTXFSH,XFMC,GFSH,GHFDJXH,kpfs,kpje,ROWNUMASXHFROM(SELECT/*+parallel(64)*/KP.XFSH,......
  • Linux系统优化
     一、系统信息查看方法#查看系统名称信息#cat/etc/redhat-releaseCentOSLinuxrelease7.9.2009(Core)查看系统内核版本#uname-r3.10.0-1160.el7.x86_64查看系统硬件位数#uname-mx86_64二、系统基础优化#2.1添加系统普通用......
  • (十)Unity性能优化-UGUI优化
    原链接:https://github.com/lwwhb/Unity2022_SUNTAIL_Stylized_Fantasy_Village_OptimizationUnityUI性能的四类问题CanvasRe-batch时间过长CanvasOver-dirty,Re-batch次数过多生成网格顶点时间过长Fill-rateoverutilizationCanvas画布​Canvas负责管理UGUI元素,负责UI渲染......