Skip to content
HotWeaponAccuracyOfFireComponent

玩法 / HotWeaponAccuracyOfFireComponent

HotWeaponAccuracyOfFireComponent Class

热武器射击精度组件

武器射击精度是指武器在射击时的命中目标的准确性和精度程度。它描述了武器在使用时弹道路径的稳定性和预测性,以及射击的命中率和精度。控制热武器发射时,子弹的发散程度,默认状态下为最小发散程度.

武器射击精度可以用一个简单的比喻来描述:它就像是你打篮球时的投篮准确度。

当你投篮时,你希望篮球准确地进入篮筐,而不是偏离目标。这就是投篮的精度。在武器射击中,精度指的是武器发射的子弹能够准确地命中目标,而不是随意地朝着其他方向飞行。

使用示例: 创建一个名为"HotWeaponAofSample1"的脚本,放置在对象管理器中,打开脚本,输入以下代码保存,运行游戏,代码如下:
ts
@Component
export default class HotWeaponAofSample1 extends Script {
    protected onStart(): void {
        // 构造
        const hotWeapon = this.gameObject as HotWeapon;

        if (SystemUtil.isServer()) {
            hotWeapon.accuracyOfFireEnable = true;
            // 影响射击精度的子弹偏移半角的最大值(范围Min~88)
            hotWeapon.accuracyOfFireComponent.maxDispersionHalfAngle = 4;
            // 影响射击精度的子弹偏移半角的最小值(范围0~Max)
            hotWeapon.accuracyOfFireComponent.minDispersionHalfAngle = 0.01;
            // 默认影响射击精度的子弹偏移半角(范围Min~Max)
            hotWeapon.accuracyOfFireComponent.defaultDispersionHalfAngle = 1;
            // 影响射击精度的子弹偏移半角的每秒扩张速度(范围0~88)
            hotWeapon.accuracyOfFireComponent.dispersionHalfAngleIncreaseSpeed = 5;
            // 影响射击精度的子弹偏移半角的每秒收缩速度(范围0~88)
            hotWeapon.accuracyOfFireComponent.dispersionHalfAngleDecreaseSpeed = 10;
            // 影响射击精度的子弹偏移半角的每次开火扩张值(范围0~88)
            hotWeapon.accuracyOfFireComponent.dispersionHalfAngleIncreasePerShot = 1;
        } else if (SystemUtil.isClient()) {
            hotWeapon.accuracyOfFireComponent.onCurrentDispersionChangedClient.add(() => { console.log("accuracyOfFireComponent.onCurrentDispersionChangedClient") });
        }
    }
}
@Component
export default class HotWeaponAofSample1 extends Script {
    protected onStart(): void {
        // 构造
        const hotWeapon = this.gameObject as HotWeapon;

        if (SystemUtil.isServer()) {
            hotWeapon.accuracyOfFireEnable = true;
            // 影响射击精度的子弹偏移半角的最大值(范围Min~88)
            hotWeapon.accuracyOfFireComponent.maxDispersionHalfAngle = 4;
            // 影响射击精度的子弹偏移半角的最小值(范围0~Max)
            hotWeapon.accuracyOfFireComponent.minDispersionHalfAngle = 0.01;
            // 默认影响射击精度的子弹偏移半角(范围Min~Max)
            hotWeapon.accuracyOfFireComponent.defaultDispersionHalfAngle = 1;
            // 影响射击精度的子弹偏移半角的每秒扩张速度(范围0~88)
            hotWeapon.accuracyOfFireComponent.dispersionHalfAngleIncreaseSpeed = 5;
            // 影响射击精度的子弹偏移半角的每秒收缩速度(范围0~88)
            hotWeapon.accuracyOfFireComponent.dispersionHalfAngleDecreaseSpeed = 10;
            // 影响射击精度的子弹偏移半角的每次开火扩张值(范围0~88)
            hotWeapon.accuracyOfFireComponent.dispersionHalfAngleIncreasePerShot = 1;
        } else if (SystemUtil.isClient()) {
            hotWeapon.accuracyOfFireComponent.onCurrentDispersionChangedClient.add(() => { console.log("accuracyOfFireComponent.onCurrentDispersionChangedClient") });
        }
    }
}

Table of contents

Properties

onCurrentDispersionChange: MulticastDelegateInterface<() => void>
客户端实际射击精度值发生变化时执行绑定函数。

Accessors

