您的位置:首页 > 移动开发 > Unity3D

Unity3D-塔防游戏项目主要源码(游戏UI界面控制器脚本)

2017-09-08 19:22 711 查看
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;
namespace TowerDefenceTemplate
{
public class UI_Controller : MonoBehaviour
{
private GameManager gameManager;//实例化游戏管理器的对象
public EventSystem _eventSystem;//实例化事件系统
public Image EnemiesIcon;//实例化Image对象

public RectTransform
BaseHealthBar,//血条位置
TowerControl;//防御塔控制器的位置

public Button
ToMenuButton,//返回菜单的按钮
RestartButton;//重新开始的按钮

public GameObject
RightPanel,//右侧菜单
PauseMenu,//暂停菜单
ContinueButton,//继续游戏的按钮
InGameButtons,//游戏运行中的按钮
UpgradeButton;//升级的按钮

public Text
MoneyMessage,//钱币提示信息
MoneyText,//当前的钱币数
WaveNumber,//当前的波数
WaveTimer,//下一波等待时间
EnemiesLeftText,//剩下的敌机数量
UpgradeButtonText,//升级按钮的文本
SellButtonText,//卖塔按钮的文本
LevelText,//塔等级的文本

4000
RangeText,//塔侦测范围文本
DamageText,//塔伤害值
NameText,//塔的名字
WaveUpperNumber;//显示的波次信息文本

void Awake()
{
gameManager = FindObjectOfType<GameManager>();//获取脚本
if (gameManager == null)
{
Debug.LogError("GameManager not found!");
enabled = false;
return;
}
SendInstances();
}

void SendInstances()//将UGUI面板上的数据传回游戏控制器内
{
gameManager._UI_Controller = this;
gameManager.MoneyMessage = MoneyMessage;
gameManager.MoneyText = MoneyText;
gameManager.BaseHealthBar = BaseHealthBar;
gameManager.WaveNumber = WaveNumber;
gameManager.EnemiesLeftText = EnemiesLeftText;
gameManager.WaveTimer = WaveTimer;
gameManager.ToMenuButton = ToMenuButton;
gameManager.RestartButton = RestartButton;
gameManager.EnemiesIcon = EnemiesIcon;
gameManager.NameText = NameText;
gameManager.DamageText = DamageText;
gameManager.RangeText = RangeText;
gameManager.LevelText = LevelText;
gameManager.UpgradeButtonText = UpgradeButtonText;
gameManager.SellButtonText = SellButtonText;
gameManager.RightPanel = RightPanel;
gameManager.WaveUpperNumber = WaveUpperNumber;
gameManager.PauseMenu = PauseMenu;
gameManager.UpgradeButton = UpgradeButton;
}

public void GameEnd()//游戏结束
{
InGameButtons.SetActive(false);//游戏中的按钮失活
WaveNumber.gameObject.SetActive(true);//波数提示
ContinueButton.SetActive(false);//继续游戏按钮失活
PauseMenuShow();//暂停,展示右侧菜单
}

public void CreateTower(string type)//创建塔
{
if (gameManager == null)
{
return;
}
gameManager.BuildingModeOn(type);//创建塔的模型
}

public void PauseMenuShow()//暂停,激活右侧菜单
{
Pause();
PauseMenu.SetActive(true);
}

public void Pause()//暂停
{
if (gameManager == null)
{
return;
}
gameManager.Pause();//游戏时间停止
gameManager.TankSound.mute = true;
gameManager.PlaneSound.mute = true;
gameManager.JeepSound.mute = true;
}

public void Play()//开始
{
if (gameManager == null)
{
return;
}
gameManager.UnPause();//解开时间速度,变为正常值
PauseMenu.SetActive(false);//右侧菜单失活
gameManager.TankSound.mute = false;
gameManager.PlaneSound.mute = false;
gameManager.JeepSound.mute = false;
}

public void Fast()//加速
{
if (gameManager == null)
{
return;
}
PauseMenu.SetActive(false);//右侧菜单失活
gameManager.Fast();//游戏时间加速
}

public void UpgradeTower()//塔升级
{
gameManager.UpgradeTower();
}

public void SellTower()//卖塔
{
gameManager.SellTower();
}

public void BackToMenu()//返回主菜单
{
if (gameManager == null)
{
return;
}
gameManager.BackToMenu();
}

public void RestartLevel()//重新开始
{
if (gameManager == null)
{
return;
}
Play();
gameManager.RestartLevel();
}

public void Exit()
{
Application.Quit();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ui 游戏 界面 脚本 源码