添加启动游戏过渡场景Default Splash Scene(Unity3D开发之十三)

猴子原创,欢迎转载。转载请注明: 转载自Cocos2Der-CSDN,谢谢!

原文地址: http://blog.csdn.net/cocos2der/article/details/44099095

Unity5个人版会添加Unity Logo作为启动画面,咱们既然没花钱,打个广告也应该。但Unity Logo结束后可以再添加一个自己的启动画面。

下面是添加一个简单的FadeIn->FadeOut过渡场景。

先看下效果图:

代码如下 LHSplashScreens.cs:

using UnityEngine;
using System.Collections;

public enum FadeStatus
{
    FadeIn,
    FadeWaiting,
    FadeOut
}

public class LHSplashScreens : MonoBehaviour
{
    public string levelToLoad;
    public bool waitForInput;
    public float timeFadingInFinished;
    public Sprite splashSprite;

    private float m_fadeSpeed;
    private float m_waitTime;
    private float m_alpha;
    private FadeStatus m_status;
    private SpriteRenderer m_splashSpriteRenderer;

    public LHSplashScreens()
    {
        levelToLoad = "";
        m_fadeSpeed = 0.3f;
        m_waitTime = 0.5f;
        m_status = FadeStatus.FadeIn;
    }

    void Awake()
    {
        Application.targetFrameRate = 60;
    }

    // Use this for initialization
    void Start ()
    {
        if (Application.levelCount <= 1 || levelToLoad == "")
        {
            Debug.LogWarning("Invalid levelToLoad value.");
        }

        GameObject m_splashSpriteGO = new GameObject("SplashSprite");
        m_splashSpriteGO.AddComponent<SpriteRenderer>();
        m_splashSpriteRenderer = m_splashSpriteGO.GetComponent<SpriteRenderer>();
        m_splashSpriteRenderer.sprite = splashSprite;

        Transform m_splashSpriteTransform = m_splashSpriteGO.gameObject.transform;
        m_splashSpriteTransform.position = new Vector2(0f, 0f);
        m_splashSpriteTransform.parent = this.transform;
    }

    // Update is called once per frame
    void Update ()
    {
        FadeStatus fadeStatus = m_status;
        if (fadeStatus == FadeStatus.FadeIn)
        {
            m_alpha += m_fadeSpeed * Time.deltaTime;
        }
        else if (fadeStatus == FadeStatus.FadeWaiting)
        {
            if ((!waitForInput && Time.time >= timeFadingInFinished + m_waitTime) || (waitForInput && Input.anyKey))
            {
                m_status = FadeStatus.FadeOut;
            }
        }
        else if (fadeStatus == FadeStatus.FadeOut)
        {
            m_alpha -= m_fadeSpeed * Time.deltaTime;
        }

        UpdateSplashAlpha();
    }

    private void UpdateSplashAlpha()
    {
        if (m_splashSpriteRenderer != null)
        {
            Color spriteColor = m_splashSpriteRenderer.material.color;
            spriteColor.a = m_alpha;
            m_splashSpriteRenderer.material.color = spriteColor;

            if (m_alpha > 1f)
            {
                m_status = FadeStatus.FadeWaiting;
                timeFadingInFinished = Time.time;
                m_alpha = 1f;
            }

            if (m_alpha < 0)
            {
                if (Application.levelCount >= 1 && levelToLoad != "")
                {
                    Application.LoadLevel(levelToLoad);
                }
            }
        }
    }
}

在你工程中,建立一个新的场景,作为游戏的启动场景。

添加一个Empty GameObject, 添加上面的LHSplashScreens.cs脚本:

- Level To Load: 完成启动画面后你需要加载的场景

- Splash Sprite:过渡使用的logo sprite

最后完成后如下:


用了markdown之后,停不下来啊。呵呵

