private static void SetupVehicle() { EditorHelper.SetUndoGroup("Setup Vehicle"); GameObject selected = Selection.activeGameObject; //Create raycast anchor GameObject anchor = EditorHelper.CreateGameObject("Raycast Anchor", selected.transform); //Add AI scripts VehicleAI veAi = EditorHelper.AddComponent <VehicleAI>(selected); WheelDrive wheelDrive = EditorHelper.AddComponent <WheelDrive>(selected); TrafficSystem ts = GameObject.FindObjectOfType <TrafficSystem>(); //Configure the vehicle AI script with created objects anchor.transform.localPosition = Vector3.zero; anchor.transform.localRotation = Quaternion.Euler(Vector3.zero); veAi.raycastAnchor = anchor.transform; if (ts != null) { veAi.trafficSystem = ts; } //Create layer AutonomousVehicle if it doesn't exist EditorHelper.CreateLayer("AutonomousVehicle"); //Set the tag and layer name selected.tag = "AutonomousVehicle"; EditorHelper.SetLayer(selected, LayerMask.NameToLayer("AutonomousVehicle"), true); }
private static void CreateTraffic() { EditorHelper.SetUndoGroup("Create Traffic Objects"); GameObject mainGo = EditorHelper.CreateGameObject("Traffic System"); mainGo.transform.position = Vector3.zero; EditorHelper.AddComponent <TrafficSystem>(mainGo); GameObject segmentsGo = EditorHelper.CreateGameObject("Segments", mainGo.transform); segmentsGo.transform.position = Vector3.zero; GameObject intersectionsGo = EditorHelper.CreateGameObject("Intersections", mainGo.transform); intersectionsGo.transform.position = Vector3.zero; //Close Undo Operation Undo.CollapseUndoOperations(Undo.GetCurrentGroup()); }