feat(traffic): add TrafficLane script and vehicle prefabs

main
uc-hoba 3 weeks ago
parent 2ff87e9e15
commit 82ad671bf2
  1. 61
      Assets/Main.unity
  2. 8
      Assets/Scripts/Traffic.meta
  3. 264
      Assets/Scripts/Traffic/TrafficLane.cs
  4. 2
      Assets/Scripts/Traffic/TrafficLane.cs.meta
  5. 146
      Assets/Temp/Skoda Kamiq.prefab
  6. 7
      Assets/Temp/Skoda Kamiq.prefab.meta
  7. 146
      Assets/Temp/Tesla Model Y.prefab
  8. 7
      Assets/Temp/Tesla Model Y.prefab.meta
  9. 146
      Assets/Temp/Toyota Altis.prefab
  10. 7
      Assets/Temp/Toyota Altis.prefab.meta

@ -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}

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b9a186e998591ef46a976b06d5973e32
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,264 @@
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 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.
/// </summary>
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<Agent> 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
}

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: b9bb25da9b61d4849b3c17eff30adbf8

@ -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}

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 7893264379c7b27449c0d5cd800de112
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -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}

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: bf52a0f6f1d4ca94abedb85fa135a7cd
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -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}

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 692d27357d450044883464a7dc84418a
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Loading…
Cancel
Save