From 0b066d04610ea4b61f61465b504d6a3a220ab491 Mon Sep 17 00:00:00 2001 From: Laurids Jeppe Date: Thu, 31 Dec 2020 13:04:52 +0100 Subject: [PATCH] Planet Connection Effekte --- .../Materials/PlanetConnectionQuad.mat | 77 +++++++++++++++ .../Materials/PlanetConnectionQuad.mat.meta | 8 ++ .../Effects/PlanetConnectionQuad.prefab | 96 +++++++++++++++++++ .../Effects/PlanetConnectionQuad.prefab.meta | 7 ++ .../GWConquest/Prefabs/UI/MoneyDisplay.prefab | 16 ++++ .../Prefabs/UI/PlanetIndicator.prefab | 18 +++- .../Resources/PlanetConnection.prefab | 6 +- Assets/GWConquest/Scenes/GalaxyMap.unity | 50 ++++++++-- Assets/GWConquest/Scripts/PlanetConnection.cs | 75 +++++++++++++-- 9 files changed, 336 insertions(+), 17 deletions(-) create mode 100644 Assets/GWConquest/Materials/PlanetConnectionQuad.mat create mode 100644 Assets/GWConquest/Materials/PlanetConnectionQuad.mat.meta create mode 100644 Assets/GWConquest/Prefabs/Effects/PlanetConnectionQuad.prefab create mode 100644 Assets/GWConquest/Prefabs/Effects/PlanetConnectionQuad.prefab.meta diff --git a/Assets/GWConquest/Materials/PlanetConnectionQuad.mat b/Assets/GWConquest/Materials/PlanetConnectionQuad.mat new file mode 100644 index 0000000..114e627 --- /dev/null +++ b/Assets/GWConquest/Materials/PlanetConnectionQuad.mat @@ -0,0 +1,77 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PlanetConnectionQuad + m_Shader: {fileID: 10755, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/GWConquest/Materials/PlanetConnectionQuad.mat.meta b/Assets/GWConquest/Materials/PlanetConnectionQuad.mat.meta new file mode 100644 index 0000000..237df37 --- /dev/null +++ b/Assets/GWConquest/Materials/PlanetConnectionQuad.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1cf39046a0c86d64fa12ed646c06f0ad +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GWConquest/Prefabs/Effects/PlanetConnectionQuad.prefab b/Assets/GWConquest/Prefabs/Effects/PlanetConnectionQuad.prefab new file mode 100644 index 0000000..5080422 --- /dev/null +++ b/Assets/GWConquest/Prefabs/Effects/PlanetConnectionQuad.prefab @@ -0,0 +1,96 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6069422642220358092 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 808800948270478456} + - component: {fileID: 6651063736350637766} + - component: {fileID: 8597873095502276704} + - component: {fileID: 6282349890526541981} + m_Layer: 10 + m_Name: PlanetConnectionQuad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &808800948270478456 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6069422642220358092} + m_LocalRotation: {x: 0.69839865, y: -0.11063118, z: 0.11063118, w: 0.69839877} + m_LocalPosition: {x: -101, y: -0, z: 114} + m_LocalScale: {x: 16.519001, y: 20, z: 20} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90.00001, y: 0, z: 18.003} +--- !u!33 &6651063736350637766 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6069422642220358092} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &8597873095502276704 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6069422642220358092} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1cf39046a0c86d64fa12ed646c06f0ad, type: 2} + 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 +--- !u!64 &6282349890526541981 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6069422642220358092} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} diff --git a/Assets/GWConquest/Prefabs/Effects/PlanetConnectionQuad.prefab.meta b/Assets/GWConquest/Prefabs/Effects/PlanetConnectionQuad.prefab.meta new file mode 100644 index 0000000..28a32bd --- /dev/null +++ b/Assets/GWConquest/Prefabs/Effects/PlanetConnectionQuad.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1d8cf03ddf5b714438fd0ecc04ac501c +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GWConquest/Prefabs/UI/MoneyDisplay.prefab b/Assets/GWConquest/Prefabs/UI/MoneyDisplay.prefab index 55b16d5..f8ca555 100644 --- a/Assets/GWConquest/Prefabs/UI/MoneyDisplay.prefab +++ b/Assets/GWConquest/Prefabs/UI/MoneyDisplay.prefab @@ -180,6 +180,7 @@ GameObject: - component: {fileID: 4096209425149672180} - component: {fileID: 4096209425149672179} - component: {fileID: 4096209425149672178} + - component: {fileID: 7030066926574925919} m_Layer: 5 m_Name: Icon m_TagString: Untagged @@ -286,6 +287,21 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!114 &7030066926574925919 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4096209425149672176} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 0.85882354} + m_EffectDistance: {x: 0.5, y: -0.5} + m_UseGraphicAlpha: 1 --- !u!1 &4928236438828894843 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/GWConquest/Prefabs/UI/PlanetIndicator.prefab b/Assets/GWConquest/Prefabs/UI/PlanetIndicator.prefab index 971c555..97557cc 100644 --- a/Assets/GWConquest/Prefabs/UI/PlanetIndicator.prefab +++ b/Assets/GWConquest/Prefabs/UI/PlanetIndicator.prefab @@ -85,13 +85,14 @@ GameObject: - component: {fileID: 2845208572781105551} - component: {fileID: 6883330568249547342} - component: {fileID: 7197385088179281400} + - component: {fileID: 5556159197701511021} m_Layer: 5 m_Name: FactionIcon m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &2845208572781105551 RectTransform: m_ObjectHideFlags: 0 @@ -148,6 +149,21 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5556159197701511021 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1004975018085727846} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 0.6431373} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 --- !u!1 &1425561383975781025 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/GWConquest/Resources/PlanetConnection.prefab b/Assets/GWConquest/Resources/PlanetConnection.prefab index ca4679d..ce28fe0 100644 --- a/Assets/GWConquest/Resources/PlanetConnection.prefab +++ b/Assets/GWConquest/Resources/PlanetConnection.prefab @@ -73,7 +73,7 @@ LineRenderer: m_SortingOrder: 0 m_Positions: - {x: 0, y: 0, z: 0} - - {x: 0, y: 0, z: 0} + - {x: 1000, y: 0, z: 0} m_Parameters: serializedVersion: 3 widthMultiplier: 5 @@ -144,3 +144,7 @@ MonoBehaviour: planet1: {fileID: 0} planet2: {fileID: 0} drawLine: 1 + QuadPrefab: {fileID: 6069422642220358092, guid: 1d8cf03ddf5b714438fd0ecc04ac501c, + type: 3} + QuadCount: 8 + QuadSpeed: 200 diff --git a/Assets/GWConquest/Scenes/GalaxyMap.unity b/Assets/GWConquest/Scenes/GalaxyMap.unity index 5dd0d34..b5a3353 100644 --- a/Assets/GWConquest/Scenes/GalaxyMap.unity +++ b/Assets/GWConquest/Scenes/GalaxyMap.unity @@ -18355,6 +18355,7 @@ GameObject: - component: {fileID: 293147104} - component: {fileID: 293147106} - component: {fileID: 293147105} + - component: {fileID: 293147107} m_Layer: 5 m_Name: Image m_TagString: Untagged @@ -18418,6 +18419,21 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 293147103} m_CullTransparentMesh: 0 +--- !u!114 &293147107 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 293147103} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 0.6156863} + m_EffectDistance: {x: 2, y: -2} + m_UseGraphicAlpha: 1 --- !u!1 &294156831 GameObject: m_ObjectHideFlags: 0 @@ -63472,7 +63488,7 @@ PrefabInstance: - target: {fileID: 4678135251219451999, guid: 9ae35d7f911b63f4f95f432141dd5746, type: 3} propertyPath: m_LocalPosition.x - value: -1624 + value: -1519 objectReference: {fileID: 0} - target: {fileID: 4678135251219451999, guid: 9ae35d7f911b63f4f95f432141dd5746, type: 3} @@ -63482,7 +63498,7 @@ PrefabInstance: - target: {fileID: 4678135251219451999, guid: 9ae35d7f911b63f4f95f432141dd5746, type: 3} propertyPath: m_LocalPosition.z - value: 1820 + value: 1710 objectReference: {fileID: 0} - target: {fileID: 4678135251219451999, guid: 9ae35d7f911b63f4f95f432141dd5746, type: 3} @@ -91345,12 +91361,12 @@ PrefabInstance: - target: {fileID: 5208040857522702121, guid: d65f827586fd5c04e9caf7f4ff7338e6, type: 3} propertyPath: m_Positions.Array.data[0].x - value: -3150 + value: -3160 objectReference: {fileID: 0} - target: {fileID: 5208040857522702121, guid: d65f827586fd5c04e9caf7f4ff7338e6, type: 3} propertyPath: m_Positions.Array.data[0].z - value: 1688 + value: 1720 objectReference: {fileID: 0} - target: {fileID: 5208040857522702121, guid: d65f827586fd5c04e9caf7f4ff7338e6, type: 3} @@ -94606,12 +94622,12 @@ PrefabInstance: - target: {fileID: 5208040857522702121, guid: d65f827586fd5c04e9caf7f4ff7338e6, type: 3} propertyPath: m_Positions.Array.data[1].x - value: -1624 + value: -1519 objectReference: {fileID: 0} - target: {fileID: 5208040857522702121, guid: d65f827586fd5c04e9caf7f4ff7338e6, type: 3} propertyPath: m_Positions.Array.data[1].z - value: 1820 + value: 1710 objectReference: {fileID: 0} - target: {fileID: 5208040857522702121, guid: d65f827586fd5c04e9caf7f4ff7338e6, type: 3} @@ -96075,7 +96091,7 @@ PrefabInstance: - target: {fileID: 4678135251219451999, guid: 9ae35d7f911b63f4f95f432141dd5746, type: 3} propertyPath: m_LocalPosition.x - value: -3150 + value: -3160 objectReference: {fileID: 0} - target: {fileID: 4678135251219451999, guid: 9ae35d7f911b63f4f95f432141dd5746, type: 3} @@ -96085,7 +96101,7 @@ PrefabInstance: - target: {fileID: 4678135251219451999, guid: 9ae35d7f911b63f4f95f432141dd5746, type: 3} propertyPath: m_LocalPosition.z - value: 1688 + value: 1720 objectReference: {fileID: 0} - target: {fileID: 4678135251219451999, guid: 9ae35d7f911b63f4f95f432141dd5746, type: 3} @@ -125370,7 +125386,7 @@ MonoBehaviour: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1967795785} - m_Enabled: 0 + m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 12e3f8defa6efc34191df9e8bf49dda2, type: 3} m_Name: @@ -127019,6 +127035,7 @@ GameObject: - component: {fileID: 1981011822} - component: {fileID: 1981011824} - component: {fileID: 1981011823} + - component: {fileID: 1981011825} m_Layer: 5 m_Name: PlanetTitle m_TagString: Untagged @@ -127088,6 +127105,21 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1981011821} m_CullTransparentMesh: 0 +--- !u!114 &1981011825 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1981011821} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 0.70980394} + m_EffectDistance: {x: 2, y: -2} + m_UseGraphicAlpha: 1 --- !u!1 &1981973609 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/GWConquest/Scripts/PlanetConnection.cs b/Assets/GWConquest/Scripts/PlanetConnection.cs index 7073870..e0110c9 100644 --- a/Assets/GWConquest/Scripts/PlanetConnection.cs +++ b/Assets/GWConquest/Scripts/PlanetConnection.cs @@ -1,5 +1,5 @@ using UnityEngine; -using System; +using System.Linq; using System.Collections.Generic; namespace GWConquest @@ -12,6 +12,19 @@ namespace GWConquest public bool drawLine = true; + public GameObject QuadPrefab; + + public float QuadCount; + public float QuadSpeed; + + private class QuadEffect + { + public Transform transform; + public Vector3 target; + } + + private List Quads = new List(); + private LineRenderer lineRenderer; private Color neutralColor; @@ -19,10 +32,13 @@ namespace GWConquest if(Application.isPlaying) { Color color1 = neutralColor; - Color color2 = neutralColor; + Color color2 = neutralColor; + + Player player1 = null; + Player player2 = null; if(planet1 != null) { - var player1 = planet1.ControllingPlayer; + player1 = planet1.ControllingPlayer; if(player1 != null) { color1 = player1.Faction.FactionColor; @@ -30,7 +46,7 @@ namespace GWConquest } if(planet2 != null) { - var player2 = planet2.ControllingPlayer; + player2 = planet2.ControllingPlayer; if(player2 != null) { color2 = player2.Faction.FactionColor; @@ -38,12 +54,40 @@ namespace GWConquest } lineRenderer.startColor = Util.UpdateColorRGB(lineRenderer.startColor, color1); lineRenderer.endColor = Util.UpdateColorRGB(lineRenderer.endColor, color2); + + if(player1 != null && player2 != null && player1 == player2) + { + var distance = Vector3.Distance(planet1.transform.position, planet2.transform.position); + var runtime = distance / QuadSpeed; + var chance = QuadCount * Time.deltaTime / runtime; + if(UnityEngine.Random.value <= chance) + { + var quadGO = Instantiate(QuadPrefab); + var quadTrans = quadGO.transform; + quadTrans.SetParent(transform); + var startFirst = UnityEngine.Random.value <= 0.5f; + var start = startFirst ? planet1.transform.position : planet2.transform.position; + var target = startFirst ? planet2.transform.position : planet1.transform.position; + quadTrans.position = start; + quadTrans.rotation = Quaternion.LookRotation(Vector3.down, target - start); + + var quadRend = quadGO.GetComponent(); + quadRend.material.color = Util.UpdateColorRGB(quadRend.material.color, color1); + + Quads.Add(new QuadEffect() { + transform = quadTrans, + target = target + }); + } + } } + } -#if UNITY_EDITOR + private void Update() { +#if UNITY_EDITOR if (planet1 != null && planet2 != null) { LineRenderer lineRenderer = GetComponent(); @@ -60,9 +104,28 @@ namespace GWConquest } } - } #endif + if(Application.isPlaying) + { + var delta = QuadSpeed * Time.deltaTime; + for(int i = Quads.Count-1; i >= 0; i--) + { + var quad = Quads[i]; + quad.transform.position = Vector3.MoveTowards(quad.transform.position, quad.target, delta); + if(Vector3.SqrMagnitude(quad.transform.position - quad.target) <= 0.1) + { + Destroy(quad.transform.gameObject); + Quads.RemoveAt(i); + } + } + + + + } + } + + public float GetLength() { return Vector3.Distance(planet1.transform.position, planet2.transform.position);