public void ResetPlayer() { Debug.Log("Resetting the player"); rigid.Sleep(); transform.position = startPos; transform.rotation = startRot; currentRailPosition = RailPosition.Center; }
void Awake() { rigid = GetComponentInChildren <Rigidbody>(); startPos = transform.position; startRot = transform.rotation; railsPositions = new Vector3(transform.position.x - 3f, transform.position.x, transform.position.x + 3f); // Positions for the rails which the player moves along (L , C , R) currentRailPosition = RailPosition.Center; defaultRigidbodyConstraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationY | RigidbodyConstraints.FreezeRotationZ; }
void CheckRailPosition_AttemptMove(RailPosition direction) { if (direction == RailPosition.Left) { if (currentRailPosition == RailPosition.Left) { return; } else if (currentRailPosition == RailPosition.Center) { transform.position = new Vector3(railsPositions[0], transform.position.y, transform.position.z); currentRailPosition = RailPosition.Left; } else if (currentRailPosition == RailPosition.Right) { transform.position = new Vector3(railsPositions[1], transform.position.y, transform.position.z); currentRailPosition = RailPosition.Center; } } else if (direction == RailPosition.Right) { if (currentRailPosition == RailPosition.Right) { return; } else if (currentRailPosition == RailPosition.Center) { transform.position = new Vector3(railsPositions[2], transform.position.y, transform.position.z); currentRailPosition = RailPosition.Right; } else if (currentRailPosition == RailPosition.Left) { transform.position = new Vector3(railsPositions[1], transform.position.y, transform.position.z); currentRailPosition = RailPosition.Center; } } }