添加启动游戏过渡场景Default Splash Scene(Unity3D开发之十三)的更多相关文章

  1. Unity3D开发入门教程(三)——添加启动脚本

    五邑隐侠,本名关健昌,12年游戏生涯. 本教程以 Unity 3D + VS Code + C# + tolua 为例. 一.启动脚本 第一篇 "搭建开发环境",在 "配 ...

  2. iOS-APP中添加启动界面

    iOS,非常高兴的又回到了这个领域.纠结的就业之路...找工作的这段时间里,原本以为是iOS的游戏开发,却一直只有后台的offer,到Android,最后正式上班的时候却被告知调到了iOS开发,当然不 ...

  3. 使用过渡场景在多个场景的切换COCOS2D(4)

    CCNode有三个方法,使用CCDirector的replaceScene方法替换场景时,每个节点都会调用这三个方法: onEnter与onExit方法在改变场景过程中的特定时刻被调用,这取决于是否使 ...

  4. 在iOS App 中添加启动画面

    你可以认为你需要为启动画面编写代码,然而Apple 让你可以非常简单地在Xcode中完成.不需要编写代码,你仅需要在Xcode中进行一些配置. 1.什么是启动画面(Splash Screen)? 启动 ...

  5. 【Unity】2.5 场景视图(Scene)

    分类:Unity.C#.VS2015 创建日期:2016-03-29 一.场景视图(Scene View)导航 场景视图 (Scene View) 是你的交互式沙箱.你可以使用场景视图 (Scene ...

  6. VC/MFC如何添加启动界面

    2015-05 转自 香远益清原文VC/MFC如何添加启动界面 1.基于框架类的应用程序添加启动画面的步骤(利用组件库中的Splash Screen组件生成Splash1.cpp 和Splash1.h ...

  7. [Unity3D]NGUI用Sprite动画和屏幕自适应做游戏开始场景

    我们在玩任何一款手游产品时,都是先上来个logo界面,游戏欢迎界面等,这就意味着我们要做一款游戏需要多个场景,场景之间来回切换实现游戏逻辑,unity也不例外,所以从本篇开始将会介绍如何搭建多个场景, ...

  8. [转]轻松学习Ionic (四) 修改应用图标及添加启动画面(更新官方命令行工具自动生成)

    本文转自:http://blog.csdn.net/zapzqc/article/details/42237935 由于Ionic更新了命令行工具,以后修改应用图标和添加启动画面就简单了,最新方法见最 ...

  9. 轻松学习Ionic (四) 修改应用图标及添加启动画面(更新官方命令行工具自动生成)

    由于Ionic更新了命令行工具,以后修改应用图标和添加启动画面就简单了,最新方法见最下方:   应用图标:   1.在整个项目所在文件夹下创建res文件夹,里边再分别创建两个文件夹android和io ...

随机推荐

  1. PHP 文件下载 浅析

    无控制类型 avi文件 rar文件 mp4MP3图片等会被直接解析 核心代码 类型 长度 实现函数 优化 原始下载文件的名称 优化后的文件下载名称 总结 文件下载的功能对一个网站而言基本上是必备的了, ...

  2. UNIX网络编程——原始套接字的魔力【续】

    如何从链路层直接发送数据帧 上一篇里面提到的是从链路层"收发"数据,该篇是从链路层发送数据帧. 上一节我们主要研究了如何从链路层直接接收数据帧,可以通过bind函数来将原始套接字绑 ...

  3. C语言获取文件大小

    C语言是一种比较底层的语言,有时在其他语言中很容易操作的事情,在C语言中就比较麻烦,例如获取一个文件的大小.Java中File类有个length函数,Python中os.path包中有个getsize ...

  4. UE4利用Save Game创建全局变量

    因为盲目的做了一个UE4的项目,没有用到UE4的无缝加载,我只能在一个个关卡中手动切换,然后每次的数据都会重置,这对于项目来说,造成了体验感的极度下降. 然而我查了一下怎样在UE4中创建全局变量,找到 ...

  5. Java项目源码为什么要做代码混淆(解释的很好)

    代码混淆,是将计算机程序的代码转换成一种功能上等价,但是难于阅读和理解的形式的行为.代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码.执行代码混淆的程序被称作代码混淆器.目前已经存在许多种 ...

  6. Deploying Customizations in Oracle E-Business Suite Release 12.2

    DeployingCustomizations in Oracle E-Business Suite Release 12.2 This documentdescribes how to deploy ...

  7. eclipse集成html5插件

    1. 在线安装:Help->Install New Software...->Add...-> Name: "Aptana", Location: http:// ...

  8. RabbitMQ消息队列(五):Routing 消息路由

        上篇文章中,我们构建了一个简单的日志系统.接下来,我们将丰富它:能够使用不同的severity来监听不同等级的log.比如我们希望只有error的log才保存到磁盘上. 1. Bindings ...

  9. 【Android 系统开发】 编译 Android文件系统 u-boot 内核 并烧写到 OK-6410A 开发板上

    博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813  本篇文章中用到的工具源码下载 : -- ok-6410A 附带的 A ...

  10. 【一天一道LeetCode】#100. Same Tree(100题大关)

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given t ...