From dd209dd3dae0d05628542493e698aabc7e2c4f59 Mon Sep 17 00:00:00 2001 From: Ali Sharoz Date: Fri, 14 Feb 2025 00:46:22 +0500 Subject: [PATCH] ForeSight VFX Animated Arrows --- .../Abilities/CrowsForesightPrefab.prefab | 4 +- Assets/Prefabs/ForeSightLineRenderer.prefab | 155 ++++++++++++++++++ .../Prefabs/ForeSightLineRenderer.prefab.meta | 7 + Assets/RightArrow.png | Bin 0 -> 15526 bytes Assets/RightArrow.png.meta | 114 +++++++++++++ Assets/Scenes/BossRoom.unity | 4 +- .../Scripts/Gameplay/CrowsForesightPrefab.cs | 11 +- Assets/ScrollingLineMaterial..mat | 58 +++++++ Assets/ScrollingLineMaterial..mat.meta | 8 + Assets/ScrollingLineRenderer.cs | 19 +++ Assets/ScrollingLineRenderer.cs.meta | 11 ++ Assets/ScrollingLineShader.shader | 60 +++++++ Assets/ScrollingLineShader.shader.meta | 9 + 13 files changed, 452 insertions(+), 8 deletions(-) create mode 100644 Assets/Prefabs/ForeSightLineRenderer.prefab create mode 100644 Assets/Prefabs/ForeSightLineRenderer.prefab.meta create mode 100644 Assets/RightArrow.png create mode 100644 Assets/RightArrow.png.meta create mode 100644 Assets/ScrollingLineMaterial..mat create mode 100644 Assets/ScrollingLineMaterial..mat.meta create mode 100644 Assets/ScrollingLineRenderer.cs create mode 100644 Assets/ScrollingLineRenderer.cs.meta create mode 100644 Assets/ScrollingLineShader.shader create mode 100644 Assets/ScrollingLineShader.shader.meta diff --git a/Assets/Prefabs/Abilities/CrowsForesightPrefab.prefab b/Assets/Prefabs/Abilities/CrowsForesightPrefab.prefab index ce98eec2..82be392e 100644 --- a/Assets/Prefabs/Abilities/CrowsForesightPrefab.prefab +++ b/Assets/Prefabs/Abilities/CrowsForesightPrefab.prefab @@ -45,7 +45,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3} m_Name: m_EditorClassIdentifier: - GlobalObjectIdHash: 17096565 + GlobalObjectIdHash: 1807401839 InScenePlacedSourceGlobalObjectIdHash: 0 AlwaysReplicateAsRoot: 0 SynchronizeTransform: 1 @@ -66,4 +66,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 24b344d29ff558b4197f1bb01ec11343, type: 3} m_Name: m_EditorClassIdentifier: - Ability: {fileID: 11400000, guid: 6b4485e4bc8be814db7fc22a6778fbd5, type: 2} + LinePrefab: {fileID: 7889671876836792639, guid: f76245e183e27164b945e77d80de8c0c, type: 3} diff --git a/Assets/Prefabs/ForeSightLineRenderer.prefab b/Assets/Prefabs/ForeSightLineRenderer.prefab new file mode 100644 index 00000000..7121ff28 --- /dev/null +++ b/Assets/Prefabs/ForeSightLineRenderer.prefab @@ -0,0 +1,155 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7889671876836792639 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2190496012411949397} + - component: {fileID: 9057376229307534297} + - component: {fileID: 7429976590137184792} + m_Layer: 0 + m_Name: ForeSightLineRenderer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2190496012411949397 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7889671876836792639} + serializedVersion: 2 + 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_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!120 &9057376229307534297 +LineRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7889671876836792639} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 77e5ea3a019674146a9f2b3ed629b386, 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 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + textureScale: {x: 1, y: 1} + shadowBias: 0.5 + generateLightingData: 0 + m_MaskInteraction: 0 + m_UseWorldSpace: 1 + m_Loop: 0 + m_ApplyActiveColorSpace: 1 +--- !u!114 &7429976590137184792 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7889671876836792639} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1e6412647fb95594eb08353a0c8edd79, type: 3} + m_Name: + m_EditorClassIdentifier: + lineRenderer: {fileID: 9057376229307534297} + scrollingMaterial: {fileID: 2100000, guid: 77e5ea3a019674146a9f2b3ed629b386, type: 2} + speed: 1 + tiling: 0.28 diff --git a/Assets/Prefabs/ForeSightLineRenderer.prefab.meta b/Assets/Prefabs/ForeSightLineRenderer.prefab.meta new file mode 100644 index 00000000..297c36c3 --- /dev/null +++ b/Assets/Prefabs/ForeSightLineRenderer.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f76245e183e27164b945e77d80de8c0c +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/RightArrow.png b/Assets/RightArrow.png new file mode 100644 index 0000000000000000000000000000000000000000..fd39ebe241bc85bf70c1c9c38ed84d9ef2bb77d0 GIT binary patch literal 15526 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 x5T^%^9M$FJ<-OcI foresightLines = new Dictionary(); private ulong crowClientId; private Coroutine destroyCoroutine; + public GameObject LinePrefab; private void Start() { if (IsServer) @@ -131,11 +132,13 @@ public class CrowsForesightPrefab : NetworkBehaviour private LineRenderer CreateLine() { - GameObject lineObj = new GameObject("ForesightLine"); + //GameObject lineObj = new GameObject("ForesightLine"); + + GameObject lineObj = Instantiate(LinePrefab); LineRenderer line = lineObj.AddComponent(); - line.startWidth = 0.1f; - line.endWidth = 0.1f; - line.material = new Material(Shader.Find("Sprites/Default")); + line.startWidth = 0.7f; + line.endWidth = 0.7f; + //line.material = new Material(Shader.Find("Sprites/Default")); line.transform.SetParent(transform); return line; } diff --git a/Assets/ScrollingLineMaterial..mat b/Assets/ScrollingLineMaterial..mat new file mode 100644 index 00000000..6b4a0207 --- /dev/null +++ b/Assets/ScrollingLineMaterial..mat @@ -0,0 +1,58 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ScrollingLineMaterial. + m_Shader: {fileID: 4800000, guid: 05686b96e6140824aaa8a5a993e01e93, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: + - _SURFACE_TYPE_TRANSPARENT + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DepthOnly + - SHADOWCASTER + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 09aebc1469fdd064baac1bb748179611, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 09aebc1469fdd064baac1bb748179611, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendOp: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DstBlend: 10 + - _DstBlendAlpha: 10 + - _QueueOffset: 0 + - _SampleGI: 0 + - _Speed: 1 + - _SrcBlend: 5 + - _SrcBlendAlpha: 1 + - _Surface: 1 + - _Tiling: 1 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/ScrollingLineMaterial..mat.meta b/Assets/ScrollingLineMaterial..mat.meta new file mode 100644 index 00000000..adf8a3e1 --- /dev/null +++ b/Assets/ScrollingLineMaterial..mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 77e5ea3a019674146a9f2b3ed629b386 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScrollingLineRenderer.cs b/Assets/ScrollingLineRenderer.cs new file mode 100644 index 00000000..c5bafeca --- /dev/null +++ b/Assets/ScrollingLineRenderer.cs @@ -0,0 +1,19 @@ +using UnityEngine; + +public class ScrollingLineRenderer : MonoBehaviour +{ + public LineRenderer lineRenderer; + public Material scrollingMaterial; + public float speed = 1.0f; // Adjust speed in Inspector + public float tiling = 1.0f; // Controls how many arrows fit in the line + + void Update() + { + if (scrollingMaterial == null) return; + + // Scroll texture over time + float offset = Time.time * -speed; + scrollingMaterial.SetFloat("_Speed", speed); + scrollingMaterial.SetFloat("_Tiling", tiling); + } +} diff --git a/Assets/ScrollingLineRenderer.cs.meta b/Assets/ScrollingLineRenderer.cs.meta new file mode 100644 index 00000000..05b8c4ea --- /dev/null +++ b/Assets/ScrollingLineRenderer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1e6412647fb95594eb08353a0c8edd79 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScrollingLineShader.shader b/Assets/ScrollingLineShader.shader new file mode 100644 index 00000000..7f239876 --- /dev/null +++ b/Assets/ScrollingLineShader.shader @@ -0,0 +1,60 @@ +Shader "Custom/ScrollingLine" +{ + Properties + { + _MainTex ("Texture", 2D) = "white" {} + _Speed ("Scroll Speed", Float) = 1.0 + _Tiling ("Texture Tiling", Float) = 1.0 + _Color ("Color Tint", Color) = (1,1,1,1) // Add color support + } + + SubShader + { + Tags { "RenderPipeline" = "UniversalRenderPipeline" "Queue"="Transparent" } + Pass + { + Blend SrcAlpha OneMinusSrcAlpha // Enable transparency + Cull Off + ZWrite Off // Prevent depth writing (helps transparency) + + HLSLPROGRAM + #pragma vertex vert + #pragma fragment frag + #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" + + struct appdata_t + { + float4 position : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f + { + float4 position : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + float _Speed; + float _Tiling; + float4 _Color; // Color support + + v2f vert (appdata_t v) + { + v2f o; + o.position = TransformObjectToHClip(v.position); + float2 offset = float2(_Time.y * _Speed, 0); // Scroll the texture horizontally + o.uv = TRANSFORM_TEX(v.uv, _MainTex) * float2(_Tiling, 1) + offset; + return o; + } + + half4 frag (v2f i) : SV_Target + { + half4 texColor = tex2D(_MainTex, i.uv); + return texColor * _Color; // Apply color tint + } + ENDHLSL + } + } +} diff --git a/Assets/ScrollingLineShader.shader.meta b/Assets/ScrollingLineShader.shader.meta new file mode 100644 index 00000000..ce62f5ba --- /dev/null +++ b/Assets/ScrollingLineShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 05686b96e6140824aaa8a5a993e01e93 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: