fix(ignore): 恢复非三角形静态碰撞的忽略,栅栏恢复可穿过
上一版把判定收窄为仅陡峭三角形,导致非三角形静态代理(栅栏碰撞体)仍会挡住本地坦克。现判定:静态几何中非三角形一律忽略;三角形按 |法线z|<0.5 忽略,地面/缓坡保留。
This commit is contained in:
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
@@ -6672,10 +6672,12 @@
|
||||
return !IsTankShape(Shape);
|
||||
}
|
||||
|
||||
// 「栅栏类」= 静态几何中法线接近水平(墙/栅栏/悬崖立面)的三角形
|
||||
// 保持原方案:只按几何判定,不做任何物体白名单
|
||||
// 「栅栏类」= 静态几何里除地面/缓坡以外的部分:
|
||||
// · 三角形:法线接近水平(墙/栅栏/悬崖立面)→ 忽略;法线朝上(地面/缓坡)→ 保留
|
||||
// · 非三角形静态碰撞代理(盒/柱等):地图里这类基本都不是可站立地面 → 忽略
|
||||
function IsFenceLike(Shape) {
|
||||
if (!IsStaticShape(Shape)) return false;
|
||||
if (!IsTriangle(Shape)) return true;
|
||||
return IsSteepTriangle(Shape);
|
||||
}
|
||||
|
||||
|
||||
@@ -148,10 +148,12 @@
|
||||
return !IsTankShape(Shape);
|
||||
}
|
||||
|
||||
// 「栅栏类」= 静态几何中法线接近水平(墙/栅栏/悬崖立面)的三角形
|
||||
// 保持原方案:只按几何判定,不做任何物体白名单
|
||||
// 「栅栏类」= 静态几何里除地面/缓坡以外的部分:
|
||||
// · 三角形:法线接近水平(墙/栅栏/悬崖立面)→ 忽略;法线朝上(地面/缓坡)→ 保留
|
||||
// · 非三角形静态碰撞代理(盒/柱等):地图里这类基本都不是可站立地面 → 忽略
|
||||
function IsFenceLike(Shape) {
|
||||
if (!IsStaticShape(Shape)) return false;
|
||||
if (!IsTriangle(Shape)) return true;
|
||||
return IsSteepTriangle(Shape);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user