diff --git a/Assets/LineBar.prefab b/Assets/LineBar.prefab new file mode 100644 index 0000000..ba9a051 --- /dev/null +++ b/Assets/LineBar.prefab @@ -0,0 +1,131 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6999516977619513531 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6999516977619513530} + - component: {fileID: 6999516977619513529} + m_Layer: 0 + m_Name: LineBar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6999516977619513530 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6999516977619513531} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 19.620941, y: 2.0662532, z: -368.22906} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!120 &6999516977619513529 +LineRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6999516977619513531} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10306, 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_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.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_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 0 + m_Loop: 0 diff --git a/Assets/LineBar.prefab.meta b/Assets/LineBar.prefab.meta new file mode 100644 index 0000000..dcb516f --- /dev/null +++ b/Assets/LineBar.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5d2bf7b158da17a4685354bec9bb5b3d +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/LineBarSpectrum.cs b/Assets/LineBarSpectrum.cs new file mode 100644 index 0000000..9d24f15 --- /dev/null +++ b/Assets/LineBarSpectrum.cs @@ -0,0 +1,41 @@ +using UnityEngine; + +public class LineBarSpectrum : TripsitterAve { + private LineRenderer[] _lines; + + private float AudioScale = 10; + private float Power = 1.5f; + + public float LineWidth = 0.5f; + public float LineSpacing = 1.0f; + + void Start() { + LineRenderer prefab = GameObject.Find("LineBar").GetComponent(); + + _lines = new LineRenderer[SpectrumSize]; + + for (int i = 0; i < SpectrumSize; i++) { + LineRenderer lineRenderer = GameObject.Instantiate(prefab); + lineRenderer.transform.parent = transform; + lineRenderer.material = new Material(Shader.Find("Sprites/Default")); + lineRenderer.widthMultiplier = LineWidth; + lineRenderer.positionCount = 2; + _lines[i] = lineRenderer; + } + } + + void Update() { + var spectrumData = GetSpectrumData(); + for (int i = 0; i < SpectrumSize; i++) { + var line = _lines[i]; + var audioScale = Mathf.Pow(spectrumData[i] * AudioScale, Power); + var points = new Vector3[2]; + var x = LineSpacing * i; + points[0] = new Vector3(x, 0.0f, 0.0f); + points[1] = new Vector3(x, audioScale, 0.0f); + line.widthMultiplier = LineWidth; + line.SetPositions(points); + } + } +} + diff --git a/Assets/LineBarSpectrum.cs.meta b/Assets/LineBarSpectrum.cs.meta new file mode 100644 index 0000000..acb0fb5 --- /dev/null +++ b/Assets/LineBarSpectrum.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1d5f2cb1f9c05584fb010902c4cc4040 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/LineSpectrum.cs b/Assets/LineSpectrum.cs index f253488..b99cfd0 100644 --- a/Assets/LineSpectrum.cs +++ b/Assets/LineSpectrum.cs @@ -1,10 +1,6 @@ using UnityEngine; public class LineSpectrum : TripsitterAve { - private GameObject[] _spectrumBars; - private Vector3[] _originalPositions; - private Vector3 _originalScale; - private float AudioScale = 10; private float Power = 1.5f; @@ -13,7 +9,7 @@ public class LineSpectrum : TripsitterAve { lineRenderer.material = new Material(Shader.Find("Sprites/Default")); lineRenderer.widthMultiplier = 0.5f; lineRenderer.positionCount = SpectrumSize; - Debug.Log("{SpectrumSize}"); + Debug.Log($"{SpectrumSize}"); } void Update() { diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity index f7d530b..74ec79c 100644 --- a/Assets/Scenes/Main.unity +++ b/Assets/Scenes/Main.unity @@ -139,7 +139,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!4 &285484269 Transform: m_ObjectHideFlags: 0 @@ -199,7 +199,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: CaptureType: 0 - SpectrumSize: 64 + SpectrumSize: 128 ScalingStrategy: 2 MinFrequency: 80 MaxFrequency: 20000 @@ -454,7 +454,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!114 &1560384703 MonoBehaviour: m_ObjectHideFlags: 0 @@ -488,6 +488,11 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &1594253353 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6999516977619513530, guid: 5d2bf7b158da17a4685354bec9bb5b3d, type: 3} + m_PrefabInstance: {fileID: 6999516978877943955} + m_PrefabAsset: {fileID: 0} --- !u!1 &1998037174 stripped GameObject: m_CorrespondingSourceObject: {fileID: 3951425291114222009, guid: c67cf5d0160fa1340afc79b251a0c205, type: 3} @@ -498,6 +503,55 @@ Transform: m_CorrespondingSourceObject: {fileID: 3951425291114222005, guid: c67cf5d0160fa1340afc79b251a0c205, type: 3} m_PrefabInstance: {fileID: 3951425289854923023} m_PrefabAsset: {fileID: 0} +--- !u!1 &2090600555 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2090600557} + - component: {fileID: 2090600556} + m_Layer: 0 + m_Name: LineBarSpectrum + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2090600556 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2090600555} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1d5f2cb1f9c05584fb010902c4cc4040, type: 3} + m_Name: + m_EditorClassIdentifier: + WasapiAudioSource: {fileID: 0} + Preview: + Values: [] + LineWidth: 0.5 + LineSpacing: 1 +--- !u!4 &2090600557 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2090600555} + 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: 1594253353} + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &3951425289854923023 PrefabInstance: m_ObjectHideFlags: 0 @@ -564,3 +618,60 @@ PrefabInstance: m_RemovedComponents: - {fileID: 7554796985381095928, guid: c67cf5d0160fa1340afc79b251a0c205, type: 3} m_SourcePrefab: {fileID: 100100000, guid: c67cf5d0160fa1340afc79b251a0c205, type: 3} +--- !u!1001 &6999516978877943955 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2090600557} + m_Modifications: + - target: {fileID: 6999516977619513530, guid: 5d2bf7b158da17a4685354bec9bb5b3d, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6999516977619513530, guid: 5d2bf7b158da17a4685354bec9bb5b3d, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6999516977619513530, guid: 5d2bf7b158da17a4685354bec9bb5b3d, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6999516977619513530, guid: 5d2bf7b158da17a4685354bec9bb5b3d, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6999516977619513530, guid: 5d2bf7b158da17a4685354bec9bb5b3d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6999516977619513530, guid: 5d2bf7b158da17a4685354bec9bb5b3d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6999516977619513530, guid: 5d2bf7b158da17a4685354bec9bb5b3d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6999516977619513530, guid: 5d2bf7b158da17a4685354bec9bb5b3d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6999516977619513530, guid: 5d2bf7b158da17a4685354bec9bb5b3d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6999516977619513530, guid: 5d2bf7b158da17a4685354bec9bb5b3d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6999516977619513530, guid: 5d2bf7b158da17a4685354bec9bb5b3d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6999516977619513531, guid: 5d2bf7b158da17a4685354bec9bb5b3d, type: 3} + propertyPath: m_Name + value: LineBar + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5d2bf7b158da17a4685354bec9bb5b3d, type: 3}