[3D跑酷] GUIClickEventReceiver

Unity3D游戏开发之详解 Animation类和Animator类 Unity3D游戏开发之详解 Animation类和Animator类 Animation类 animation组件用于播放动画。可以指定动画剪辑到动画组件并从脚本控制动画播放。在Unity的动画系统基于权重并且支持动画融合,叠加动画,动画混合,标签和完全控制动画播放的各个方面。 如果想播放一个简单的动画,可以使用Animation.Play;如果想在动画之间交叉淡入,可以使用Ani 阅读详情



在我们的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);
    }






[Unity][Shader][跑酷弯曲shader原理] 1: 在vertex and fragment shader中,在渲染阶段控制物体顶点的偏移,可以动态做出一些不错的效果,其一就是跑酷常见的路面弯曲效果。 2: 消耗~~几乎没增加什么渲染负担。 阅读详情

相关推荐

Unity3D游戏开发之设置Avatar

Unity3D游戏开发之设置Avatar   MecAnim通过Avatar这个代理来实现设置角色动画中的骨架和蒙皮。动画类型(Animation Type)选择人形动画(Hmumanoid)。Avatar设定选择 “Create From This Mode”。则可以为这个模型定义Avatar。如果选择 “Copy From Other Avatar”,则可以从其他定义好的Avatar拷贝过

1万+

Unity3D跑酷游戏开发-无尽的道路 (原创教程)

学习unity已有一个月了,现在想想有点太冲动了,嘿

subsystemp的专栏 2万+

Unity3D游戏开发之虚拟现实项目开发流程

Unity3D游戏开发之虚拟现实项目开发流程  欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,【狗刨学习网】unity极致学院,致力于打造业内unity3d培训、学习第一品牌。 一、系统设计与资料的收集与整理 1.              与项目投资单位沟通并进行系统设计; 2.

8111

unity 跑酷游戏开发笔记

跑酷游戏制作笔记 2014.9.5 学了unity有一段时间了。想想也是要多锻炼自己的编程功夫了。开始想做rpg的游戏。不过感觉应该耗时会有点久。现在时间又有点紧,想想就还是先做跑酷的吧。之后有时间在做rpg的游戏。 跑酷类的我没有看过相关的教程什么的。所以不太清楚别人的是怎么开发的。我现在也有一些开发的思路。大神们如果看到我的有什么错误欢迎提出来。不过就不要喷我了。。我毕竟也是一个新手。就

某胖子 2098

游戏中跟踪弹算法

欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多Unity3D资源、Unity3D培训视频、Unity3D教程、Unity3D常见问题、Unity3D项目源码,【狗刨学习网】unity极致学院,致力于打造业内unity3d培训、学习第一品牌。   在飞行射击游戏中,恐怕没有一个游戏不用到跟踪算法的。比如在玩街机的时候,是不是经常挂于BOSS的"跟踪弹"?

7845

Unity游戏开发之动画播放与动画控制器 Animator Controller

Unity游戏开发之动画播放与动画控制器 Animator Controller 配置好Avatar之后把模型加到场景之后会检视面板中可以看到Animator组件。 属性 Controller 控制器 附加到角色的动画控制器 Avatar角色的Avatar Apply Root Motion 应用根动作 从动画自身来控制角色位置还是通过脚本控制 An

7722

Unity中实现视觉弯曲——Curved World插件(制作跑酷类游戏)

一:功能演示 二:介绍 Curved World是一个顶点变换着色器,用于创建各种着色器弯曲效果作为一个曲面着色器它并不会修改其渲染的真实网格。例如,如果网格之前是平的,使用Curved World着色器之后它仍然会是平的,假如物体需要从位置A移动到位置B,使用Curved World着色器后一切都是一样的,只是视觉的渲染不同,它不会影响物理,动画,寻路和其他游戏功能 Curved World是每个顶点置换成着色器,所以网格顶点的密度决定了曲线的平滑程度 三:实现步骤 ——下载插件并导入U

L的博客 6741

基于Unity3D引擎制作大地图

基于Unity3D引擎制作大地图 1.下载Unity3D: http://www.devzone.cn/thread-17305-1-1.html 2.制做一张灰度图: 需求:Photoshop            GIMP 先Google 搜 WorldMap-A_non-Frame.png  这个地图下载一张到你pc 然后gimp打开它, 右键图片,弹出菜单

