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当前弹夹中子弹数量