太空大战--游戏ui和战斗管理

太空大战–游戏UI和战斗管理

创建显示得分的UI界面

在Hierarchy视图中选择Create->UI->Canvas创建一个UI的根节点。
在这里插入图片描述
选中创建的Canvas,选择Create->UI->Text创建一个文本控件,并将其命名为Text_Life,用来显示生命。
同理创建其他两个文本控件Text_Score和Text_Best,分别用来显示分数和最高分。
在这里插入图片描述
在这些Text中的Inspector视图中的可以输入文本内容,调整字体大小、样式、颜色。在Scene视图中可以调整文本所在屏幕最后的位置。
在这里插入图片描述

创建游戏失败的UI界面

在Hierarchy视图中选择Create->UI->Canvas创建一个UI的根节点,并将其命名为Canvas_Gameover。
选中Canvas_Gameover,选择Create->UI->Text创建一个文本控件,并将其命名为Text_Gameover,用来显示“Game Over”这几个大字。
选中Canvas_Gameover, 选择Create->UI->Button创建一个按钮,并将其命名为Button_Restart, 用于Game Over重新开始游戏。
调整控件位置和样式。
在这里插入图片描述

场景管理的脚本

创建GameManager.cs脚本,添加代码如下。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class GameManager : MonoBehaviour
{
   
    // Start is called before the first frame update
    
    //静态实例
    public static GameManager instance;

    //显示生命、最高分、分数的界面
    public Transform m_canvas_main;

    //显示游戏结束的界面
    public Transform m_canvas_gameover;

    //生命文本, 分数文本, 最高分文本
    public Text m_text_life;
    public Text m_text_score;
    public Text m_text_best;

    //最高分数数值
    public static int m_highScore = 0;

    //主角实例
    protected Player m_player;

    //得分数值
    protected int m_score = 0;

    //背景音乐和声音源
    public AudioClip m_clip;
    public AudioSource m_audio;

    void Start()
    {
   
        instance = this;

        //获取主角控件
        m_player = GameObject.Find("Player").GetComponent<Player>(); 

        //背景音乐设置
        m_audio = gameObject.AddComponent<AudioSource>();   //使用代码添加声音源组件
        m_audio.loop = true;                                //指定背景音乐循环播放     
        m_audio.clip = m_clip;                              //指定背景音乐文件为m_clip;
        m_audio.Play();                                     //播放背景音乐

        //获取UI控件
        m_text_life = m_canvas_main.transform.Find("Text_Life").GetComponent<Text>();
        m_text_score = m_canvas_main.transform.Find("Text_Score").GetComponent<Text>();
        m_text_best = m_canvas_main.transform.Find("Text_Best").GetComponent<Text>();

        //初始化字符
        m_text_life.text = string.Format("生命 {0}", m_player.m_life);
        m_text_score.text = string.Format("分数 {0}", m_score);
        m_text_best.text = string.Format("最高分 {0}", m_text_best);

        //重新开始的按钮控件
        Button restart_button = m_canvas_gameover.transform.Find("Button_Gameover").GetComponent<Button>();
        restart_button.onClick.AddListener(delegate()
        {
   
            SceneManager.LoadScene(SceneManager.GetActiveScene().name);
        });

        //默认设置gameover界面为为激活状态
        m_canvas_gameover.gameObject.SetActive(false);
    }

    //增加分数函数
    public void AddScore(int point
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值