From 01fe52bc3f5df9924b26426c27a4277f4848f071 Mon Sep 17 00:00:00 2001 From: River Jiang <546213258@qq.com> Date: Thu, 22 Oct 2020 16:32:24 +0800 Subject: [PATCH] 加入Energy底板,修改火塔不变动画 --- Assets/Scripts/TowerDefense/UI/BulletUICtl.cs | 2 Assets/Prefabs/Towers/Fire/GrowUpTower.prefab | 12 +- Assets/Scripts/TowerDefense/Towers/Tower.cs | 3 Assets/Prefabs/UI/EnergyUI.prefab.meta | 7 + Assets/Scripts/TowerDefense/UI/EnergyUICtl.cs.meta | 11 ++ Assets/Prefabs/UI/EnergyUI.prefab | 167 +++++++++++++++++++++++++++++++++ Assets/Scripts/TowerDefense/UI/EnergyUICtl.cs | 41 ++++++++ Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGrid.cs | 31 ++++++ Assets/Scripts/ActionGameFramework/Health/Damager.cs | 3 Assets/Scenes/Levels/Battle/GemBattle.unity | 4 10 files changed, 269 insertions(+), 12 deletions(-) diff --git a/Assets/Prefabs/Towers/Fire/GrowUpTower.prefab b/Assets/Prefabs/Towers/Fire/GrowUpTower.prefab index 9208a7b..74e9ba8 100644 --- a/Assets/Prefabs/Towers/Fire/GrowUpTower.prefab +++ b/Assets/Prefabs/Towers/Fire/GrowUpTower.prefab @@ -110,17 +110,19 @@ poisonTex: {fileID: 0} frozenTex: {fileID: 0} commonTex: {fileID: 0} + PoisonParticle: {fileID: 0} + PoisonEndParticle: {fileID: 0} towerName: GrowUpTower dimensions: x: 1 y: 1 towerFeature: 0 - materialMonsterSelf: {fileID: 2100000, guid: 65706b9ab6be2dc45bde7720914dd662, type: 2} + materialMonsterSelf: {fileID: 2100000, guid: e4a344b484251ce4e8b5f18e0618e647, type: 2} materialMonsterOppo: {fileID: 2100000, guid: 005b2213e521ef04a9f51bde68b9735f, type: 2} - materialTowerAttackSelf: {fileID: 2100000, guid: 56734acd3a9832f458892e0ba6f1901b, - type: 2} - materialTowerWaitSelf: {fileID: 2100000, guid: 492ec3bf4cc3d7c4ca1649716bf69377, - type: 2} + materialTowerAttackSelf: {fileID: 0} + materialTowerWaitSelf: {fileID: 0} + materialTowerAttackOppo: {fileID: 0} + materialTowerWaitOppo: {fileID: 0} eTowerFuntion: 0 bulletCtl: {fileID: 0} levels: diff --git a/Assets/Prefabs/UI/EnergyUI.prefab b/Assets/Prefabs/UI/EnergyUI.prefab new file mode 100644 index 0000000..be7c085 --- /dev/null +++ b/Assets/Prefabs/UI/EnergyUI.prefab @@ -0,0 +1,167 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4636030447447409971 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4636030447447409970} + - component: {fileID: 4636030447447409972} + - component: {fileID: 4636030447447409973} + - component: {fileID: -9145516343146749478} + m_Layer: 5 + m_Name: EnergyUI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4636030447447409970 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4636030447447409971} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4636030447972189692} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 21, y: 90} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4636030447447409972 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4636030447447409971} + m_CullTransparentMesh: 0 +--- !u!114 &4636030447447409973 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4636030447447409971} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 257d2719341218740b740683c3aa8355, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &-9145516343146749478 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4636030447447409971} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 739451dc4b5ded044ae7641fcb531e35, type: 3} + m_Name: + m_EditorClassIdentifier: + energyScaleMask: {fileID: 4636030447972189695} +--- !u!1 &4636030447972189693 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4636030447972189692} + - component: {fileID: 4636030447972189694} + - component: {fileID: 4636030447972189695} + m_Layer: 5 + m_Name: EnergyProgress + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4636030447972189692 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4636030447972189693} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 0, z: 1} + m_Children: [] + m_Father: {fileID: 4636030447447409970} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 21, y: 90} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &4636030447972189694 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4636030447972189693} + m_CullTransparentMesh: 0 +--- !u!114 &4636030447972189695 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4636030447972189693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 747f83368dfba694c89bc6908324bb94, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 diff --git a/Assets/Prefabs/UI/EnergyUI.prefab.meta b/Assets/Prefabs/UI/EnergyUI.prefab.meta new file mode 100644 index 0000000..764967f --- /dev/null +++ b/Assets/Prefabs/UI/EnergyUI.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0d97566feabc1d644862df3fb52071a3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Levels/Battle/GemBattle.unity b/Assets/Scenes/Levels/Battle/GemBattle.unity index 3f46dbe..aef9231 100644 --- a/Assets/Scenes/Levels/Battle/GemBattle.unity +++ b/Assets/Scenes/Levels/Battle/GemBattle.unity @@ -5269,6 +5269,8 @@ type: 3} towerBulletUIPrefab: {fileID: 4636030447447409971, guid: f6edf4c41f0dac54d94e67945bca23f0, type: 3} + towerEnergyUIPrefab: {fileID: 4636030447447409971, guid: 0d97566feabc1d644862df3fb52071a3, + type: 3} waitBuyBtnPrefab: {fileID: 1470395276146401766, guid: c05f40848dbdf1a4da8b4e45d7b9f1e3, type: 3} TestParticle: {fileID: 0} @@ -13999,6 +14001,8 @@ type: 3} towerBulletUIPrefab: {fileID: 4636030447447409971, guid: f6edf4c41f0dac54d94e67945bca23f0, type: 3} + towerEnergyUIPrefab: {fileID: 4636030447447409971, guid: 0d97566feabc1d644862df3fb52071a3, + type: 3} waitBuyBtnPrefab: {fileID: 1470395276146401766, guid: c05f40848dbdf1a4da8b4e45d7b9f1e3, type: 3} TestParticle: {fileID: 312346380397794538, guid: bd7af3572d4954542a9b552ea0736ac6, diff --git a/Assets/Scripts/ActionGameFramework/Health/Damager.cs b/Assets/Scripts/ActionGameFramework/Health/Damager.cs index 1bbfd3c..97958c8 100644 --- a/Assets/Scripts/ActionGameFramework/Health/Damager.cs +++ b/Assets/Scripts/ActionGameFramework/Health/Damager.cs @@ -115,9 +115,6 @@ get { float fd = damage * damageMulti; - if (damageMulti > 1.0f) - Debug.Log("hello,world:" + damageMulti.ToString() ); - damageMulti = 1.0f; return fd + inSceneUpGradeDamage; } diff --git a/Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGrid.cs b/Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGrid.cs index e1c4b1c..d3cfdf2 100644 --- a/Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGrid.cs +++ b/Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGrid.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.InteropServices; using Core.Utilities; using KTGMGemClient; using Microsoft.VisualBasic; @@ -43,6 +44,10 @@ /// 相应的界面指针传到塔防的数据结构内。 /// </summary> public GameObject towerBulletUIPrefab; + /// <summary> + /// 充能条对应的界面 + /// </summary> + public GameObject towerEnergyUIPrefab; /// <summary> /// 等待购买开启对应按钮. @@ -115,6 +120,7 @@ /// </summary> Vector2[] m_arrTowerBulletUIPos; BulletUICtl[] arrTowerBulletUi; + EnergyUICtl[] arrTowerEnergyUi; /// <summary> @@ -402,6 +408,9 @@ if (arrTowerBulletUi[x] != null) arrTowerBulletUi[x].gameObject.SetActive(false); + + if (arrTowerEnergyUi[x] != null) + arrTowerEnergyUi[x].gameObject.SetActive(false); m_Tiles[x, y].SetTileType(PlacementGridType.EGridDestroyed); @@ -711,15 +720,21 @@ // 处理攻击塔位对应的血条 m_arrTowerBulletUIPos = new Vector2[dimensions.x]; arrTowerBulletUi = new BulletUICtl[dimensions.x]; + arrTowerEnergyUi = new EnergyUICtl[dimensions.x]; + for (int x = 0; x < dimensions.x; x++) { m_arrTowerBulletUIPos[x].x = m_arrGridCentUIPos[x, dy].x + m_fGridUISize/2.0f - 10; m_arrTowerBulletUIPos[x].y = m_arrGridCentUIPos[x, dy].y; - GameObject img = Instantiate(towerBulletUIPrefab); + GameObject go = GameObject.Find("BattleMainUI"); if (!go) continue; Transform tp = go.GetComponent<Transform>(); + + GameObject img; + + img = Instantiate(towerBulletUIPrefab); img.GetComponent<Transform>().SetParent(tp, true); Vector3 tpos = img.transform.position; tpos.x = m_arrTowerBulletUIPos[x].x; @@ -731,6 +746,20 @@ BulletUICtl buc = img.GetComponent<BulletUICtl>(); arrTowerBulletUi[x] = buc; buc.gameObject.SetActive(false); + + // 把充能条也创建出来了. + img = Instantiate(towerEnergyUIPrefab); + img.GetComponent<Transform>().SetParent(tp, true); + tpos = img.transform.position; + tpos.x = m_arrTowerBulletUIPos[x].x; + tpos.y = m_arrTowerBulletUIPos[x].y; + img.transform.position = tpos; + + img.transform.SetAsFirstSibling(); + EnergyUICtl euc = img.GetComponent<EnergyUICtl>(); + arrTowerEnergyUi[x] = euc; + euc.gameObject.SetActive(false); + } return; diff --git a/Assets/Scripts/TowerDefense/Towers/Tower.cs b/Assets/Scripts/TowerDefense/Towers/Tower.cs index 576c515..020f906 100644 --- a/Assets/Scripts/TowerDefense/Towers/Tower.cs +++ b/Assets/Scripts/TowerDefense/Towers/Tower.cs @@ -218,7 +218,6 @@ // // 根据是否是子弹塔防来决定是否显示相应的界面 BulletUICtl buc = this.placementArea.GetBulletUICtl(gridPosition.x); - /* if ( (this.eTowerFuntion == ETowerFuntion.BULLET) && (buc != null ) ) { // 设置数据 @@ -231,7 +230,7 @@ // 清空数据 buc.gameObject.SetActive(false); this.bulletCtl = null; - }*/ + } } } diff --git a/Assets/Scripts/TowerDefense/UI/BulletUICtl.cs b/Assets/Scripts/TowerDefense/UI/BulletUICtl.cs index 0e7f4ff..0424684 100644 --- a/Assets/Scripts/TowerDefense/UI/BulletUICtl.cs +++ b/Assets/Scripts/TowerDefense/UI/BulletUICtl.cs @@ -59,7 +59,7 @@ { if (bulletScaleMask == null) return; float scaleY = 1.0f - curBNum / (float)totalBNum - fAdjValue; - bulletScaleMask.rectTransform.DOScaleY( scaleY, 0.1f); + bulletScaleMask.rectTransform.DOScaleY( scaleY, 0.0f); } // Update is called once per frame diff --git a/Assets/Scripts/TowerDefense/UI/EnergyUICtl.cs b/Assets/Scripts/TowerDefense/UI/EnergyUICtl.cs new file mode 100644 index 0000000..2f5ab5c --- /dev/null +++ b/Assets/Scripts/TowerDefense/UI/EnergyUICtl.cs @@ -0,0 +1,41 @@ +using DG.Tweening; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class EnergyUICtl : MonoBehaviour +{ + /// <summary> + /// 用于显示能量条进度 + /// </summary> + public Image energyScaleMask; + + /// <summary> + /// 当前的能量条进度. + /// </summary> + protected float currentProgress; + + // Start is called before the first frame update + void Start() + { + currentProgress = 0; + //this.SetEnergyProgress(0); + } + + /// <summary> + /// 显示并更新能量条进度. + /// </summary> + /// <param name="pro"></param> + public void SetEnergyProgress(float pro) + { + energyScaleMask.rectTransform.DOScaleY( pro, 0.3f ); + currentProgress = pro; + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/TowerDefense/UI/EnergyUICtl.cs.meta b/Assets/Scripts/TowerDefense/UI/EnergyUICtl.cs.meta new file mode 100644 index 0000000..cebc219 --- /dev/null +++ b/Assets/Scripts/TowerDefense/UI/EnergyUICtl.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 739451dc4b5ded044ae7641fcb531e35 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: -- Gitblit v1.9.1