工具 / 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: 检测到的对象
}