// adds roller coaster cart reference to roller coaster controller and rc portal public void AddCartReference(RollerCoasterCart _rollerCoasterCart) { rollerCoasterCart = _rollerCoasterCart; rollerCoasterController.AddCartReference(rollerCoasterCart); rcCartPortal.AddCartReference(rollerCoasterCart); // add graph reph to cart rollerCoasterCart.AddGraphReference(graphCreator); if (trackIsComplete) { rollerCoasterCart.TrackIsComplete(true); } }
void OnTriggerEnter(Collider collider) { RollerCoasterCart rollerCoasterCart = collider.GetComponent <RollerCoasterCart>(); if (!rollerCoasterCart) { return; } if (!rollerCoasterCart.IsRunning) { return; } rollerCoasterBuilderController.StartStopCart(); }
// places full sized item in scene public void PlaceFullsizedItem(Transform mostRecentElement) { GameObject fullItem = (GameObject)Instantiate(GetCurrentFullSize(), new Vector3(0, 0, 0), Quaternion.identity); if (currentItemName != "Cart") { // get connectors Transform connectorBackwardNew = fullItem.transform.Find("Connector Backward"); Transform connectorForwardAOld = mostRecentElement.Find("Connector Forward A"); Transform connectorForwardBOld = mostRecentElement.Find("Connector Forward B"); // find out direction vector and apply rotation Vector3 directionVec = (connectorForwardBOld.position - connectorForwardAOld.position).normalized; Quaternion newRotation = Quaternion.FromToRotation(Vector3.forward, directionVec); fullItem.transform.rotation = Quaternion.Euler(fullItem.transform.rotation.eulerAngles.x, newRotation.eulerAngles.y, fullItem.transform.rotation.eulerAngles.z); // based on the most recently placed element (before this one), find out where to place the current one // apply same rotation to new item Vector3 vectorConnectorBackwardToCenter = fullItem.transform.position - connectorBackwardNew.position; // apply this vector to connectorForwardOld Vector3 newPos = connectorForwardAOld.position + vectorConnectorBackwardToCenter; fullItem.transform.position = newPos; // add item to list for roller coaster rollerCoasterBuilderController.AddElementToRC(fullItem.transform); // also instantiate particle system GameObject particleSystem = (GameObject)Instantiate(particleSystemPrefab, new Vector3(0, 0, 0), Quaternion.identity); particleSystem.transform.position = newPos; // play building audio audioSource.Play(); // deactivate item and start coroutine to re-activate it fullItem.SetActive(false); StartCoroutine(PlaceItemCoroutine(fullItem)); } else { // in this case it's a cart RollerCoasterCart rollerCoasterCart = fullItem.GetComponent <RollerCoasterCart>(); rollerCoasterBuilderController.AddCartReference(rollerCoasterCart); } }
public void AddCartReference(RollerCoasterCart _rollerCoasterCart) { rollerCoasterCart = _rollerCoasterCart; syncWaypointsWithCart(); rollerCoasterCart.ResetCart(); }
public void AddCartReference(RollerCoasterCart _rollerCoasterCart) { rollerCoasterCart = _rollerCoasterCart; }