1. 程式人生 > >Unity3D-塔防遊戲專案主要原始碼(遊戲UI介面控制器指令碼)

Unity3D-塔防遊戲專案主要原始碼(遊戲UI介面控制器指令碼)

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,//塔等級的文字 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(); } } }