[3D跑酷] GUIClickEventReceiver



在我们的Unity手机游戏项目中,GUI的表现采用NGUI。记录一下我们的处理方式:

问题:1、需要处理大量按钮的点击事件

        2、需要处理界面跳转事件

        3、需要处理界面元素更新事件

解决方案:

      GUIClickEventReceiver.cs

      GUIManager.cs

思路:

      GUIClickEventReceiver 解决按钮点击事件

      GUIManager 管理GUI的跳转与更新


实现:

图一:Editor Inspector面板方便选取对应事件

图二:清晰的代码组织结

主要逻辑:

public void OnClick ()
    {
        bool playSoundEffect = true;
        switch (clickType) {
        case ClickType.StartGame:
            GameManager.instance.startGame ();
            break;
        case ClickType.Store:
            GUIManager.instance.showGUI (GUIState.Store);
            break;
        case ClickType.Stats:
            GUIManager.instance.showGUI (GUIState.Stats);
            break;
        case ClickType.DoubleCoinUpgrade:
            GameManager.instance.upgradePowerUp (PowerUpTypes.DoubleCoin);
            break;
        case ClickType.CoinMagnetUpgrade:
            GameManager.instance.upgradePowerUp (PowerUpTypes.CoinMagnet);
            break;
        case ClickType.InvincibilityUpgrade:
            GameManager.instance.upgradePowerUp (PowerUpTypes.Invincibility);
            break;
        case ClickType.AddSpeedUpgrade:
            GameManager.instance.upgradePowerUp (PowerUpTypes.AddSpeed);
            break;
        case ClickType.ProtectionCoverUpgrade:
            GameManager.instance.upgradePowerUp(PowerUpTypes.ProtectionCover);
            break;
        case ClickType.AttackGunUpgrade:
            GameManager.instance.upgradePowerUp(PowerUpTypes.AttackGun);
            break;
        case ClickType.EndGame:
            GUIManager.instance.showGUI (GUIState.EndGame);
            break;
        case ClickType.Restart:
            GameManager.instance.restartGame (true);
            break;
        case ClickType.MainMenu:
            GameManager.instance.backToMainMenu (false);
            break;
        case ClickType.MainMenuRestart:
            GameManager.instance.backToMainMenu (true);
            break;
        case ClickType.Pause:
            GameManager.instance.pauseGame (true);
            playSoundEffect = false;
            break;
        case ClickType.Resume:
            GameManager.instance.pauseGame (false);
            break;
        case ClickType.ToggleTutorial:
            GameManager.instance.toggleTutorial ();
            break;
        case ClickType.Missions:
            GUIManager.instance.showGUI (GUIState.Missions);
            break;
        }

        if (playSoundEffect)
            AudioManager.instance.playSoundEffect (SoundEffects.GUITapSoundEffect);
    }






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scratch是一种编程语言和在线平台,允许用户创建和分享交互式媒体项目。而在Scratch 3D跑酷中,用户可以设计自己的虚拟跑酷场景,并控制角色在场景中奔跑跳跃。通过使用Scratch的编程模块,用户可以为角色添加各种交互动作和规则,使得游戏更具挑战性和趣味性。 在Scratch 3D跑酷中,用户可以设计各种障碍物、平台和道具,为角色创建自定义的动作和动画。用户只需简单地拖动和放置不同的图形模块,就可以创建起跳、滑行、攀爬等各种动作,使得角色可以在复杂多样的地形中顺利前进。此外,用户还可以为角色添加能力,例如超级跳跃、临时无敌等,以帮助角色顺利通过关卡。 在设计关卡时,用户可以灵活运用不同的编程模块,为触发器、障碍物等添加自定义的逻辑和动作。这样,当角色触发某个条件时,系统会根据预设的逻辑执行相应的操作,例如角色受伤、死亡或前进到下一关等。通过这种方式,用户可以轻松创建富有挑战的关卡,并让玩家们享受到更多的乐趣和探索。 Scratch 3D跑酷是一个有趣而富有创造力的项目,它可以激发用户的编程兴趣和创意思维。通过使用Scratch的图形界面和编程模块,用户无需事先具备专业的编程知识,就可以轻松地设计自己的游戏场景和规则。无论是初学者还是有一定编程经验的用户,都可以通过Scratch 3D跑酷,体验到编程的乐趣和成就感。同时,用户还可以将自己的作品分享给其他用户,探索并学习他人的设计和创意。总体而言,Scratch 3D跑酷是一个既有教育意义又富有娱乐性的项目,适合各个年龄段的人群尝试和享受。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值