Unity物理检测Physics
unity版本:2022.3.1f1
Capsule的6种检测方法以及结果

绿色碰撞区域为对应的检测区域



Sphere检测的6种方法和结果




Box检测的6种方法和结果




总结
Check和Overlap都是传入不同的范围,检测是否处于范围内的方法,经检测,都是符合预期的比较准确的方法
Cast方法是先创建一个3D空间,然后根据参数向指定方向投射指定距离。其中CapsuleCast、SphereCast和BoxCast的检测区域不包含创建的3D空间,且靠近投射体本身的区域会有一定的误差范围;而Cast和CastNonAlloc的检测区域会包含自身,且检测范围也比较准确
综上所述,6种检测方法中,只有Cast不太准确,不推荐使用
性能消耗对比
Check < Overlap < Cast
Box < Sphere < Capsule
下面附上测试代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestPhysics : MonoBehaviour
{
public int checkType = 1;
public int idx = 1;
public GameObject obj1;
public GameObject obj2;
public GameObject cube;
MeshRenderer mesh;
Collider[] colliders = new Collider[10];
RaycastHit[] raycastHits

文章详细比较了Unity2022.3.1f1中Capsule、Sphere和Box的6种物理检测方法,发现Cast方法不够准确,其他检测方法性能和准确性相对较好。作者提供了测试代码以展示各种检测类型的使用和效果。

9285

被折叠的 条评论
为什么被折叠?



