Skip to content
HotWeaponFireComponent

玩法 / HotWeaponFireComponent

HotWeaponFireComponent Class
​

热武器开火组件,负责维护热武器射击的主要参数,及核心逻辑

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

         if (SystemUtil.isServer()) {
             hotWeapon.fireComponent.isFireOnScreenCenter = false;
             hotWeapon.fireComponent.clipSize = 50;
             hotWeapon.fireComponent.fireInterval = 0;
             hotWeapon.fireComponent.multipleShot = 3;
             hotWeapon.fireComponent.isFireOnScreenCenter = false;
             hotWeapon.fireComponent.offsetOfFireOnScreenCenter = new Vector(100, 30, 0);
             // 设置参数
             hotWeapon.fireComponent.animationAssetId = "80484";
             hotWeapon.fireComponent.onStartFire.add(() => { console.log("fireComponent.onStartFireClient") });
             hotWeapon.fireComponent.onEndFire.add(() => { console.log("fireComponent.onEndFireClient") });
             hotWeapon.fireComponent.onEndContinuousFire.add(() => { console.log("fireComponent.onEndFireClient") });
         }
     }
 }
 @Component
 export default class HotWeaponFireSample1 extends Script {
     protected onStart(): void {
         // 构造
         const hotWeapon = this.gameObject as HotWeapon;

         if (SystemUtil.isServer()) {
             hotWeapon.fireComponent.isFireOnScreenCenter = false;
             hotWeapon.fireComponent.clipSize = 50;
             hotWeapon.fireComponent.fireInterval = 0;
             hotWeapon.fireComponent.multipleShot = 3;
             hotWeapon.fireComponent.isFireOnScreenCenter = false;
             hotWeapon.fireComponent.offsetOfFireOnScreenCenter = new Vector(100, 30, 0);
             // 设置参数
             hotWeapon.fireComponent.animationAssetId = "80484";
             hotWeapon.fireComponent.onStartFire.add(() => { console.log("fireComponent.onStartFireClient") });
             hotWeapon.fireComponent.onEndFire.add(() => { console.log("fireComponent.onEndFireClient") });
             hotWeapon.fireComponent.onEndContinuousFire.add(() => { console.log("fireComponent.onEndFireClient") });
         }
     }
 }

Table of contents ​

Properties
​

onEndContinuousFire: MulticastDelegateInterface<() => void>
服务器完成一次连发射击周期时执行绑定函数。使用示例见类 HotWeaponFireComponent 使用示例
onEndFire: MulticastDelegateInterface<() => void>
服务器停止开火时执行绑定函数。使用示例见类 HotWeaponFireComponent 使用示例
onStartFire: MulticastDelegateInterface<() => void>
服务器开始开火时执行绑定函数。使用示例见类 HotWeaponFireComponent 使用示例

Accessors
​

animationAssetId(): string
绑定的动画GUID。使用示例见类 HotWeaponFireComponent 使用示例
clipSize(): number
获取当前弹夹容量。使用示例见类 HotWeaponFireComponent 使用示例
currentBullet(): number
获取当前弹夹中子弹数量。使用示例见类 HotWeaponFireComponent 使用示例
fireInterval(): number
获取开火间隙。使用示例见类 HotWeaponFireComponent 使用示例
fireMode(): HotWeaponFireMode
获取当前的开火模式
isFireOnScreenCenter(): boolean
获取是否在屏幕中心开火。使用示例见类 HotWeaponFireComponent 使用示例
multipleShot(): number
获取一次开火发射的子弹数量。使用示例见类 HotWeaponFireComponent 使用示例
offsetOfFireOnScreenCenter(): Vector
获取屏幕中心开火时的偏移。使用示例见类 HotWeaponFireComponent 使用示例

Methods
​

isFiring(): boolean
获取当前状态下bFiring的值,一般用于处理全自动开火模式下的自动换弹

Properties ​

onEndContinuousFire
​

• onEndContinuousFire: MulticastDelegateInterface<() => void>

服务器完成一次连发射击周期时执行绑定函数。使用示例见类 HotWeaponFireComponent 使用示例