7600

Shader之Unity中如果使模型有弯曲效果

代码如下   Shader "Custom/Curved" {  Properties {   _MainTex ("Base (RGB)", 2D) = "white" {}   _QOffset ("Offset", Vector) = (0,0,0,0)   _Brightness ("Brightness", Float) = 0.0   _Dist ("Distance",

zjw1349547081的专栏 1万+

Unity3D游戏开发之多线程及使用多线程

Unity3D游戏开发之多线程及使用多线程   Unity3D中的多线程。线程是一个相当复杂的话题,但如果掌握了它,就可以从容的使用多个硬件处理器或处理很难划分管理数据块。   如在场景中用A*算法进行大量的数据计算,变形网格中操作大量的顶点,持续的要运行上传数据到服务器,二维码识别等图像处理,如果同时你要处理很多事情或者与Unity的对象互动小可以用thread,否则使用coroutin

7558

Unity3D游戏开发之设置动画(Animations)属性

Unity3D游戏开发之设置动画(Animations)属性   通过创建角色动画Avatar,在新的动画系统Mecanim中,Unity就设置了角色动画的骨架和蒙皮信息,从而就可以在Unity中实现角色动画了。 切换到动画(Animations)选项卡。选中导入动画(Import Animation)的选项。如果该文件中有动画数据,可以看到动画剪辑的列表(Clips)。 Tips

7234

萌熊跑酷(四)无尽跑道的实现

思路: 每个道路末尾(主角跑过,看不到前道路处)添加一个触发器 主角进入触发,跑过的跑道进行回收 使用两个指向,一个是当前跑道执行 now 一个是下一个跑道next,进入触发以后,next赋值给now,next重新生成,设置next的位置,next的位置为:row的位置加上跑道的长度 using System.Collections; using System.Collections.Gene...

赵某人 1064

unity3D游戏开发之iTween介绍和用法

unity3D游戏开发之iTween介绍和用法 一.iTween 介绍     iTween是一个动画库,作者创建它的目的就是最小的投入实现最大的产出.让你做开发更轻松,用它可以轻松实现各种动画,晃动,旋转,移动,褪色,上色,控制音频等等 二.iTween 原理    iTween的核心是数值插值,简单说就是给iTween两个数值(开始值,结束值),它会自动生成

7070

跑酷入门

点击Q键:抓图,平移场景。Alt+左键,围绕Cube观察,Alt+右键,放大缩小,直接点左键向着周围看,随意看, 点T键:改变模块对象的大小尺寸。 用代码创建9*9个Cube.,代码必须注意大小写              void    Start()     {       for(int x=0;x       {           for (int y = 0; y

liudong0127的博客 617

Unity3D游戏开发之动画模型导入

Unity3D游戏开发之动画模型导入 导入动画文件后,在工程(Porject)面板中选中,通过Inspector面板修改参数设置。 在项目视图中选中模型文件。如果想用旧版3.x的动画系统导入和编辑动画,请选择legacy选项。如果你有一个人性角色,比如,一个脑袋两条胳膊的两足动物,请选择Humanoid和‘Create from this model’,这样,一个完美匹配你角色骨骼关系

6273

Unity3D开发之Mac OS 开发环境搭建 笔记

欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,【狗刨学习网】unity极致学院,致力于打造业内unity3d培训、学习第一品牌。   首先上几张图:            摸索了一上午,才搞定在模拟器中运行。至于在Iphone真机中运行,虽然有开发者证书,目

5475

Unity3D游戏开发之委托(Delegate)

Unity3D游戏开发之委托(Delegate) 1、定义         delegate是C#中的一种类型,它实际上是一个能够持有对某个方法的引用的类。与其它的类不同,delegate类能够拥有一个签名(signature),并且它"只能持有与它的签名相匹配的方法的引用"。        它允许你传递一个类A的方法m给另一个类B的对象,使得类B的对象能够调用这个方法m。

8194

【Unity3D开发小游戏】Unity3D零基础一步一步教你制作跑酷类游戏

【Unity3D实战】零基础一步一步教你制作跑酷类游戏(填坑完整版) - Unity3D知识库

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 4万+
上一篇: 手游云测试工具TestBird登陆韩国
下一篇: Glow + Outline 轮廓描边
七大黍
博客等级 码龄20年 436粉丝 260原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值