《黑暗之光》RPG游戏案例学习(3)——第一章(2)*创建游戏开始界面

简述

在上一次上机中,我们已经设置好场景,下面我们做游戏的开始界面。视频教程主要是用NGUI操作,而我主要学习的是UGUI,因此这里的功能实现我主要改成UGUI。

操作过程

1. 渐隐渐现的效果。

参考:https://jingyan.baidu.com/article/e6c8503c4d3983e54f1a183c.html

  1. 设置一张图片,铺满界面。
    在这里插入图片描述在这里插入图片描述

  2. 导入SceneFadeInAndOut脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

[RequireComponent(typeof(CanvasGroup))]
public class SceneFadeInAndOut : MonoBehaviour
{
    public float fadeSpeed = 1.0f;
    private CanvasGroup canvasGroup;
    private float alpha = 1.0f;
    private static SceneFadeInAndOut instance;
    public static SceneFadeInAndOut Instance
    {
        get
        {
            return instance;
        }
    }

    // Use this for initialization
    void Start()
    {
        instance = this;
        canvasGroup = this.gameObject.GetComponent<CanvasGroup>();
    }

    // Update is called once per frame

    void Update()
    {
        if (alpha != canvasGroup.alpha)
        {
            canvasGroup.alpha = Mathf.Lerp(canvasGroup.alpha, alpha, fadeSpeed * Time.deltaTime);
            if (Mathf.Abs(canvasGroup.alpha - alpha) < 0.05f)
            {
                canvasGroup.alpha = alpha;
            }
        }
        UIHide();
    }
    //显示UI
    public void UIShow()
    {
        alpha = 1.0f;
        canvasGroup.blocksRaycasts = true;
    }
    //隐藏UI
    public void UIHide()
    {
        alpha = 0.0f;
        canvasGroup.blocksRaycasts = false;
    }
}
  1. 检查运行结果。
    可以逐渐隐藏图片

2.设置开始加载按钮和LOGO

  1. 将需要的图片修改成下图。
    在这里插入图片描述
  2. 设置一个图片UI,把需要的图片放进去,调整一下大小与位置。
  3. 在原SceneFadeInAndOut脚本上进行修改。这里给出修改后的部分代码。还有一些简单的修改地方没有写。
void Start()
    {
        instance = this;
        canvasGroup = this.gameObject.GetComponent<CanvasGroup>();
        if (c == 0) { UIHide(); }
        else if (c == 1) { UIShow(); }
        else if (c == 2) { UIShow(); Invoke("UIHide",3) ; }
    }
  1. 根据修改后的代码,需要调整参数。
    隐藏UI的参数
    在这里插入图片描述
    显示UI
    在这里插入图片描述
    显示UI后消失
    在这里插入图片描述
  2. logo和标题可以呈现渐隐渐现的效果。

3.设置按钮并为按钮添加声音

  1. 设置按钮,添加按钮图片。(简单,不细说)
  2. 设置一个空物体,给该物体添加添加audio source组件。
    在这里插入图片描述
  3. 返回按钮,如图设置。
    在这里插入图片描述

4.添加背景音乐

  1. 给主摄像机添加audio source组件。
  2. 在黄色区域添加bgm。
    loop:不断循环音乐,一般要勾上。
    在这里插入图片描述

问题及其修改

在实际操作中,New Game和Load Game这两个按键是隐藏的。需要在点击屏幕之后显示。
错误点:做出自动显示的。
修改方案:修改Press anykey的代码,New Game和Load Game改成一开始隐藏。

修改过程:
删除之前效果的代码,组件。
为Press anykey添加代码

public class PressAnyKey : MonoBehaviour
{
    private bool isAnyKeyDown = false;    //标志位,判断是否有键按下
    private GameObject searchButton;
    void Start()
    {
        searchButton = this.transform.parent.Find("searchButton").gameObject;    //通过查找Press anykey的父类,查找父类中的Container,将New Game和Load Game按键的gameObject赋给 searchButton,之后可以对其进行隐藏、显示操作
    }
    // Update is called once per frame
    void Update()
    {
        if (isAnyKeyDown == false)
        {
            if (Input.anyKey)
            { ShowButton(); }
        }
    }
    void ShowButton()
    {
        searchButton.SetActive(true);    //显示 searchButton
        this.gameObject.SetActive(false);    //隐藏press按钮
        isAnyKeyDown = true;    //修改标志位
    }
}

根据代码,修改相关配置

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值