Unity Unirx 可能会用到的一些常用方式

这篇博客介绍了在Unity游戏中如何处理玩家准备状态和按钮点击事件。通过`Observable.WhenAll`方法确保两个按钮都被点击一次后执行特定逻辑,以及监听所有玩家的准备状态,当三个玩家的准备按钮都无法再点击时,标记为所有玩家准备完毕,可以开始游戏。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


        // 由墙上按钮事件去刷新 判断两个按钮都按了一次了 才会执行逻辑

        public void TwoBtnOnClicked()
        {
            var startBtnEvent = ZFPUIFirstPlayerStartBtn.CurrentBtn.onClick.AsObservable().First();
            var wallBtnEvent = ZFPUIFirstPlayerWallBtn.CurrentBtn.onClick.AsObservable().First();
            Observable.WhenAll(startBtnEvent, wallBtnEvent).Subscribe(_ =>
            {
                Debug.Log("加分");
            });
        }

        // 三个玩家都准备好了
        public void AllUIPlayerPrepared()
        {
            ZFPUIFirstPlayerStartBtn[] zFPUIFirstPlayerStartBtns = GetComponentsInChildren<ZFPUIFirstPlayerStartBtn>();

            var player1State = Observable.EveryUpdate().Where(_ => !zFPUIFirstPlayerStartBtns[0].CanClick).First();
            var player2State = Observable.EveryUpdate().Where(_ => !zFPUIFirstPlayerStartBtns[1].CanClick).First();
            var player3State = Observable.EveryUpdate().Where(_ => !zFPUIFirstPlayerStartBtns[2].CanClick).First();
          
            Observable.WhenAll(player1State, player2State, player3State).Subscribe(_ =>
             {
                 Debug.Log("所有玩家都准备好了 可以开始游戏了");
             });
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值