战斗区预制体

[复制链接]
1605 |6
kk 发表于 2023-3-30 14:56:08 | 显示全部楼层 |阅读模式
想在玩家从战斗区回到大厅的的时候,回调一个事件,要把事件添加到哪里
回复

使用道具 举报

空伊伊 发表于 2023-3-30 15:16:33 | 显示全部楼层
可以用Action来写


class Battle {

    onMoveToLobby: Action = new Action()

    /**移动至大厅 */
    moveToLobby() {
        // 派发事件
        this.onMoveToLobby.call()
    }

}


// 假设这是其它脚本
Battle的实例.onMoveToLobby.add(() => {
    // 移动至大厅事件触发时的具体逻辑
})

回复

使用道具 举报

kk楼主 发表于 2023-3-30 15:25:58 | 显示全部楼层
回复

使用道具 举报

犯困嫌疑人 发表于 2023-3-30 17:05:33 | 显示全部楼层


PrefabEvent.PrefabEvtRecordPoint.onBackCurrentRecordPoint(async (senderGuid: string) => {
                let go = await Core.GameObject.asyncFind(senderGuid);
                if (go instanceof Gameplay.Character) {
                    let char = go as Gameplay.Character;
                    if (char.player.getPlayerID() == Gameplay.getCurrentPlayer().getPlayerID()) {
                        this.client_updatePos();
                    }
                }
            })
            PrefabEvent.PrefabEvtFight.onDie(async (targetGuid: string) => {
                let go = await Core.GameObject.asyncFind(targetGuid);
                if (go instanceof Gameplay.Character) {
                    let char = go as Gameplay.Character;
                    if (char.player.getPlayerID() == Gameplay.getCurrentPlayer().getPlayerID()) {
                        this.isInBattle = this.isAllowedRelife;
                    }
                }
            })


可以在代码中找到上面这两段,this.isInBattle是设置玩家是否在战斗区域内的一个变量,它会改变玩家在复活的时候复活的位置。
回复

使用道具 举报

犯困嫌疑人 发表于 2023-3-30 17:06:57 | 显示全部楼层
犯困嫌疑人 发表于 2023-3-30 17:05
《---myCode-TypeScript---》

PrefabEvent.PrefabEvtRecordPoint.onBackCurrentRecordPoint(async (sende ...

如果是在战斗中去监听是否回到了战斗区可以监听onDie里面。
但是如果想要的是整个战斗区的状态变换可以去状态机里面去找到对应的状态机

回复

使用道具 举报

犯困嫌疑人 发表于 2023-3-30 17:08:59 | 显示全部楼层
犯困嫌疑人 发表于 2023-3-30 17:06
如果是在战斗中去监听是否回到了战斗区可以监听onDie里面。
但是如果想要的是整个战斗区的状态变换可以去 ...

BattleAreaBattleState.ts 这个脚本是战斗区为战斗状态的运行的脚本。


if (this._restTime <= 0) {
this.machine.changeState(BattleAreaPrepareState);
}



而上面这一段代码则是从战斗区的战斗状态进入到了准备状态。需要注意的是这一段只是服务器的代码。
回复

使用道具 举报

kk楼主 发表于 2023-3-30 17:27:36 | 显示全部楼层
犯困嫌疑人 发表于 2023-3-30 17:08
BattleAreaBattleState.ts 这个脚本是战斗区为战斗状态的运行的脚本。

收到
回复

使用道具 举报

72小时热榜
热门版块
快速回复 返回顶部 返回列表