public override void OnInspectorGUI() { RoadNetwork roadNetwork = (RoadNetwork)target; if (GUILayout.Button("Build Random Road Network")) { roadNetwork.BuildRandom(); } jsonOutputPath = GUILayout.TextField(jsonOutputPath, 100); if (GUILayout.Button("Save to json file")) { string jsonOutput = roadNetwork.ToJson(true); File.WriteAllText(jsonOutputPath, jsonOutput); } if (GUILayout.Button("Load from json file")) { roadNetwork.FromJsonOverwrite(roadNetwork.inputJsonFile.text); } if (GUILayout.Button("Build Road Mesh")) { ProBuilderMesh roadMesh = Mesher.MeshRoadNetwork(roadNetwork); roadMesh.GetComponent <MeshRenderer>().sharedMaterial = roadNetwork.roadMaterial; roadMesh.transform.position = roadNetwork.transform.position; roadMesh.transform.rotation = roadNetwork.transform.rotation; } DrawDefaultInspector(); }
// Start is called before the first frame update void Start() { var roadNetwork = new RoadNetwork(); roadNetwork.AddVertex(new RoadVertex(0, 0)); roadNetwork.AddVertex(new RoadVertex(50, 0)); roadNetwork.AddVertex(new RoadVertex(100, 0)); roadNetwork.AddSegment(new RoadSegment(0, 1)); roadNetwork.AddSegment(new RoadSegment(1, 2)); Debug.Log(roadNetwork.ToJson(true)); }