diff --git a/Assets/Main.unity b/Assets/Main.unity index 9d1aec8..f1a4b5d 100644 --- a/Assets/Main.unity +++ b/Assets/Main.unity @@ -1801,6 +1801,64 @@ Transform: m_Children: [] m_Father: {fileID: 924830808} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &980030819 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 980030821} + - component: {fileID: 980030820} + m_Layer: 0 + m_Name: Traffic + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &980030820 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 980030819} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b9bb25da9b61d4849b3c17eff30adbf8, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::TrafficLane + routeLength: 60 + laneCenter: 0 + vehiclePrefabs: + - {fileID: 1557020077158108179, guid: 7893264379c7b27449c0d5cd800de112, type: 3} + - {fileID: 6059035821173914762, guid: bf52a0f6f1d4ca94abedb85fa135a7cd, type: 3} + - {fileID: 7937761055385602081, guid: 692d27357d450044883464a7dc84418a, type: 3} + poolSize: 12 + baseSpeed: 6 + speedVariance: 0.05 + spawnInterval: 0.5 + spawnIntervalVariance: 0.4 + minSpawnGap: 4 + driftAmplitude: 0.05 + driftFrequency: 0.08 +--- !u!4 &980030821 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 980030819} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} + m_LocalPosition: {x: -0.28, y: 0, z: 37.23} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} --- !u!1 &1142443635 GameObject: m_ObjectHideFlags: 0 @@ -3520,7 +3578,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 2147483647 - m_IsActive: 1 + m_IsActive: 0 --- !u!23 &7499497021674395898 MeshRenderer: m_ObjectHideFlags: 0 @@ -3850,5 +3908,6 @@ SceneRoots: - {fileID: 604712594} - {fileID: 505702790} - {fileID: 1142443636} + - {fileID: 980030821} - {fileID: 465598214} - {fileID: 303688530} diff --git a/Assets/Scripts/Traffic.meta b/Assets/Scripts/Traffic.meta new file mode 100644 index 0000000..ba4a2b4 --- /dev/null +++ b/Assets/Scripts/Traffic.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b9a186e998591ef46a976b06d5973e32 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Traffic/TrafficLane.cs b/Assets/Scripts/Traffic/TrafficLane.cs new file mode 100644 index 0000000..82df533 --- /dev/null +++ b/Assets/Scripts/Traffic/TrafficLane.cs @@ -0,0 +1,264 @@ +using System.Collections.Generic; +using UnityEngine; + +/// +/// Simulates a single lane of traffic by recycling a fixed pool of vehicle GameObjects. +/// Vehicles travel along local +Z, with organic lateral drift driven by Perlin noise. +/// +/// Usage: +/// 1. Place this component on an empty GameObject aligned with the road lane. +/// 2. Assign vehicle prefabs, tune speed and drift. +/// 3. Duplicate and mirror-X for the opposite lane. +/// +public class TrafficLane : MonoBehaviour +{ + // ── Route ───────────────────────────────────────────────────────────────── + + [Header("Route")] + [Tooltip("Length of the lane in local +Z units. Vehicles are recycled at the far end.")] + public float routeLength = 80f; + + [Tooltip("Local X position of the lane centre.")] + public float laneCenter = 0f; + + // ── Vehicle Pool ────────────────────────────────────────────────────────── + + [Header("Vehicle Pool")] + [Tooltip("Prefabs to randomly draw from when spawning. Can contain different vehicle types.")] + public GameObject[] vehiclePrefabs; + + [Tooltip("Total number of vehicle instances kept alive at once.")] + [Range(1, 60)] + public int poolSize = 12; + + // ── Speed ───────────────────────────────────────────────────────────────── + + [Header("Speed")] + [Tooltip("Average forward speed in units / second.")] + public float baseSpeed = 6f; + + [Tooltip("Per-vehicle speed spread as a fraction of baseSpeed (±).")] + [Range(0f, 0.5f)] + public float speedVariance = 0.2f; + + // ── Spawn ───────────────────────────────────────────────────────────────── + + [Header("Spawn")] + [Tooltip("Average seconds between consecutive spawns.")] + public float spawnInterval = 2.5f; + + [Tooltip("Randomisation of spawn interval as a fraction (±).")] + [Range(0f, 0.9f)] + public float spawnIntervalVariance = 0.4f; + + [Tooltip("Minimum clearance required at Z=0 before the next vehicle may enter.")] + public float minSpawnGap = 4f; + + // ── Lateral Drift ───────────────────────────────────────────────────────── + + [Header("Lateral Drift")] + [Tooltip("Maximum left / right deviation from lane centre (units).")] + public float driftAmplitude = 0.25f; + + [Tooltip("Spatial frequency of the drift wave — lower = longer, lazier curves.")] + [Range(0.01f, 1f)] + public float driftFrequency = 0.08f; + + // ── Private state ───────────────────────────────────────────────────────── + + private class Agent + { + public GameObject go; + public float progress; // distance travelled along Z this trip + public float speed; // units / second for this trip + public float noiseRow; // unique Y coordinate in Perlin space for this trip + public bool active; + } + + private readonly List pool = new(); + private float spawnTimer; + private float nextSpawnDelay; + + // ── Lifecycle ───────────────────────────────────────────────────────────── + + private void Start() + { + if (vehiclePrefabs == null || vehiclePrefabs.Length == 0) + { + Debug.LogWarning("[TrafficLane] No vehicle prefabs assigned.", this); + enabled = false; + return; + } + + BuildPool(); + ScheduleNextSpawn(); + + // Scatter a few vehicles along the lane so it doesn't look empty at start. + PrewarmLane(); + } + + private void Update() + { + TickAgents(); + TickSpawn(); + } + + // ── Pool construction ───────────────────────────────────────────────────── + + private void BuildPool() + { + for (var i = 0; i < poolSize; i++) + { + var prefab = vehiclePrefabs[Random.Range(0, vehiclePrefabs.Length)]; + var go = Instantiate(prefab, transform); + go.SetActive(false); + pool.Add(new Agent { go = go, noiseRow = Random.Range(0f, 100f) }); + } + } + + private void PrewarmLane() + { + // Spread inactive vehicles evenly so the lane looks populated from frame 1. + var step = routeLength / Mathf.Max(poolSize * 0.5f, 1f); + var z = Random.Range(0f, step); + foreach (var agent in pool) + { + if (z >= routeLength) + { + break; + } + Activate(agent, z); + z += step * Random.Range(0.7f, 1.3f); + } + } + + // ── Per-frame tick ──────────────────────────────────────────────────────── + + private void TickAgents() + { + foreach (var agent in pool) + { + if (!agent.active) + { + continue; + } + + agent.progress += agent.speed * Time.deltaTime; + + if (agent.progress >= routeLength) + { + Deactivate(agent); + continue; + } + + // Perlin noise: x-axis = position along route, y-axis = per-agent seed. + var noise = Mathf.PerlinNoise(agent.progress * driftFrequency, agent.noiseRow); + var lateral = laneCenter + (noise * 2f - 1f) * driftAmplitude; + + var prev = agent.go.transform.localPosition; + var next = new Vector3(lateral, 0f, agent.progress); + agent.go.transform.localPosition = next; + + // Face direction of travel, ignoring tiny sub-frame deltas. + var delta = next - prev; + if (delta.sqrMagnitude > 1e-6f) + { + agent.go.transform.localRotation = Quaternion.LookRotation(delta, Vector3.up); + } + } + } + + private void TickSpawn() + { + spawnTimer += Time.deltaTime; + if (spawnTimer < nextSpawnDelay) + { + return; + } + + spawnTimer = 0f; + ScheduleNextSpawn(); + + // Block spawn if another vehicle is still near the entry point. + foreach (var agent in pool) + { + if (agent.active && agent.progress < minSpawnGap) + { + return; + } + } + + SpawnNext(0f); + } + + // ── Helpers ─────────────────────────────────────────────────────────────── + + private void Activate(Agent agent, float startProgress) + { + agent.progress = startProgress; + agent.speed = baseSpeed * (1f + Random.Range(-speedVariance, speedVariance)); + agent.noiseRow = Random.Range(0f, 100f); + agent.go.SetActive(true); + agent.active = true; + + // Teleport silently to start position before enabling. + var noise = Mathf.PerlinNoise(startProgress * driftFrequency, agent.noiseRow); + var lateral = laneCenter + (noise * 2f - 1f) * driftAmplitude; + agent.go.transform.localPosition = new Vector3(lateral, 0f, startProgress); + } + + private void SpawnNext(float startProgress) + { + foreach (var agent in pool) + { + if (!agent.active) + { + Activate(agent, startProgress); + return; + } + } + // Pool exhausted — skip this cycle. + } + + private static void Deactivate(Agent agent) + { + agent.go.SetActive(false); + agent.active = false; + } + + private void ScheduleNextSpawn() + { + var variance = spawnInterval * spawnIntervalVariance; + nextSpawnDelay = Mathf.Max(0.1f, spawnInterval + Random.Range(-variance, variance)); + } + + // ── Editor visualisation ────────────────────────────────────────────────── + +#if UNITY_EDITOR + private void OnDrawGizmosSelected() + { + var start = transform.TransformPoint(new Vector3(laneCenter, 0f, 0f)); + var end = transform.TransformPoint(new Vector3(laneCenter, 0f, routeLength)); + + Gizmos.color = Color.yellow; + Gizmos.DrawLine(start, end); + + // Drift envelope. + Gizmos.color = new Color(1f, 1f, 0f, 0.25f); + var left = transform.TransformPoint(new Vector3(laneCenter - driftAmplitude, 0f, 0f)); + var right = transform.TransformPoint(new Vector3(laneCenter + driftAmplitude, 0f, 0f)); + var leftEnd = transform.TransformPoint(new Vector3(laneCenter - driftAmplitude, 0f, routeLength)); + var rightEnd = transform.TransformPoint(new Vector3(laneCenter + driftAmplitude, 0f, routeLength)); + Gizmos.DrawLine(left, leftEnd); + Gizmos.DrawLine(right, rightEnd); + Gizmos.DrawLine(left, right); + Gizmos.DrawLine(leftEnd, rightEnd); + + // Entry / exit markers. + Gizmos.color = Color.green; + Gizmos.DrawSphere(start, 0.3f); + Gizmos.color = Color.red; + Gizmos.DrawSphere(end, 0.3f); + } +#endif +} diff --git a/Assets/Scripts/Traffic/TrafficLane.cs.meta b/Assets/Scripts/Traffic/TrafficLane.cs.meta new file mode 100644 index 0000000..4b452a3 --- /dev/null +++ b/Assets/Scripts/Traffic/TrafficLane.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: b9bb25da9b61d4849b3c17eff30adbf8 \ No newline at end of file diff --git a/Assets/Temp/Skoda Kamiq.prefab b/Assets/Temp/Skoda Kamiq.prefab new file mode 100644 index 0000000..5d1ae88 --- /dev/null +++ b/Assets/Temp/Skoda Kamiq.prefab @@ -0,0 +1,146 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1557020077158108179 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8678393413767825165} + m_Layer: 0 + m_Name: Skoda Kamiq + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8678393413767825165 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1557020077158108179} + 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: 0 + m_Children: + - {fileID: 5897071126227124009} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2325977463038497186 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5897071126227124009} + - component: {fileID: 7052644008610836356} + - component: {fileID: 1832160163738719301} + - component: {fileID: 5942392679462043245} + m_Layer: 0 + m_Name: Dummy + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5897071126227124009 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2325977463038497186} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.077, z: 0} + m_LocalScale: {x: 0.1793, y: 0.154, z: 0.4241} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8678393413767825165} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7052644008610836356 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2325977463038497186} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1832160163738719301 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2325977463038497186} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &5942392679462043245 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2325977463038497186} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} diff --git a/Assets/Temp/Skoda Kamiq.prefab.meta b/Assets/Temp/Skoda Kamiq.prefab.meta new file mode 100644 index 0000000..da6260e --- /dev/null +++ b/Assets/Temp/Skoda Kamiq.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7893264379c7b27449c0d5cd800de112 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Temp/Tesla Model Y.prefab b/Assets/Temp/Tesla Model Y.prefab new file mode 100644 index 0000000..9c42a45 --- /dev/null +++ b/Assets/Temp/Tesla Model Y.prefab @@ -0,0 +1,146 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2909664378286430652 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8179583403278623410} + - component: {fileID: 4213176841392790473} + - component: {fileID: 2544296818586992976} + - component: {fileID: 1169592420900285185} + m_Layer: 0 + m_Name: Dummy + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8179583403278623410 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2909664378286430652} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.0812, z: 0} + m_LocalScale: {x: 0.192, y: 0.1624, z: 0.479} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8656289922454706414} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4213176841392790473 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2909664378286430652} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &2544296818586992976 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2909664378286430652} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &1169592420900285185 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2909664378286430652} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &6059035821173914762 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8656289922454706414} + m_Layer: 0 + m_Name: Tesla Model Y + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8656289922454706414 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6059035821173914762} + 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: 0 + m_Children: + - {fileID: 8179583403278623410} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Temp/Tesla Model Y.prefab.meta b/Assets/Temp/Tesla Model Y.prefab.meta new file mode 100644 index 0000000..2ab0333 --- /dev/null +++ b/Assets/Temp/Tesla Model Y.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bf52a0f6f1d4ca94abedb85fa135a7cd +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Temp/Toyota Altis.prefab b/Assets/Temp/Toyota Altis.prefab new file mode 100644 index 0000000..227f435 --- /dev/null +++ b/Assets/Temp/Toyota Altis.prefab @@ -0,0 +1,146 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &369911992068276538 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3817041185149164022} + - component: {fileID: 7596283371511926204} + - component: {fileID: 3959783925517860865} + - component: {fileID: 2975129725945164033} + m_Layer: 0 + m_Name: Dummy + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3817041185149164022 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 369911992068276538} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.07175, z: 0} + m_LocalScale: {x: 0.178, y: 0.1435, z: 0.463} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 657832765405581052} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7596283371511926204 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 369911992068276538} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3959783925517860865 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 369911992068276538} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &2975129725945164033 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 369911992068276538} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &7937761055385602081 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 657832765405581052} + m_Layer: 0 + m_Name: Toyota Altis + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &657832765405581052 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7937761055385602081} + 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: 0 + m_Children: + - {fileID: 3817041185149164022} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Temp/Toyota Altis.prefab.meta b/Assets/Temp/Toyota Altis.prefab.meta new file mode 100644 index 0000000..9e07f7f --- /dev/null +++ b/Assets/Temp/Toyota Altis.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 692d27357d450044883464a7dc84418a +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: