mirror of
https://github.com/DerTyp7/traffic-unity.git
synced 2025-10-29 12:52:09 +01:00
nodes in street
This commit is contained in:
@@ -10,9 +10,10 @@ GameObject:
|
||||
m_Component:
|
||||
- component: {fileID: 487205225613997096}
|
||||
- component: {fileID: 487205225613997103}
|
||||
- component: {fileID: 3883359684032139225}
|
||||
m_Layer: 0
|
||||
m_Name: Node
|
||||
m_TagString: Untagged
|
||||
m_TagString: TrafficNode
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
@@ -25,7 +26,7 @@ Transform:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 487205225613997102}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -2.57, y: -3.07, z: 0}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
@@ -46,3 +47,20 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
nextTrafficNodes:
|
||||
- {fileID: 0}
|
||||
speed: 5
|
||||
--- !u!58 &3883359684032139225
|
||||
CircleCollider2D:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 487205225613997102}
|
||||
m_Enabled: 1
|
||||
m_Density: 1
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_UsedByEffector: 0
|
||||
m_UsedByComposite: 0
|
||||
m_Offset: {x: 0, y: 0}
|
||||
serializedVersion: 2
|
||||
m_Radius: 0.1
|
||||
|
||||
@@ -123,28 +123,15 @@ NavMeshSettings:
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &333016202
|
||||
--- !u!1 &333016202 stripped
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_CorrespondingSourceObject: {fileID: 487205225613997102, guid: def66282a1c498e4c906a02f6bbd214e, type: 3}
|
||||
m_PrefabInstance: {fileID: 487205225903872164}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 333016204}
|
||||
- component: {fileID: 333016203}
|
||||
m_Layer: 0
|
||||
m_Name: Node
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &333016203
|
||||
--- !u!114 &333016203 stripped
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_CorrespondingSourceObject: {fileID: 487205225613997103, guid: def66282a1c498e4c906a02f6bbd214e, type: 3}
|
||||
m_PrefabInstance: {fileID: 487205225903872164}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 333016202}
|
||||
m_Enabled: 1
|
||||
@@ -152,23 +139,6 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 23522bc3f6b64e9478f91a82fa664918, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
nextTrafficNodes:
|
||||
- {fileID: 0}
|
||||
--- !u!4 &333016204
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 333016202}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -2.57, y: -3.07, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &519420028
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -205,7 +175,7 @@ Camera:
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 2
|
||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
||||
m_BackGroundColor: {r: 0.08410465, g: 0.088084914, b: 0.09433961, a: 0}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
@@ -226,7 +196,7 @@ Camera:
|
||||
m_Depth: -1
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_Bits: 2147483647
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
@@ -253,6 +223,37 @@ Transform:
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &927753397
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 927753398}
|
||||
m_Layer: 0
|
||||
m_Name: pivot
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &927753398
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 927753397}
|
||||
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: []
|
||||
m_Father: {fileID: 1549916943}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1432161433
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -285,7 +286,6 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
nextNode: {fileID: 0}
|
||||
currentTrafficNode: {fileID: 333016203}
|
||||
speed: 3
|
||||
--- !u!212 &1432161435
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -353,6 +353,105 @@ Transform:
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1549916940
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1549916943}
|
||||
- component: {fileID: 1549916942}
|
||||
- component: {fileID: 1549916941}
|
||||
m_Layer: 0
|
||||
m_Name: Street
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &1549916941
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1549916940}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b794f37801ab66d4496dd16ee2294dee, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
pivotPoint: {fileID: 927753397}
|
||||
--- !u!212 &1549916942
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1549916940}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 0
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 10754, 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: 0
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3}
|
||||
m_Color: {r: 0.33597365, g: 0.35987362, b: 0.4716981, a: 1}
|
||||
m_FlipX: 0
|
||||
m_FlipY: 0
|
||||
m_DrawMode: 0
|
||||
m_Size: {x: 1, y: 1}
|
||||
m_AdaptiveModeThreshold: 0.5
|
||||
m_SpriteTileMode: 0
|
||||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!4 &1549916943
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1549916940}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -0.4058, y: -0.20593682, z: 0}
|
||||
m_LocalScale: {x: 18.39, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children:
|
||||
- {fileID: 927753398}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 4
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1992284311
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -363,9 +462,10 @@ GameObject:
|
||||
m_Component:
|
||||
- component: {fileID: 1992284313}
|
||||
- component: {fileID: 1992284312}
|
||||
- component: {fileID: 1992284314}
|
||||
m_Layer: 0
|
||||
m_Name: GameManager
|
||||
m_TagString: Untagged
|
||||
m_TagString: GameManager
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
@@ -382,8 +482,8 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 4da8003edf1936e4b9a1af5a937c1074, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
nodeObject: {fileID: 333016202}
|
||||
prevPlacedNode: {fileID: 333016203}
|
||||
nodeObject: {fileID: 487205225613997102, guid: def66282a1c498e4c906a02f6bbd214e, type: 3}
|
||||
selectedPlacedNode: {fileID: 0}
|
||||
--- !u!4 &1992284313
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -399,3 +499,77 @@ Transform:
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 3
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1992284314
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1992284311}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9bf91a6c0d2139a4dba9954918414857, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
nodePrefab: {fileID: 333016202}
|
||||
--- !u!1001 &487205225903872164
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 487205225613997096, guid: def66282a1c498e4c906a02f6bbd214e, type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 2
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 487205225613997096, guid: def66282a1c498e4c906a02f6bbd214e, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: -2.57
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 487205225613997096, guid: def66282a1c498e4c906a02f6bbd214e, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: -3.07
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 487205225613997096, guid: def66282a1c498e4c906a02f6bbd214e, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 487205225613997096, guid: def66282a1c498e4c906a02f6bbd214e, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 487205225613997096, guid: def66282a1c498e4c906a02f6bbd214e, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 487205225613997096, guid: def66282a1c498e4c906a02f6bbd214e, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 487205225613997096, guid: def66282a1c498e4c906a02f6bbd214e, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 487205225613997096, guid: def66282a1c498e4c906a02f6bbd214e, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 487205225613997096, guid: def66282a1c498e4c906a02f6bbd214e, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 487205225613997096, guid: def66282a1c498e4c906a02f6bbd214e, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 487205225613997102, guid: def66282a1c498e4c906a02f6bbd214e, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Node
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 487205225613997103, guid: def66282a1c498e4c906a02f6bbd214e, type: 3}
|
||||
propertyPath: nextTrafficNodes.Array.data[0]
|
||||
value:
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: def66282a1c498e4c906a02f6bbd214e, type: 3}
|
||||
|
||||
@@ -6,23 +6,38 @@ public class NodePlacer : MonoBehaviour
|
||||
private GameObject nodeObject;
|
||||
|
||||
[SerializeField]
|
||||
private TrafficNode prevPlacedNode;
|
||||
private TrafficNode selectedPlacedNode;
|
||||
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (Input.GetKeyDown(KeyCode.N))
|
||||
{
|
||||
Debug.Log("H2213123IT");
|
||||
RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
|
||||
|
||||
if (hit.collider != null)
|
||||
{
|
||||
Debug.Log("HIT");
|
||||
selectedPlacedNode = hit.collider.transform.gameObject.GetComponent<TrafficNode>();
|
||||
}
|
||||
else
|
||||
{
|
||||
selectedPlacedNode = null;
|
||||
}
|
||||
}
|
||||
|
||||
if (Input.GetKeyDown(KeyCode.B))
|
||||
{
|
||||
Vector3 newPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
|
||||
newPosition.z = 0;
|
||||
TrafficNode newNode = Instantiate(nodeObject, newPosition, Quaternion.identity).GetComponent<TrafficNode>();
|
||||
|
||||
if (prevPlacedNode != null)
|
||||
if (selectedPlacedNode != null)
|
||||
{
|
||||
prevPlacedNode.AddNextNode(newNode);
|
||||
selectedPlacedNode.AddNextNode(newNode);
|
||||
|
||||
}
|
||||
prevPlacedNode = newNode;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
13
Assets/Scripts/PrefabDictionary.cs
Normal file
13
Assets/Scripts/PrefabDictionary.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using UnityEngine;
|
||||
public class PrefabDictionary : MonoBehaviour
|
||||
{
|
||||
public static PrefabDictionary instance;
|
||||
|
||||
public GameObject nodePrefab;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
if (instance == null)
|
||||
instance = this;
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/PrefabDictionary.cs.meta
Normal file
11
Assets/Scripts/PrefabDictionary.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9bf91a6c0d2139a4dba9954918414857
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
76
Assets/Scripts/TrafficSystem/Street.cs
Normal file
76
Assets/Scripts/TrafficSystem/Street.cs
Normal file
@@ -0,0 +1,76 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class Street : MonoBehaviour
|
||||
{
|
||||
private List<TrafficNode> nodes = new List<TrafficNode>();
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
nodes.Add(Instantiate(PrefabDictionary.instance.nodePrefab, transform).GetComponent<TrafficNode>());
|
||||
nodes.Add(Instantiate(PrefabDictionary.instance.nodePrefab, transform).GetComponent<TrafficNode>());
|
||||
nodes[0].transform.localPosition = new Vector3(-0.5f, 0, 0);
|
||||
nodes[1].transform.localPosition = new Vector3(0.5f, 0, 0);
|
||||
|
||||
nodes[0].AddNextNode(nodes[1]);
|
||||
|
||||
CreateNode(new Vector3(0, 0, 0));
|
||||
CreateNode(new Vector3(-0.25f, 0, 0));
|
||||
RemoveNode(CreateNode(new Vector3(0.33f, 0, 0)));
|
||||
CreateNode(new Vector3(-0.12f, 0, 0));
|
||||
}
|
||||
|
||||
private TrafficNode[] getNearestNodes(float positionX)
|
||||
{
|
||||
TrafficNode[] nearestNodes = new TrafficNode[2];
|
||||
nearestNodes[0] = nodes[0];
|
||||
nearestNodes[1] = nodes[1];
|
||||
foreach (TrafficNode node in nodes)
|
||||
{
|
||||
float distance = Mathf.Abs(node.transform.localPosition.x - positionX);
|
||||
|
||||
if (distance < Mathf.Abs(nearestNodes[0].transform.localPosition.x - positionX) && node.transform.localPosition.x < positionX)
|
||||
{
|
||||
nearestNodes[0] = node;
|
||||
}
|
||||
|
||||
if (distance < Mathf.Abs(nearestNodes[1].transform.localPosition.x - positionX) && node.transform.localPosition.x > positionX)
|
||||
{
|
||||
nearestNodes[1] = node;
|
||||
}
|
||||
}
|
||||
return nearestNodes;
|
||||
}
|
||||
|
||||
public TrafficNode CreateNode(Vector3 localPosition)
|
||||
{
|
||||
TrafficNode[] nearestNodes = getNearestNodes(localPosition.x);
|
||||
|
||||
TrafficNode newNode = Instantiate(PrefabDictionary.instance.nodePrefab, transform).GetComponent<TrafficNode>();
|
||||
newNode.transform.localPosition = localPosition;
|
||||
|
||||
nearestNodes[0].RemoveNextNode(nearestNodes[1]);
|
||||
nearestNodes[0].AddNextNode(newNode);
|
||||
newNode.AddNextNode(nearestNodes[1]);
|
||||
nodes.Insert(nodes.IndexOf(nearestNodes[1]), newNode);
|
||||
return newNode;
|
||||
}
|
||||
|
||||
public void RemoveNode(TrafficNode node)
|
||||
{
|
||||
TrafficNode[] nearestNodes = getNearestNodes(node.transform.localPosition.x);
|
||||
|
||||
nearestNodes[0].RemoveNextNode(node);
|
||||
|
||||
foreach (TrafficNode n in node.GetNextTrafficNodes())
|
||||
{
|
||||
if (nodes.Contains(n))
|
||||
{
|
||||
nearestNodes[0].AddNextNode(n);
|
||||
}
|
||||
}
|
||||
|
||||
nodes.Remove(node);
|
||||
Destroy(node.gameObject);
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/TrafficSystem/Street.cs.meta
Normal file
11
Assets/Scripts/TrafficSystem/Street.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b794f37801ab66d4496dd16ee2294dee
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -4,14 +4,24 @@ using UnityEngine;
|
||||
public class TrafficNode : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
private List<TrafficNode> nextTrafficNodes;
|
||||
private List<TrafficNode> nextTrafficNodes = new List<TrafficNode>();
|
||||
|
||||
[SerializeField]
|
||||
private float speed = 5.0f;
|
||||
|
||||
public float GetSpeed() { return speed; }
|
||||
public List<TrafficNode> GetNextTrafficNodes() { return nextTrafficNodes; }
|
||||
|
||||
public void AddNextNode(TrafficNode node)
|
||||
public void AddNextNode(TrafficNode newNode)
|
||||
{
|
||||
nextTrafficNodes.Add(node);
|
||||
nextTrafficNodes.Add(newNode);
|
||||
}
|
||||
|
||||
public void RemoveNextNode(TrafficNode node)
|
||||
{
|
||||
nextTrafficNodes.Remove(node);
|
||||
}
|
||||
|
||||
private void OnDrawGizmos()
|
||||
{
|
||||
Gizmos.color = Color.green;
|
||||
|
||||
@@ -8,8 +8,7 @@ public class TrafficParticipant : MonoBehaviour
|
||||
[SerializeField]
|
||||
private TrafficNode currentTrafficNode;
|
||||
|
||||
[SerializeField]
|
||||
private float speed = 5f;
|
||||
private float speed = 1f;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
@@ -20,6 +19,7 @@ public class TrafficParticipant : MonoBehaviour
|
||||
}
|
||||
private void Update()
|
||||
{
|
||||
speed = currentTrafficNode.GetSpeed();
|
||||
if (nextNode != null)
|
||||
{
|
||||
transform.position = Vector3.MoveTowards(transform.position, nextNode.transform.position, speed * Time.deltaTime); if (transform.position == nextNode.transform.position)
|
||||
@@ -32,9 +32,6 @@ public class TrafficParticipant : MonoBehaviour
|
||||
{
|
||||
ChooseNextNode();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void Arrived()
|
||||
@@ -46,7 +43,7 @@ public class TrafficParticipant : MonoBehaviour
|
||||
|
||||
private void ChooseNextNode()
|
||||
{
|
||||
Debug.Log("Choose next node");
|
||||
//Debug.Log("Choose next node");
|
||||
if (nextNode == null)
|
||||
{
|
||||
nextNode = currentTrafficNode.GetNextTrafficNodes()[Random.Range(0, (currentTrafficNode.GetNextTrafficNodes().Count))];
|
||||
|
||||
Reference in New Issue
Block a user