fix(ignore): 恢复非三角形静态碰撞的忽略,栅栏恢复可穿过

上一版把判定收窄为仅陡峭三角形,导致非三角形静态代理(栅栏碰撞体)仍会挡住本地坦克。现判定:静态几何中非三角形一律忽略;三角形按 |法线z|<0.5 忽略,地面/缓坡保留。
This commit is contained in:
TermiNexus committed 2026-10-21 00:30:00 +08:00
1 parent 69defa85e7
commit bfc3821dc7
3 files changed
+12 -6

No files matched your search

@@ -6672,10 +6672,12 @@
return !IsTankShape(Shape);
}
// 「栅栏类」= 静态几何中法线接近水平(墙/栅栏/悬崖立面)的三角形
// 保持原方案:只按几何判定,不做任何物体白名单
// 「栅栏类」= 静态几何里除地面/缓坡以外的部分:
// · 三角形:法线接近水平(墙/栅栏/悬崖立面)→ 忽略;法线朝上(地面/缓坡)→ 保留
// · 非三角形静态碰撞代理(盒/柱等):地图里这类基本都不是可站立地面 → 忽略
function IsFenceLike(Shape) {
if (!IsStaticShape(Shape)) return false;
if (!IsTriangle(Shape)) return true;
return IsSteepTriangle(Shape);
}
+4 -2
View File
@@ -6672,10 +6672,12 @@
return !IsTankShape(Shape);
}
// 「栅栏类」= 静态几何中法线接近水平(墙/栅栏/悬崖立面)的三角形
// 保持原方案:只按几何判定,不做任何物体白名单
// 「栅栏类」= 静态几何里除地面/缓坡以外的部分:
// · 三角形:法线接近水平(墙/栅栏/悬崖立面)→ 忽略;法线朝上(地面/缓坡)→ 保留
// · 非三角形静态碰撞代理(盒/柱等):地图里这类基本都不是可站立地面 → 忽略
function IsFenceLike(Shape) {
if (!IsStaticShape(Shape)) return false;
if (!IsTriangle(Shape)) return true;
return IsSteepTriangle(Shape);
}
+4 -2
View File
@@ -148,10 +148,12 @@
return !IsTankShape(Shape);
}
// 「栅栏类」= 静态几何中法线接近水平(墙/栅栏/悬崖立面)的三角形
// 保持原方案:只按几何判定,不做任何物体白名单
// 「栅栏类」= 静态几何里除地面/缓坡以外的部分:
// · 三角形:法线接近水平(墙/栅栏/悬崖立面)→ 忽略;法线朝上(地面/缓坡)→ 保留
// · 非三角形静态碰撞代理(盒/柱等):地图里这类基本都不是可站立地面 → 忽略
function IsFenceLike(Shape) {
if (!IsStaticShape(Shape)) return false;
if (!IsTriangle(Shape)) return true;
return IsSteepTriangle(Shape);
}