onEndFire
​

• onEndFire: MulticastDelegateInterface<() => void>

服务器停止开火时执行绑定函数。使用示例见类 HotWeaponFireComponent 使用示例


onStartFire
​

• onStartFire: MulticastDelegateInterface<() => void>

服务器开始开火时执行绑定函数。使用示例见类 HotWeaponFireComponent 使用示例

Accessors ​

animationAssetId
​

• get animationAssetId(): string

• set animationAssetId(GUID): void other

绑定的动画GUID。使用示例见类 HotWeaponFireComponent 使用示例

Returns ​

string绑定的动画 GUID

设置动画 GUID。使用示例见类 HotWeaponFireComponent 使用示例

Parameters ​

GUID string需要设置的蒙太奇动画 GUID range: 依据资源 ID 长度而定

clipSize
​

• get clipSize(): number

• set clipSize(value): void other

获取当前弹夹容量。使用示例见类 HotWeaponFireComponent 使用示例

Returns ​

number当前弹夹容量

设置当前弹夹容量。使用示例见类 HotWeaponFireComponent 使用示例

Precautions

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

Parameters ​

value number当前弹夹容量
default: 30
range: [1, 1000] type:整数

currentBullet
​

• get currentBullet(): number

• set currentBullet(value): void other

获取当前弹夹中子弹数量。使用示例见类 HotWeaponFireComponent 使用示例

Returns ​

number当前弹夹中子弹数量

设置当前弹夹中子弹数量。使用示例见类 HotWeaponFireComponent 使用示例

Parameters ​

value number新弹夹中子弹数量
default: 0
range: [0, clipSize] type:整数

fireInterval
​

• get fireInterval(): number

• set fireInterval(interval): void other

获取开火间隙。使用示例见类 HotWeaponFireComponent 使用示例

Returns ​

number开火间隙

设置开火间隙。使用示例见类 HotWeaponFireComponent 使用示例

Precautions

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

Parameters ​

interval number开火间隙
default: 0.1
range: [0.01, 10] type:浮点数

fireMode
​

• get fireMode(): HotWeaponFireMode

• set fireMode(newFireMode): void

获取当前的开火模式

Returns ​

HotWeaponFireMode当前的开火模式

切换设置当前开火模式

Precautions

装备前只能在服务器调用,装备后可在客户端调用

Parameters ​

newFireMode HotWeaponFireMode新的热武器开火模式
default: 默认为单发 HotWeaponFireMode.SingleFire

isFireOnScreenCenter
​

• get isFireOnScreenCenter(): boolean

• set isFireOnScreenCenter(value): void other

获取是否在屏幕中心开火。使用示例见类 HotWeaponFireComponent 使用示例

Returns ​

boolean是否在屏幕中心开火

设置是否在屏幕中心开火。使用示例见类 HotWeaponFireComponent 使用示例

Precautions

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

Parameters ​

value boolean是否在屏幕中心开火

multipleShot
​

• get multipleShot(): number

• set multipleShot(count): void other

获取一次开火发射的子弹数量。使用示例见类 HotWeaponFireComponent 使用示例

Returns ​

number一次开火发射的子弹数量

设置一次开火发射的子弹数量。使用示例见类 HotWeaponFireComponent 使用示例

Precautions

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

Parameters ​

count number一次开火发射的子弹数量
default: 1
range: [1, 100] type:整数

offsetOfFireOnScreenCenter
​

• get offsetOfFireOnScreenCenter(): Vector

• set offsetOfFireOnScreenCenter(offset): void other

获取屏幕中心开火时的偏移。使用示例见类 HotWeaponFireComponent 使用示例

Returns ​

Vector屏幕中心开火时的偏移

设置屏幕中心开火时的偏移。使用示例见类 HotWeaponFireComponent 使用示例

Precautions

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

Parameters ​

offset Vector屏幕中心开火时的偏移

Methods ​

isFiring
​

• isFiring(): boolean

获取当前状态下bFiring的值,一般用于处理全自动开火模式下的自动换弹

Returns ​

boolean当前弹夹中子弹数量