private void Update() { if (PlayerHere && gm.playState == _GM_Script.PlayState.PLAYER) { if (Input.GetKeyDown(KeyCode.E)) { if (scene.SceneIndex != 5) { GetOnElevator(); } else { elevator = GameObject.Find("Elevator").GetComponent <ElevatorScript>(); elevator.GetCurrentFloor(); elevator.ExitToFloor(); } } else if (Input.GetKeyDown(KeyCode.JoystickButton1)) { if (scene.SceneIndex != 5) { GetOnElevator(); } else { elevator = GameObject.Find("Elevator").GetComponent <ElevatorScript>(); elevator.GetCurrentFloor(); elevator.ExitToFloor(); } } } }
void Start() { es = elevator.GetComponent <ElevatorScript>(); gc = GameObject.Find("GameController").GetComponent <GameController>(); if (gc.fallEnabled) { ToggleFallColliders(true); } else { ToggleFallColliders(false); } foreach (GameObject plank in planks) { plank.GetComponent <PositionCalibration>().LoadPosition(); } //InstantiateTorch(); //RandomizeSpinnerSymbols(); //GameObject.Find("Clue Generator").GetComponent<ClueGenerator>().AssignClues(correctSpinnerSymbols[0], correctSpinnerSymbols[1], correctSpinnerSymbols[2]); audios = GetComponents <AudioSource>(); ambientSound = audios[0]; spinnerSound = audios[1]; }
//finds the other elevator access points private void FindOtherElevators() { //gridPos.X //10 is subject to change TileScript _thisTile = LevelManager.Instance.Tiles [gridPos]; for (int _y = 0; _y < 10; _y++) { Point _point = new Point(gridPos.X, _y, gridPos.Z); if (!LevelManager.Instance.InBounds(_point)) { break; } TileScript _tile = LevelManager.Instance.Tiles [_point]; if (_tile.HasElevator) { accessDict.Add(_y, _tile); accessIndexList.Add(_y); if (_y != gridPos.Y) { ElevatorScript _elevator = _tile.transform.GetChild(6).GetChild(0).GetComponent <ElevatorScript> (); _elevator.accessDict.Add(_thisTile.GridPosition.Y, _thisTile); _elevator.accessIndexList.Add(_thisTile.GridPosition.Y); //Debug.Log (y); } } } }
public CarClass(GameObject platform, ElevatorScript wrapper, Transform spawn, Transform destintion) { this.elevator = wrapper; this.platform = (GameObject)Instantiate(elevator.platform); this.spawn = spawn; this.destination = destintion; platform.transform.position = spawn.transform.position; }
void Start() { elevatorScript = FindObjectOfType <ElevatorScript>(); buttonRenderer = gameObject.GetComponent <Renderer>(); buttonRenderer.material = darkMaterial; buttonLight = GetComponent <Light>(); buttonLight.enabled = true; }
/* Takes care of closing other elevators at the floor, * when an elevator wants to open its door */ public void closeAllElevatorsAtFloor(GameObject elToOpen, int floorNr) { foreach (Transform elevator in elevators) { ElevatorScript elScript = elevator.GetComponent <ElevatorScript> (); if (elScript.currFloor == floorNr && elScript.destFloor == floorNr && !elScript.movingUp && !elScript.movingDown) { elScript.closeDoor(); } } }
/* Takes care of opening the elevator that just arrived if there is * no other elevator at the floor */ public void elevatorArrived(GameObject elevator) { ElevatorScript e = elevator.GetComponent <ElevatorScript> (); Debug.Log("Elevetor arrived at floor number: " + e.currFloor); if (getOpenElevatorAtFloor(e.currFloor) == null) { e.openDoor(); } // letOutMonsters is triggered by open door animation // e.letOutMonsters (); }
/* Find the elevator that is open at requested floor, return null if none. */ public Transform getOpenElevatorAtFloor(int floorNr) { foreach (Transform elevator in elevators) { ElevatorScript e = elevator.gameObject.GetComponent <ElevatorScript>(); if (e.currFloor == floorNr && e.destFloor == floorNr && !e.movingUp && !e.movingDown && e.doorOpen) { return(elevator); } } return(null); }
private void Awake() { personQueue = new Queue <GameObject>(); elevatorScript = elevatorObj.GetComponent <ElevatorScript>(); eleTransition = new GameObjectTransition(elevatorObj, elevatorObj.transform.position, elevatorScript.eleSpeed); travelledUp = new Queue <GameObject> [elevatorScript.numFloors]; for (int i = 0; i < elevatorScript.numFloors; i++) { travelledUp[i] = new Queue <GameObject>(); } personTransitionList = new List <GameObjectTransition>(); eventList = CSVReader.Read("DataCSVModified"); sizeFloor = 2 * yLimit / numFloors; }
private void DoElevatorMenu() { //Debug.Log ("ele- ele- elevator!"); isOccupied = true; usingElevator = true; elevatorMenu.SetActive(true); //give the menu the elevator reference ElevatorScript _elevator = elevator.GetComponent <ElevatorScript> (); elevatorMenu.transform.GetChild(1).GetComponent <ElevatorBtnPanelScr> ().SetBtns(_elevator); }
/* * void Start () { * for (int i = 0; i < btnArr.Length; i++) { * btnArr [i] = transform.GetChild (i).gameObject; * } * } */ public void SetBtns(ElevatorScript _elevator) { //Debug.Log ("elevatro"); for (int i = 0; i < btnArr.Length; i++) { btnArr [i].gameObject.SetActive(false); } List <int> _levels = _elevator.AccessIndexList; for (int i = 0; i < _levels.Count; i++) { btnArr [_levels [i] - 1].gameObject.SetActive(true); } }
/* Takes care of opening another elevator if there is one at the floor * that the elevator is leaving from. */ public void elevatorLeftFloor(int floorNr) { if (getOpenElevatorAtFloor(floorNr) == null) { foreach (Transform elevator in elevators) { ElevatorScript e = elevator.gameObject.GetComponent <ElevatorScript>(); if (e.currFloor == floorNr && e.destFloor == floorNr && !e.movingUp && !e.movingDown && !e.doorOpen) { e.requestOpenDoor(); break; // e.openDoor(); // return; } } } }
public override void OnInspectorGUI() { ElevatorScript scr = (ElevatorScript)target; Rigidbody2D rb = scr.GetComponent <Rigidbody2D>(); scr.rb = rb; base.OnInspectorGUI(); if (scr.usedButton == null && !scr.alwaysActive) { EditorGUILayout.HelpBox("No button is assigned! Assign a button in the scene or enable Always Active.", MessageType.Error); } else if (!scr.usedButton.GetComponent <ButtonScript>() && !scr.alwaysActive) { EditorGUILayout.HelpBox("The 'Used Button' does not have a ButtonScript.cs component attached! The elevator/door will not function.", MessageType.Error); } GUILayout.Space(10); EditorGUILayout.LabelField("Set Platform Positions", EditorStyles.boldLabel); EditorGUILayout.LabelField("Sets the target move position for the platform. Position on scene start will be its starting position.", EditorStyles.miniLabel); if (!Application.isPlaying) { startPos.vector2Value = scr.rb.position; if (GUILayout.Button("Set Target Position")) { endPos.vector2Value = scr.rb.position; } } EditorGUILayout.LabelField("Start Position: " + scr.PlatStart); EditorGUILayout.LabelField("Target Position: " + scr.PlatEnd); serializedObject.ApplyModifiedProperties(); }
// Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Escape) && !introFinished && !skipped) { status = 3; skipped = true; briefMusic.Stop(); images[0].enabled = false; images[1].enabled = false; background.enabled = false; images[2].enabled = false; } switch (status) { case 0: timer -= Time.deltaTime; Camera.SetupCurrent(introCamera); if (timer < 0) { status = 1; images[0].enabled = false; images[1].enabled = true; timer = imageTime; } break; case 1: timer -= Time.deltaTime; if (timer < 0) { status = 2; images[1].enabled = false; images[2].enabled = true; briefMusic.Play(); } break; case 2: float t = briefMusic.time / briefMusic.clip.length; Debug.Log(t + " " + Time.time); briefRt.position = Vector3.Lerp(textInitial, textFinal, t); if (!briefMusic.isPlaying) { background.enabled = false; images[2].enabled = false; status = 3; } break; case 3: if (!ElevatorScript.opening && !ElevatorScript.opened) { ElevatorScript.open(); } if (ElevatorScript.opened) { status = 4; } break; case 4: imBack.Play(); status = 5; break; case 5: introCamera.transform.Translate(introCamera.transform.forward * cameraSpeed * Time.deltaTime); if (!imBack.isPlaying) { status = 6; startCameraMoveTime = Time.time; initialIntroCameraPos = Camera.current.transform.position; player.animController.SetBool("walking", true); } break; case 6: float f = (Time.time - startCameraMoveTime) / cameraPanDuration; Camera.current.transform.position = Vector3.Slerp(initialIntroCameraPos, mainCamera.transform.position, f); player.gameObject.transform.position += player.gameObject.transform.forward * 3 * Time.deltaTime; Camera.current.transform.LookAt(player.transform.position); if (f > 0.95) { status = 7; } break; case 7: ElevatorScript.close(); player.animController.SetBool("walking", false); status = 8; codecSound.Play(); break; case 8: if (!codecSound.isPlaying) { status = 9; } break; case 9: codecOverlay.SetActive(true); textImages[textImagePointer].gameObject.SetActive(true); textImages[textImagePointer].enabled = true; status = 10; break; case 10: if (Input.anyKeyDown) { textImages[textImagePointer].gameObject.SetActive(false); textImages[textImagePointer++].enabled = false; if (textImagePointer == textImages.Length) { status = 1000; break; } textImages[textImagePointer].gameObject.SetActive(true); textImages[textImagePointer].enabled = true; } break; case 1000: foreach (Image i in images) { i.enabled = false; } foreach (Image i in textImages) { i.enabled = false; } background.enabled = false; codecOverlay.SetActive(false); introFinished = true; introCamera.enabled = false; MusicScript.start = true; HUD.SetActive(true); break; } }
private void Update() { if (level == 1) { //Gate1 if (stateButton1 || stateButton2) { if (gate1_moved < 20) { Gate1.transform.Translate(0, 0.15f, 0); gate1_moved++; } } else { if (gate1_moved > 0) { Gate1.transform.Translate(0, -0.15f, 0); gate1_moved--; } } //Gate2 if (stateButton3) { if (gate2_moved < 12) { Gate2.transform.Translate(0, 0.15f, 0); gate2_moved++; } } else { if (gate2_moved > 0) { Gate2.transform.Translate(0, -0.15f, 0); gate2_moved--; } } //Gate3 if (stateButton4) { if (gate3_moved < 10) { Gate3.transform.localScale = Gate3.transform.localScale - new Vector3(0, 0.2f, 0); Gate3.transform.Translate(0, 0.1f, 0); gate3_moved++; } } else { if (gate3_moved > 0) { Gate3.transform.Translate(0, -0.1f, 0); Gate3.transform.localScale = Gate3.transform.localScale + new Vector3(0, 0.2f, 0); gate3_moved--; } } //Platform //Upwards Movement if (stateButton5 && platform_moved_right == 0) { if (platform_moved_up < 59) { Platform.transform.Translate(0, 0.05f, 0); if (MovingPlatformScript.getRobotCollision) { Robo.transform.Translate(0, 0.05f, 0); } if (MovingPlatformScript.getProfCollision) { Prof.transform.Translate(0, 0.05f, 0); } platform_moved_up++; } } else { if (platform_moved_up > 0) { Platform.transform.Translate(0, -0.05f, 0); if (MovingPlatformScript.getRobotCollision) { Robo.transform.Translate(0, -0.05f, 0); } if (MovingPlatformScript.getProfCollision) { Prof.transform.Translate(0, -0.05f, 0); } platform_moved_up--; } } //Sideways Movement if (stateButton6 && platform_moved_up == 0) { if (platform_moved_right < 90) { Platform.transform.Translate(0.05f, 0, 0); if (MovingPlatformScript.getRobotCollision) { Robo.transform.Translate(0.05f, 0, 0); } if (MovingPlatformScript.getProfCollision) { Prof.transform.Translate(0.05f, 0, 0); } platform_moved_right++; } } else { if (platform_moved_right > 0) { Platform.transform.Translate(-0.05f, 0, 0); if (MovingPlatformScript.getRobotCollision) { Robo.transform.Translate(-0.05f, 0, 0); } if (MovingPlatformScript.getProfCollision) { Prof.transform.Translate(-0.05f, 0, 0); } platform_moved_right--; } } //Gate4 if (stateButtonPerma1) { if (gate4_moved < 10) { Gate4.transform.Translate(0, 0.2f, 0); gate4_moved++; } } //Elevator if (stateButtonMulti1_both) { ElevatorScript.setActive(); } } else if (level == 2) { //Elevator if (stateButtonMulti2_all) { ElevatorScript.setActive(); } //Ramp if (stateButton1) { if (rampMovedUp < 40) { rampMovedUp++; Ramp.transform.eulerAngles = new Vector3(0, 0, (float)rampMovedUp / 4 * 3); } } else { if (rampMovedUp > 0) { rampMovedUp--; Ramp.transform.eulerAngles = new Vector3(0, 0, (float)rampMovedUp / 4 * 3); } } } }
void FixedUpdate() { if (skeleton != null) { List <RigidNode_Base> nodes = skeleton.ListAllNodes(); unityPacket.OutputStatePacket packet = udp.GetLastPacket(); DriveJoints.UpdateAllMotors(skeleton, packet.dio); //TODO put this code in drivejoints, figure out nullreference problem with cDriver foreach (RigidNode_Base node in nodes) { UnityRigidNode uNode = (UnityRigidNode)node; if (uNode.GetSkeletalJoint() != null) { if (uNode.GetSkeletalJoint().GetJointType() == SkeletalJointType.LINEAR && uNode.GetSkeletalJoint().cDriver != null && uNode.GetSkeletalJoint().cDriver.GetDriveType() == JointDriverType.ELEVATOR) { ElevatorScript es = uNode.unityObject.GetComponent <ElevatorScript>(); float[] pwm = packet.dio[0].pwmValues; if (Input.anyKey) { pwm[3] += (Input.GetKey(KeyCode.Alpha1) ? 1f : 0f); pwm[3] += (Input.GetKey(KeyCode.Alpha2) ? -1f : 0f); } if (es != null) { for (int i = 0; i < 8; i++) { if (uNode.GetSkeletalJoint().cDriver.portA == i) { es.currentTorque = pwm[i] * 2; } } } } } } DriveJoints.UpdateSolenoids(skeleton, packet.solenoid); #region HANDLE_SENSORS InputStatePacket sensorPacket = new InputStatePacket(); foreach (RigidNode_Base node in nodes) { UnityRigidNode uNode = (UnityRigidNode)node; if (node.GetSkeletalJoint() == null) { continue; } foreach (RobotSensor sensor in node.GetSkeletalJoint().attachedSensors) { int aiValue; //int between 0 and 1024, typically InputStatePacket.DigitalState dioValue; switch (sensor.type) { case RobotSensorType.POTENTIOMETER: if (node.GetSkeletalJoint() != null && node.GetSkeletalJoint() is RotationalJoint_Base) { float angle = DriveJoints.GetAngleBetweenChildAndParent(uNode) + ((RotationalJoint_Base)uNode.GetSkeletalJoint()).currentAngularPosition; sensorPacket.ai[sensor.module - 1].analogValues[sensor.port - 1] = (int)sensor.equation.Evaluate(angle); } break; case RobotSensorType.ENCODER: throw new NotImplementedException(); break; case RobotSensorType.LIMIT: throw new NotImplementedException(); break; case RobotSensorType.GYRO: throw new NotImplementedException(); break; case RobotSensorType.MAGNETOMETER: throw new NotImplementedException(); break; case RobotSensorType.ACCELEROMETER: throw new NotImplementedException(); break; case RobotSensorType.LIMIT_HALL: throw new NotImplementedException(); break; } } } udp.WritePacket(sensorPacket); #endregion } }
public ElevatorMovesDown(ElevatorScript rayElevator) { this.rayElevator = rayElevator; }
// Use this for initialization void Start() { GameObject go = GameObject.FindGameObjectWithTag("elevator"); elevatorScript = go.GetComponent <ElevatorScript>(); }
void Start() { shirtcolor = Random.Range(0, 3); jumping = false; jumpcounter = 0; timer = 0; rend = GetComponent <SpriteRenderer>(); speed *= 1 + ((Random.value - 0.5f) / 5); switch (shirtcolor) { case 0: rend.sprite = red; break; case 1: rend.sprite = blue; break; case 2: rend.sprite = green; break; default: print("No shirt color chosen. This shouldn't be possible."); break; } ypos = gameObject.transform.position.y; if (ypos == 21) { currentFloor = 5; } else if (ypos == 10.5) { currentFloor = 4; } else if (ypos == 0) { currentFloor = 3; } else if (ypos == -10.5) { currentFloor = 2; } else if (ypos == -21) { currentFloor = 1; } else { print("FFFFFUUUUU"); } do { destination = Random.Range(1, 6); } while (destination == currentFloor); destText.text = destination.ToString(); thinkbubble = gameObject.transform.GetChild(0); thinkbubble.transform.Translate(Vector3.forward * Random.value); // Assign elevator if (gameObject.transform.position.x > 0) { elevator = GameObject.Find("elevator2"); } else { elevator = GameObject.Find("elevator1"); } elevscript = elevator.GetComponent <ElevatorScript> (); gameController = GameObject.Find("GameController"); gamescript = gameController.GetComponent <GameController> (); elevatorSeat = 4 + Random.Range(0, 3); bubble_exist = true; }
public ElevatorMoveUp(ElevatorScript rayElevator) { this.rayElevator = rayElevator; }
void FixedUpdate() { if (skeleton != null) { List <RigidNode_Base> nodes = skeleton.ListAllNodes(); unityPacket.OutputStatePacket packet = udp.GetLastPacket(); //stops robot while menu is open if (gui.guiVisible) { mainNode.rigidbody.isKinematic = true; } else { mainNode.rigidbody.isKinematic = false; } DriveJoints.UpdateAllMotors(skeleton, packet.dio); //TODO put this code in drivejoints, figure out nullreference problem with cDriver foreach (RigidNode_Base node in nodes) { UnityRigidNode uNode = (UnityRigidNode)node; if (uNode.GetSkeletalJoint() != null) { if (uNode.GetSkeletalJoint().GetJointType() == SkeletalJointType.LINEAR && uNode.GetSkeletalJoint().cDriver != null && uNode.GetSkeletalJoint().cDriver.GetDriveType() == JointDriverType.ELEVATOR) { ElevatorScript es = uNode.unityObject.GetComponent <ElevatorScript>(); float[] pwm = packet.dio[0].pwmValues; if (Input.anyKey) { pwm[3] += (Input.GetKey(KeyCode.Alpha1) ? 1f : 0f); pwm[3] += (Input.GetKey(KeyCode.Alpha2) ? -1f : 0f); } if (es != null) { for (int i = 0; i < 8; i++) { if (uNode.GetSkeletalJoint().cDriver.portA == i) { es.currentTorque = pwm[i] * 2; } } } } } } DriveJoints.UpdateSolenoids(skeleton, packet.solenoid); #region HANDLE_SENSORS InputStatePacket sensorPacket = new InputStatePacket(); foreach (RigidNode_Base node in nodes) { UnityRigidNode uNode = (UnityRigidNode)node; if (node.GetSkeletalJoint() == null) { continue; } foreach (RobotSensor sensor in node.GetSkeletalJoint().attachedSensors) { int aiValue; //int between 0 and 1024, typically InputStatePacket.DigitalState dioValue; switch (sensor.type) { case RobotSensorType.POTENTIOMETER: if (node.GetSkeletalJoint() != null && node.GetSkeletalJoint() is RotationalJoint_Base) { float angle = DriveJoints.GetAngleBetweenChildAndParent(uNode) + ((RotationalJoint_Base)uNode.GetSkeletalJoint()).currentAngularPosition; sensorPacket.ai [sensor.module - 1].analogValues [sensor.port - 1] = (int)sensor.equation.Evaluate(angle); } break; case RobotSensorType.ENCODER: throw new NotImplementedException(); break; case RobotSensorType.LIMIT: throw new NotImplementedException(); break; case RobotSensorType.GYRO: throw new NotImplementedException(); break; case RobotSensorType.MAGNETOMETER: throw new NotImplementedException(); break; case RobotSensorType.ACCELEROMETER: throw new NotImplementedException(); break; case RobotSensorType.LIMIT_HALL: throw new NotImplementedException(); break; } } } udp.WritePacket(sensorPacket); #endregion //calculates stats of robot if (mainNode != null) { speed = (float)Math.Abs(mainNode.rigidbody.velocity.magnitude); weight = (float)Math.Round(mainNode.rigidbody.mass * 2.20462 * 860, 1); angvelo = (float)Math.Abs(mainNode.rigidbody.angularVelocity.magnitude); acceleration = (float)(mainNode.rigidbody.velocity.magnitude - oldSpeed) / Time.deltaTime; oldSpeed = speed; if (!time_stop) { time += Time.deltaTime; } } } }
public void IsElevatorNear(bool _isNear, ElevatorScript _elevator) { elevatorIsNear = _isNear; elevator = _elevator; }
public void loadGraph() { //Destroy all nodes //read file string line; using (StreamReader sr = new StreamReader(path)) { line = sr.ReadToEnd(); } JsonReader reader = new JsonReader(); var output = reader.Read <Dictionary <string, object> >(line); Dictionary <string, object>[] jnode = (Dictionary <string, object>[])output ["nodes"]; //create nodes print("CREATE NODES"); foreach (Dictionary <string, object> jNode in jnode) { GameObject node = (GameObject)Instantiate(nodeTemp); node.name = jNode["id"].ToString(); NodeScript scpt = node.GetComponent <NodeScript>(); scpt.Id = jNode["id"].ToString(); scpt.occupants = (int)jNode["arrivals"]; scpt.goalState = (bool)jNode["isGoal"]; Dictionary <string, object> pos = (Dictionary <string, object>)jNode["position"]; node.transform.position = new Vector3(float.Parse(pos["x"].ToString()), float.Parse(pos["y"].ToString()), float.Parse(pos["z"].ToString())); } print("CREATE EDGES"); //Create edges foreach (Dictionary <string, object> jNode in jnode) { try { foreach (Dictionary <string, object> jEdge in (Dictionary <string, object>[])jNode["edges"]) { GameObject start = GameObject.Find(jEdge["start"].ToString()); GameObject end = GameObject.Find(jEdge["end"].ToString()); GameObject edge = (GameObject)Instantiate(edgeTemp, start.transform.position, start.transform.rotation); edge.name = jEdge ["start"].ToString() + "->" + jEdge ["end"].ToString(); EdgeScript edgeScpt = edge.GetComponent <EdgeScript> (); edgeScpt.flowRate = (int)jEdge ["flowRate"]; edgeScpt.cost = (int)jEdge ["cost"]; edgeScpt.start = start; edgeScpt.end = end; edge.transform.parent = start.transform; } } catch (InvalidCastException e) { } } //Create elevators try { foreach (Dictionary <string, object> jElevator in (Dictionary <string, object>[])output ["elevators"]) { //instantiate new elevator GameObject elevator = (GameObject)Instantiate(elevatorTemp); elevator.name = jElevator["id"].ToString() + "elevator"; ElevatorScript scpt = elevator.GetComponent <ElevatorScript>(); Dictionary <string, object>[] jNodes = (Dictionary <string, object>[])jElevator["nodes"]; GameObject[] nodes = new GameObject[jNodes.Length]; //Create new Edge array int index = 0; foreach (Dictionary <string, object> node in jNodes) { nodes[index] = GameObject.Find(node["id"].ToString()); index++; } scpt.Id = jElevator["id"].ToString(); scpt.nodes = nodes; scpt.initialLocation = jElevator["initialLocation"].ToString(); //Find edges by name } } catch (InvalidCastException e) { } }
public void SaveGraph() { JSONObject json = JSONObject.obj; JSONObject nodes = JSONObject.arr; GameObject[] Nodes = GameObject.FindGameObjectsWithTag("Node"); print(Nodes.Length); foreach (GameObject node in Nodes) { NodeScript scptNode = node.GetComponent <NodeScript>(); JSONObject jNode = JSONObject.obj; jNode.AddField("id", scptNode.Id); JSONObject position = JSONObject.obj; position.AddField("x", node.transform.position.x); position.AddField("y", node.transform.position.y); position.AddField("z", node.transform.position.z); jNode.AddField("position", position); jNode.AddField("arrivals", scptNode.occupants); jNode.AddField("isGoal", scptNode.goalState); //EDGES JSONObject jEdges = JSONObject.arr; foreach (EdgeScript edge in scptNode.GetComponentsInChildren <EdgeScript>()) { //EdgeScript scptEdge = edge.GetComponent<EdgeScript>(); NodeScript A = edge.start.GetComponent <NodeScript>(); NodeScript B = edge.end.GetComponent <NodeScript>(); JSONObject jEdge = JSONObject.obj; jEdge.AddField("start", A.Id); jEdge.AddField("end", B.Id); jEdge.AddField("cost", edge.cost); jEdge.AddField("flowRate", edge.flowRate); jEdges.Add(jEdge); } jNode.AddField("edges", jEdges); nodes.Add(jNode); } json.AddField("nodes", nodes); JSONObject elevators = JSONObject.arr; GameObject[] Elevators = GameObject.FindGameObjectsWithTag("Elevator"); foreach (GameObject elevator in Elevators) { ElevatorScript elevate = elevator.GetComponent <ElevatorScript>(); JSONObject jElevator = JSONObject.obj; jElevator.AddField("id", elevate.Id); jElevator.AddField("initialLocation", elevate.initialLocation); JSONObject jNodes = JSONObject.arr; foreach (GameObject node in elevate.nodes) { JSONObject jNode = JSONObject.obj; NodeScript scpt = node.GetComponent <NodeScript>(); jNode.AddField("id", scpt.Id); jNodes.Add(jNode); } jElevator.AddField("nodes", jNodes); elevators.Add(jElevator); } json.AddField("elevators", elevators); StreamWriter fileOut = File.CreateText(path); fileOut.WriteLine(json.ToString()); fileOut.Close(); }
private void OnEnable() { Instance = this; }