Assets/00000/package/Prefab/ChongNengEffect.prefab | ●●●●● patch | view | raw | blame | history | |
Assets/Materials/PVE/Materials/PVEBg.mat | ●●●●● patch | view | raw | blame | history | |
Assets/Materials/PVE/PVEBg.png | patch | view | raw | blame | history | |
Assets/Materials/PVE/PVEBg.png.meta | ●●●●● patch | view | raw | blame | history | |
Assets/Prefabs/BulletBar.prefab | ●●●●● patch | view | raw | blame | history | |
Assets/Prefabs/BulletBar.prefab.meta | ●●●●● patch | view | raw | blame | history | |
Assets/Scenes/Levels/Battle/Endless2D.unity | ●●●●● patch | view | raw | blame | history | |
Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGridEndless.cs | ●●●●● patch | view | raw | blame | history | |
Assets/Scripts/TowerDefense/Towers/TowerFireTrigger.cs | ●●●●● patch | view | raw | blame | history | |
Assets/Scripts/TowerDefense/UI/BulletUICtl.cs | ●●●●● patch | view | raw | blame | history |
Assets/00000/package/Prefab/ChongNengEffect.prefab
@@ -19505,7 +19505,7 @@ m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2518896244692448485} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 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: @@ -19515,7 +19515,7 @@ - {fileID: 3064962568725395452} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!198 &6740320714111919447 ParticleSystem: m_ObjectHideFlags: 0 Assets/Materials/PVE/Materials/PVEBg.mat
@@ -40,7 +40,7 @@ m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MainTex: m_Texture: {fileID: 2800000, guid: c9633b2aaeee7e540b04803cb6e9cd45, type: 3} m_Texture: {fileID: 2800000, guid: 00ee2360b2adbe345ae50bae05342fc3, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MetallicGlossMap: Assets/Materials/PVE/PVEBg.pngAssets/Materials/PVE/PVEBg.png.meta
@@ -1,12 +1,12 @@ fileFormatVersion: 2 guid: c9633b2aaeee7e540b04803cb6e9cd45 guid: 00ee2360b2adbe345ae50bae05342fc3 TextureImporter: internalIDToNameTable: [] externalObjects: {} serializedVersion: 11 mipmaps: mipMapMode: 0 enableMipMap: 0 enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 Assets/Prefabs/BulletBar.prefab
New file @@ -0,0 +1,265 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!1 &649954433278527627 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 649954433278527626} - component: {fileID: 649954433278527629} m_Layer: 0 m_Name: Bg m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 --- !u!4 &649954433278527626 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 649954433278527627} 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: [] m_Father: {fileID: 649954434242370658} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!212 &649954433278527629 SpriteRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 649954433278527627} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 m_StaticBatchRoot: {fileID: 0} m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 0 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 m_Sprite: {fileID: 21300000, guid: 4927445faed092546a6b3335118c6dea, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 m_FlipY: 0 m_DrawMode: 0 m_Size: {x: 0.21, y: 0.9} m_AdaptiveModeThreshold: 0.5 m_SpriteTileMode: 0 m_WasSpriteAssigned: 1 m_MaskInteraction: 1 m_SpriteSortPoint: 0 --- !u!1 &649954433760061292 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 649954433760061295} - component: {fileID: 649954433760061294} m_Layer: 0 m_Name: Mask m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 --- !u!4 &649954433760061295 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 649954433760061292} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 649954434242370658} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!212 &649954433760061294 SpriteRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 649954433760061292} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 m_StaticBatchRoot: {fileID: 0} m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 0 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 1 m_Sprite: {fileID: 21300000, guid: bff5183b5d43c0249b8624f5e7255209, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 m_FlipY: 0 m_DrawMode: 0 m_Size: {x: 0.21, y: 0.9} m_AdaptiveModeThreshold: 0.5 m_SpriteTileMode: 0 m_WasSpriteAssigned: 1 m_MaskInteraction: 1 m_SpriteSortPoint: 0 --- !u!1 &649954434242370657 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 649954434242370658} - component: {fileID: 649954434242370659} - component: {fileID: 43203094639935979} m_Layer: 0 m_Name: BulletBar m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 --- !u!4 &649954434242370658 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 649954434242370657} m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} m_LocalPosition: {x: 0, y: 1, z: 0} m_LocalScale: {x: 0.8, y: 0.8, z: 0.8} m_Children: - {fileID: 649954433278527626} - {fileID: 649954433760061295} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} --- !u!331 &649954434242370659 SpriteMask: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 649954434242370657} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - {fileID: 10758, guid: 0000000000000000f000000000000000, type: 0} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 m_StaticBatchRoot: {fileID: 0} m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 m_StitchLightmapSeams: 1 m_SelectedEditorRenderState: 3 m_MinimumChartSize: 4 m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 m_Sprite: {fileID: 21300000, guid: bff5183b5d43c0249b8624f5e7255209, type: 3} m_MaskAlphaCutoff: 0.2 m_FrontSortingLayerID: 0 m_BackSortingLayerID: 0 m_FrontSortingLayer: 0 m_BackSortingLayer: 0 m_FrontSortingOrder: 0 m_BackSortingOrder: 0 m_IsCustomRangeActive: 0 m_SpriteSortPoint: 0 --- !u!114 &43203094639935979 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 649954434242370657} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: ce6c8d23972e4224384dead8d4662621, type: 3} m_Name: m_EditorClassIdentifier: bulletScaleMask: {fileID: 649954433760061294} fAdjValue: 0.008 maxBulletNum: 6 Assets/Prefabs/BulletBar.prefab.meta
New file @@ -0,0 +1,7 @@ fileFormatVersion: 2 guid: f4c10f1b0e730384cacfe2c12ca92ade PrefabImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: Assets/Scenes/Levels/Battle/Endless2D.unity
@@ -9319,9 +9319,21 @@ type: 3} bloodCrit: {fileID: 8440900062448590821, guid: cab622f1453af2648981d24b37b76ee9, type: 3} TowerUpgradeEffectPrefab: {fileID: 3681181936307124407, guid: 4f841d500cb4a9c4a99872c566e45c63, TowerUpgradeEffectPrefab: {fileID: 6847503030253729540, guid: f8ec855cfd7e13a4ebb2f2cbb8bbc480, type: 3} TowerAppearEffectPrefab: {fileID: 7075300226719811381, guid: a3ffad0742f1416499458b12a1b8187c, TowerAppearEffectPrefab: {fileID: 1600692593755992933, guid: 3ac90252c12eda44094c4979e1677cbf, type: 3} fireAppearEffect1: {fileID: 8028903343430182617, guid: 576127ca8c56cab4e8628fcbc592c7c8, type: 3} fireAppearEffect2: {fileID: 3022035219195848773, guid: fbd3cb7333b82a54eb55c6522c430dd9, type: 3} waterAppearEffect1: {fileID: 4758164877748642480, guid: 4699595ee5573684884dcfcbf393aaaf, type: 3} waterAppearEffect2: {fileID: 2457906007645289368, guid: 9a03cd84842d11f44aaa440c15f90338, type: 3} woodAppearEffect1: {fileID: 3480929532651610515, guid: 497d987a2bec3ff48b5a92938dfb67cd, type: 3} woodAppearEffect2: {fileID: 3060165316166712612, guid: 73de43a338bdb974aa96e782d005f153, type: 3} MinLevel: 0 temporaryMat: {fileID: 0} @@ -11738,7 +11750,7 @@ TowerGridOpenObjArr: [] energyEffectPrefab: {fileID: 6740320714111919447, guid: c9fb6497ab1288942a4dd67d131473c9, type: 3} towerBulletUIPrefab: {fileID: 4636030447447409971, guid: f6edf4c41f0dac54d94e67945bca23f0, towerBulletUIPrefab: {fileID: 649954434242370657, guid: f4c10f1b0e730384cacfe2c12ca92ade, type: 3} towerEnergyUIPrefab: {fileID: 4636030447447409971, guid: 0d97566feabc1d644862df3fb52071a3, type: 3} Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGridEndless.cs
@@ -586,6 +586,7 @@ // 血条位置的设定 PreCalculateTowerBloodUi(); float[] gapArr = { 0.2f, 0.7f }; m_arrTGO = new EndlessTowerGridOpen[dimensions.x, dimensions.y]; for (int x = 0; x < dimensions.x; ++x) @@ -599,8 +600,8 @@ buyButton.transform.SetParent(container.transform); Vector3 pos = buyButton.transform.position; pos.x = arrGridCentPos[x, y].x; pos.z = arrGridCentPos[x, y].y; pos.x = arrGridCentPos[x, y].x + (x - 2) * gapArr[3 - y]; pos.z = arrGridCentPos[x, y].y + 6f; pos.y = 30; buyButton.transform.position = pos; buyButton.transform.localRotation = Quaternion.identity; @@ -661,6 +662,8 @@ arrTowerEnergyUi = new EnergyUICtl[dimensions.x, AttackRowNumbers]; arrTowerEnergyEffect = new ParticleSystem[dimensions.x, AttackRowNumbers]; float[] gapArr = { 0.4f, 0.6f }; for (int x = 0; x < dimensions.x; x++) { for (int y = 0; y < AttackRowNumbers; ++y) @@ -686,15 +689,15 @@ arrTowerBloodUi[x, y] = tbv; tbv.gameObject.SetActive(false); Vector3 targetPos = GridToWorld(new IntVector2(x, dy - y), new IntVector2(2, 1)); // 子弹条 img = Instantiate(towerBulletUIPrefab); img.transform.SetParent(container.transform, true); tpos = img.transform.position; tpos.x = m_arrTowerBulletUIPos[x, y].x + 4.2f; tpos.z = m_arrTowerBulletUIPos[x, y].y - 0.5f; tpos.y = 30f; img.transform.position = tpos; img.transform.localScale = Vector3.one; img.transform.localRotation = Quaternion.identity; img.transform.SetParent(transform, false); img.transform.position = targetPos; Vector3 pos = img.transform.position; pos.x -= 1f; img.transform.position = pos; BulletUICtl buc = img.GetComponent<BulletUICtl>(); arrTowerBulletUi[x, y] = buc; @@ -704,8 +707,8 @@ img = Instantiate(towerEnergyUIPrefab); img.transform.SetParent(container.transform); tpos = img.transform.position; tpos.x = m_arrTowerBulletUIPos[x, y].x + 4.2f; tpos.z = m_arrTowerBulletUIPos[x, y].y - 0.5f; tpos.x = m_arrTowerBulletUIPos[x, y].x + 4.4f + (x - 2) * gapArr[y]; tpos.z = m_arrTowerBulletUIPos[x, y].y + 5f; tpos.y = 30f; img.transform.position = tpos; img.transform.localScale = Vector3.one; @@ -717,8 +720,7 @@ // 设置播放特效对应的3D坐标: Vector3 vpos = GridToWorld(new IntVector2(x, dy - y), new IntVector2(2, 1)); vpos.x -= (gridSize / 2.0f); vpos.y += 5.0f; vpos.x -= 1f; arrTowerEnergyEffect[x, y] = Instantiate(energyEffectPrefab); arrTowerEnergyEffect[x, y].transform.position = vpos; Assets/Scripts/TowerDefense/Towers/TowerFireTrigger.cs
@@ -20,15 +20,16 @@ public void OnFire() { if (!isStart) { isStart = true; } else { Debug.Log($"--------------------- {duration} ---------------------"); duration = 0; } // cx test // if (!isStart) // { // isStart = true; // } // else // { // Debug.Log($"--------------------- {duration} ---------------------"); // duration = 0; // } Affector.FireProjectile(); } Assets/Scripts/TowerDefense/UI/BulletUICtl.cs
@@ -10,16 +10,25 @@ /// </summary> public class BulletUICtl : MonoBehaviour { public Image bulletScaleMask; public SpriteRenderer bulletScaleMask; public float fAdjValue; /// <summary> /// 最大子弹数目. /// </summary> public int maxBulletNum; /// <summary> /// 当前的子弹数目. /// </summary> protected int curBulletNum; private float[] scaleArr = { 0, 0.16f, 0.32f, 0.48f, 0.64f, 0.8f, 1f }; private float[] yArr = { 0.4f, 0.377f, 0.307f, 0.227f, 0.153f, 0.074f, 0 }; private float gap = 0.15f; // Start is called before the first frame update void Start() @@ -78,8 +87,13 @@ public void updateBulletUI( int curBNum,int totalBNum) { if (bulletScaleMask == null) return; float scaleY = 1.0f - curBNum / (float)totalBNum - fAdjValue; bulletScaleMask.rectTransform.DOScaleY( scaleY, 0.0f); Vector3 pos = bulletScaleMask.transform.localPosition; pos.y = yArr[maxBulletNum - curBulletNum]; bulletScaleMask.transform.localPosition = pos; Vector3 s = bulletScaleMask.transform.localScale; s.y = scaleArr[maxBulletNum - curBulletNum]; bulletScaleMask.transform.localScale = s; } // Update is called once per frame