日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

塔防游戏 Day3

發(fā)布時間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 塔防游戏 Day3 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.?添加按鈕動畫

  選擇 Button->Transition?為 Animation ,然后自定義四種狀態(tài)動畫即可。

  

?

2.?控制升級面板的顯示和隱藏

1 // 升級處理 2 // 若點擊同一炮塔,并且面板已顯示 3 if (mapCube.turretGo == selectedTurret && upgradeCanvas.activeInHierarchy) 4 { 5 HideUpgradeUI(); // 隱藏面板 6 } 7 else // 否則顯示面部 8 { 9 ShowUpgradeUI(mapCube.transform.position, mapCube.isUpgraded); 10 } 11 selectedTurret = mapCube.turretGo; 1 // 顯示升級面板 2 void ShowUpgradeUI(Vector3 pos, bool isDisableUpgrade) 3 { 4 upgradeCanvas.SetActive(true); // 顯示面板 5 upgradeCanvas.transform.position = pos; // 放在合適的位置 6 upgradeButton.interactable = !isDisableUpgrade; // 升級按鈕是否可用 7 } 8 9 // 隱藏升級面板 10 void HideUpgradeUI() 11 { 12 upgradeCanvas.SetActive(false); 13 }

?

?

?3.?給升級面板添加動畫

1 // 顯示升級面板 2 void ShowUpgradeUI(Vector3 pos, bool isDisableUpgrade) 3 { 4 StopCoroutine("HideUpgradeUI()"); // 開始協(xié)程 5 upgradeCanvas.SetActive(false); 6 upgradeCanvas.SetActive(true); // 顯示面板 7 upgradeCanvas.transform.position = pos; // 放在合適的位置 8 upgradeButton.interactable = !isDisableUpgrade; // 升級按鈕是否可用 9 } 10 11 // 隱藏升級面板 12 IEnumerator HideUpgradeUI() 13 { 14 upgradeCanvasAnimator.SetTrigger("Hide"); 15 yield return new WaitForSeconds(0.5f); 16 upgradeCanvas.SetActive(false); 17 }

?

?4.?控制升級和拆毀炮臺

1 // 點擊按鈕觸發(fā)函數(shù) 2 public void onUpgradeButtonDown() 3 { 4 selectedMapCube.UpdateTurret(); 5 StartCoroutine(HideUpgradeUI()); 6 } 7 8 public void onDestroyButtonDown() 9 { 10 selectedMapCube.DestroyTurret(); 11 StartCoroutine(HideUpgradeUI()); 12 } 1 // 升級炮塔 2 public void UpdateTurret() 3 { 4 if (isUpgraded) return; 5 Destroy(turretGo); 6 turretGo = GameObject.Instantiate(turretData.turretUpgradedPrefab, transform.position, Quaternion.identity); 7 isUpgraded = true; 8 // 產(chǎn)生特效 9 GameObject effect = GameObject.Instantiate(buildEffect, transform.position, Quaternion.identity); 10 Destroy(effect, 1.5f); // 1.5秒后銷毀特效 11 } 12 13 // 拆毀炮臺 14 public void DestroyTurret() 15 { 16 Destroy(turretGo); 17 isUpgraded = false; // 初始化 18 turretGo = null; 19 turretData = null; 20 // 產(chǎn)生特效 21 GameObject effect = GameObject.Instantiate(buildEffect, transform.position, Quaternion.identity); 22 Destroy(effect, 1.5f); // 1.5秒后銷毀特效 23 }

?

?

?5.?添加激光炮塔

?  添加 LineRenderer?組件。

?  

if (enemys.Count > 0) {// 設(shè)置激光的開始位置和結(jié)尾位置laserRenderer.SetPositions(new Vector3[] { firePosition.position, enemys[0].transform.position }); }

?

4.?游戲失敗情況處理

1 // 游戲失敗 2 public void fail() 3 { 4 MessageText.text = "失 敗"; 5 endUI.SetActive(true); 6 enemySpawner.Stop(); // 停止生成敵人 7 } 1 public void Stop() 2 { 3 StopCoroutine(coroutine); // 停止協(xié)程 4 }

?

?

5.?菜單設(shè)計

1 // 點擊開始游戲按鈕 2 public void OnButtonStart() 3 { 4 SceneManager.LoadScene(1); 5 } 6 7 // 點擊退出按鈕 8 public void OnButtonExit() 9 { 10 #if UNITY_EDITOR 11 UnityEditor.EditorApplication.isPlaying = false; 12 #else 13 Application.Quit(); 14 #endif 15 }

?

?

完!!!

?

轉(zhuǎn)載于:https://www.cnblogs.com/coderJiebao/p/unity3d03.html

總結(jié)

以上是生活随笔為你收集整理的塔防游戏 Day3的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。