玩法 / 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
• | • | ||||
---|---|---|---|---|---|
获取子弹随机发散范围的默认半径。 Returns
| 设置子弹随机发散范围的默认半径。 Precautions 装备热武器前仅服务器调用,装备后双端都可调用 Parameters
|
dispersionHalfAngleDecreaseSpeed
• | • | ||||
---|---|---|---|---|---|
获取子弹随机发散范围半径的收缩速度。 Returns
| 设置子弹随机发散范围半径的收缩速度。 Precautions 装备热武器前仅服务器调用,装备后双端都可调用 Parameters
|
dispersionHalfAngleIncreasePerShot
• | • | ||||
---|---|---|---|---|---|
获取子弹随机发散范围半径在每次射击后的扩张值。 Returns
| 设置子弹随机发散范围半径在每次射击后的扩张值。 Precautions 装备热武器前仅服务器调用,装备后双端都可调用 Parameters
|
dispersionHalfAngleIncreaseSpeed
• | • | ||||
---|---|---|---|---|---|
获取子弹随机发散范围半径的扩张速度。 Returns
| 设置子弹随机发散范围半径的扩张速度。 Precautions 装备热武器前仅服务器调用,装备后双端都可调用 Parameters
|
maxDispersionHalfAngle
• | • | ||||
---|---|---|---|---|---|
获取子弹随机发散范围的最大半径。 Returns
| 设置子弹随机发散范围的最大半径。 Precautions 装备热武器前仅服务器调用,装备后双端都可调用 Parameters
|
minDispersionHalfAngle
• | • | ||||
---|---|---|---|---|---|
获取子弹随机发散范围的最小半径。 Returns
| 设置子弹随机发散范围的最小半径。 Precautions 装备热武器前仅服务器调用,装备后双端都可调用 Parameters
|
Methods
getCurrentDispersionHalfAngle
• getCurrentDispersionHalfAngle(): number
获取当前子弹随机发散范围半径实际值
Returns
number | 当前子弹发散范围半径 |
---|
getRandomShootDir
• getRandomShootDir(shootDir
): Vector
获取根据射击精度角度范围定义的圆锥空间中的随机射击单位矢量(以屏幕角度)
Parameters
shootDir Vector | 未发生偏移的最初子弹飞行方向 default: |
---|
Returns
Vector | 随机屏幕偏移坐标 |
---|
以屏幕中心处生成子弹,可直接套用该矢量
以预设位置处生成子弹,需要以 预设位置 + 该矢量 + 最大射击距离 决定着弹点,再计算实际三维空间中子弹的飞行方向
getTargetDispersionHalfAngle
• getTargetDispersionHalfAngle(): number
设置目标子弹随机发散范围半径实际值
Returns
number | 目标子弹发散范围半径 |
---|