defaultDispersionHalfAngle(): number
获取子弹随机发散范围的默认半径。
dispersionHalfAngleDecreaseSpeed(): number
获取子弹随机发散范围半径的收缩速度。
dispersionHalfAngleIncreasePerShot(): number
获取子弹随机发散范围半径在每次射击后的扩张值。
dispersionHalfAngleIncreaseSpeed(): number
获取子弹随机发散范围半径的扩张速度。
maxDispersionHalfAngle(): number
获取子弹随机发散范围的最大半径。
minDispersionHalfAngle(): number
获取子弹随机发散范围的最小半径。

Methods

getCurrentDispersionHalfAngle(): number
获取当前子弹随机发散范围半径实际值
getRandomShootDir(shootDir: Vector): Vector
获取根据射击精度角度范围定义的圆锥空间中的随机射击单位矢量(以屏幕角度)
getTargetDispersionHalfAngle(): number
设置目标子弹随机发散范围半径实际值

Properties

onCurrentDispersionChange

onCurrentDispersionChange: MulticastDelegateInterface<() => void>

客户端实际射击精度值发生变化时执行绑定函数。

Accessors

defaultDispersionHalfAngle

get defaultDispersionHalfAngle(): number

set defaultDispersionHalfAngle(NewValue): void

获取子弹随机发散范围的默认半径。

Returns

number圆型范围半径值

设置子弹随机发散范围的默认半径。

Precautions

装备热武器前仅服务器调用,装备后双端都可调用

Parameters

NewValue number新设置的圆型范围半径值
default:
range: type:浮点数

dispersionHalfAngleDecreaseSpeed

get dispersionHalfAngleDecreaseSpeed(): number

set dispersionHalfAngleDecreaseSpeed(NewValue): void other

获取子弹随机发散范围半径的收缩速度。

Returns

number圆型范围半径每秒变化量

设置子弹随机发散范围半径的收缩速度。

Precautions

装备热武器前仅服务器调用,装备后双端都可调用

Parameters

NewValue number新设置的圆型范围半径每秒变化量 default:

dispersionHalfAngleIncreasePerShot

get dispersionHalfAngleIncreasePerShot(): number

set dispersionHalfAngleIncreasePerShot(NewValue): void other

获取子弹随机发散范围半径在每次射击后的扩张值。

Returns

number圆型范围半径增量

设置子弹随机发散范围半径在每次射击后的扩张值。

Precautions

装备热武器前仅服务器调用,装备后双端都可调用

Parameters

NewValue number新设置的圆型范围半径增量 default:

dispersionHalfAngleIncreaseSpeed

get dispersionHalfAngleIncreaseSpeed(): number

set dispersionHalfAngleIncreaseSpeed(NewValue): void other

获取子弹随机发散范围半径的扩张速度。

Returns

number圆型范围半径每秒变化量

设置子弹随机发散范围半径的扩张速度。

Precautions

装备热武器前仅服务器调用,装备后双端都可调用

Parameters

NewValue number新设置的圆型范围半径每秒变化量 default:

maxDispersionHalfAngle

get maxDispersionHalfAngle(): number

set maxDispersionHalfAngle(NewValue): void

获取子弹随机发散范围的最大半径。

Returns

number圆型范围半径值

设置子弹随机发散范围的最大半径。

Precautions

装备热武器前仅服务器调用,装备后双端都可调用

Parameters

NewValue number新设置的圆型范围半径值 default:

minDispersionHalfAngle

get minDispersionHalfAngle(): number

set minDispersionHalfAngle(NewValue): void other

获取子弹随机发散范围的最小半径。

Returns

number圆型范围半径值

设置子弹随机发散范围的最小半径。

Precautions

装备热武器前仅服务器调用,装备后双端都可调用

Parameters

NewValue number新设置的圆型范围半径值 default:

Methods

getCurrentDispersionHalfAngle

getCurrentDispersionHalfAngle(): number

获取当前子弹随机发散范围半径实际值

Returns

number当前子弹发散范围半径

getRandomShootDir

getRandomShootDir(shootDir): Vector

获取根据射击精度角度范围定义的圆锥空间中的随机射击单位矢量(以屏幕角度)

Parameters

shootDir Vector未发生偏移的最初子弹飞行方向 default:

Returns

Vector随机屏幕偏移坐标

以屏幕中心处生成子弹,可直接套用该矢量

以预设位置处生成子弹,需要以 预设位置 + 该矢量 + 最大射击距离 决定着弹点,再计算实际三维空间中子弹的飞行方向


getTargetDispersionHalfAngle

getTargetDispersionHalfAngle(): number

设置目标子弹随机发散范围半径实际值

Returns

number目标子弹发散范围半径