工具 / QueryUtil
QueryUtil Class
射线检测工具
Table of contents
Methods
boxOverlap(boxCenter : Vector , boxExtent : Vector , drawDebug? : boolean , objectsToIgnore? : string [], ignoreByType? : boolean , source? : GameObject ): GameObject [] |
---|
矩形范围检测 |
boxTrace(start : Vector , end : Vector , halfSize : Vector , orientation : Rotation , multiTrace? : boolean , drawDebug? : boolean , objectsToIgnore? : string [], ignoreByType? : boolean , source? : GameObject ): HitResult [] |
盒体射线检测 |
capsuleOverlap(capsuleCenter : Vector , radius : number , halfHeight : number , drawDebug? : boolean , objectsToIgnore? : string [], ignoreByType? : boolean , source? : GameObject ): GameObject [] |
胶囊体范围检测 |
capsuleTrace(start : Vector , end : Vector , radius : number , halfHeight : number , multiTrace? : boolean , drawDebug? : boolean , objectsToIgnore? : string [], ignoreByType? : boolean , source? : GameObject ): HitResult [] |
胶囊体射线检测 |
lineTrace(start : Vector , end : Vector , multiTrace? : boolean , drawDebug? : boolean , objectsToIgnore? : string [], ignoreByType? : boolean , traceSkeletonOnly? : boolean , source? : GameObject ): HitResult [] |
射线检测 |
sphereOverlap(sphereCenter : Vector , sphereRadius : number , drawDebug? : boolean , objectsToIgnore? : string [], ignoreByType? : boolean , source? : GameObject ): GameObject [] |
球形范围检测 |
sphereTrace(start : Vector , end : Vector , radius : number , multiTrace? : boolean , drawDebug? : boolean , objectsToIgnore? : string [], ignoreByType? : boolean , source? : GameObject ): HitResult [] |
球体射线检测 |
Methods
boxOverlap
• Static
boxOverlap(boxCenter
, boxExtent
, drawDebug?
, objectsToIgnore?
, ignoreByType?
, source?
): GameObject
[]
矩形范围检测
Parameters
boxCenter Vector | 矩形中心位置 |
---|---|
boxExtent Vector | 盒体的大小 |
drawDebug? boolean | 是否可视化绘制 default:false |
objectsToIgnore? string [] | 屏蔽对象的GUID数组 default:[] range:不做限制 |
ignoreByType? boolean | 是否按传入对象的类型进行屏蔽 default:false |
source? GameObject | 发起检测的对象(检测源不参与检测) default:null |
Returns
GameObject [] | GameObject数组 |
---|
ts
const goList = QueryUtil.boxOverlap(new mw.Vector(0,0,0), new mw.Vector(1000,0,0), true);
for (const item of goList) {
// item: 检测到的对象
}
const goList = QueryUtil.boxOverlap(new mw.Vector(0,0,0), new mw.Vector(1000,0,0), true);
for (const item of goList) {
// item: 检测到的对象
}
boxTrace
• Static
boxTrace(start
, end
, halfSize
, orientation
, multiTrace?
, drawDebug?
, objectsToIgnore?
, ignoreByType?
, source?
): HitResult
[]
盒体射线检测
Parameters
start Vector | 起始位置 |
---|---|
end Vector | 结束位置 |
halfSize Vector | 盒体半长宽高 |
orientation Rotation | 盒体朝向 |
multiTrace? boolean | 是否穿透检测 default:false |
drawDebug? boolean | 是否可视化绘制 default:false |
objectsToIgnore? string [] | 屏蔽对象guid数组 default:[] range: 不做限制 |
ignoreByType? boolean | 是否按传入对象的类型进行屏蔽 default:false |
source? GameObject | 发起检测的对象(检测源不参与检测) default:null |
Returns
HitResult [] | HitResult数组 |
---|
ts
const ResultList = QueryUtil.boxTrace(new mw.Vector(0,0,0), new mw.Vector(300,0,0), new mw.Vector(10,10,10), new mw.Rotation(0,0,0), true, false, [], false, gameObject);
for (const item of ResultList) {
// item: 检测到的对象
}
const ResultList = QueryUtil.boxTrace(new mw.Vector(0,0,0), new mw.Vector(300,0,0), new mw.Vector(10,10,10), new mw.Rotation(0,0,0), true, false, [], false, gameObject);
for (const item of ResultList) {
// item: 检测到的对象
}
capsuleOverlap
• Static
capsuleOverlap(capsuleCenter
, radius
, halfHeight
, drawDebug?
, objectsToIgnore?
, ignoreByType?
, source?
): GameObject
[]
胶囊体范围检测
Parameters
capsuleCenter Vector | 胶囊体中心位置 |
---|---|
radius number | 胶囊体半径 range: 不做限制,但是请使用合适的半径尺度。 type: 浮点型 |
halfHeight number | 胶囊体半高 range: 不做限制,但是请使用合适的尺度。 type: 浮点型 |
drawDebug? boolean | 是否可视化绘制 default:false |
objectsToIgnore? string [] | 屏蔽对象的GUID数组 default:[] range: 不做限制 |
ignoreByType? boolean | 是否按传入对象的类型进行屏蔽 default:false |
source? GameObject | 发起检测的对象(检测源不参与检测) default:null |
Returns
GameObject [] | GameObject数组 |
---|
ts
const ResultList = QueryUtil.capsuleOverlap(new mw.Vector(0,0,0), 100, false, [], false, gameObject);
for (const item of ResultList) {
// item: 检测到的对象
}
const ResultList = QueryUtil.capsuleOverlap(new mw.Vector(0,0,0), 100, false, [], false, gameObject);
for (const item of ResultList) {
// item: 检测到的对象
}
capsuleTrace
• Static
capsuleTrace(start
, end
, radius
, halfHeight
, multiTrace?
, drawDebug?
, objectsToIgnore?
, ignoreByType?
, source?
): HitResult
[]
胶囊体射线检测
Parameters
start Vector | 起始位置 |
---|---|
end Vector | 结束位置 |
radius number | 胶囊体半径 range: 不做限制,但是请使用合适的半径尺度。 type: 浮点型 |
halfHeight number | 胶囊体半高 range: 不做限制,但是请使用合适的尺度。 type: 浮点型 |
multiTrace? boolean | 是否穿透检测 default:false |
drawDebug? boolean | 是否可视化绘制 default:false |
objectsToIgnore? string [] | 屏蔽对象guid数组 default:[] range: 不做限制 |
ignoreByType? boolean | 是否按传入对象的类型进行屏蔽 default:false |
source? GameObject | 发起检测的对象(检测源不参与检测) default:null |
Returns
HitResult [] | HitResult数组 |
---|
ts
const ResultList = QueryUtil.capsuleTrace(new mw.Vector(0,0,0), new mw.Vector(300,0,0), 5, 10, true, false, [], false, gameObject);
for (const item of ResultList) {
// item: 检测到的对象
}
const ResultList = QueryUtil.capsuleTrace(new mw.Vector(0,0,0), new mw.Vector(300,0,0), 5, 10, true, false, [], false, gameObject);
for (const item of ResultList) {
// item: 检测到的对象
}
lineTrace
• Static
lineTrace(start
, end
, multiTrace?
, drawDebug?
, objectsToIgnore?
, ignoreByType?
, traceSkeletonOnly?
, source?
): HitResult
[]
射线检测
Parameters
start Vector | 起始位置 |
---|---|
end Vector | 结束位置 |
multiTrace? boolean | 是否穿透检测 default:false |
drawDebug? boolean | 是否可视化绘制 default:false |
objectsToIgnore? string [] | 屏蔽对象guid数组 default:[] range: 不做限制 |
ignoreByType? boolean | 是否按传入对象的类型进行屏蔽 default:false |
traceSkeletonOnly? boolean | 是否进行具体部位的检测 default:false |
source? GameObject | 发起检测的对象(检测源不参与检测) default:null |
Returns
HitResult [] | HitResult数组 |
---|
ts
const ResultList = QueryUtil.lineTrace(new mw.Vector(0,0,0), new mw.Vector(300,0,0), true, false, [], false, gameObject, false);
for (const item of ResultList) {
// item: 检测到的对象
}
const ResultList = QueryUtil.lineTrace(new mw.Vector(0,0,0), new mw.Vector(300,0,0), true, false, [], false, gameObject, false);
for (const item of ResultList) {
// item: 检测到的对象
}
sphereOverlap
• Static
sphereOverlap(sphereCenter
, sphereRadius
, drawDebug?
, objectsToIgnore?
, ignoreByType?
, source?
): GameObject
[]
球形范围检测
Parameters
sphereCenter Vector | 球体中心位置 |
---|---|
sphereRadius number | 球体半径 range: 不做限制,但是请使用合适的半径尺度。 type: 浮点型 |
drawDebug? boolean | 是否可视化绘制 default:false |
objectsToIgnore? string [] | 屏蔽对象的GUID数组 default:[] range:不做限制 |
ignoreByType? boolean | 是否按传入对象的类型进行屏蔽 default:false |
source? GameObject | 发起检测的对象(检测源不参与检测) default:null |
Returns
GameObject [] | GameObject数组 |
---|
ts
const ResultList = QueryUtil.sphereOverlap(new mw.Vector(0,0,0), 100, false, [], false, gameObject);
for (const item of ResultList) {
// item: 检测到的对象
}
const ResultList = QueryUtil.sphereOverlap(new mw.Vector(0,0,0), 100, false, [], false, gameObject);
for (const item of ResultList) {
// item: 检测到的对象
}
sphereTrace
• Static
sphereTrace(start
, end
, radius
, multiTrace?
, drawDebug?
, objectsToIgnore?
, ignoreByType?
, source?
): HitResult
[]
球体射线检测
Parameters
start Vector | 起始位置 |
---|---|
end Vector | 结束位置 |
radius number | 球体半径 range: [0, +∞] 但是请使用合适的半径尺度。 type: 浮点型 |
multiTrace? boolean | 是否穿透检测 default:false |
drawDebug? boolean | 是否可视化绘制 default:false |
objectsToIgnore? string [] | 屏蔽对象guid数组 default:[] range: 不做限制 |
ignoreByType? boolean | 是否按传入对象的类型进行屏蔽 default:false |
source? GameObject | 发起检测的对象(检测源不参与检测) default:null |
Returns
HitResult [] | HitResult数组 |
---|
ts
const ResultList = QueryUtil.sphereTrace(new mw.Vector(0,0,0), new mw.Vector(300,0,0), 5, true, false, [], false, gameObject);
for (const item of ResultList) {
// item: 检测到的对象
}
const ResultList = QueryUtil.sphereTrace(new mw.Vector(0,0,0), new mw.Vector(300,0,0), 5, true, false, [], false, gameObject);
for (const item of ResultList) {
// item: 检测到的对象
}