/// <summary> /// Función que devuelve el Game Object que representa a cada una de las puertas a partir de su color /// </summary> /// <param name="color">Color de la puerta que queremos obtener</param> /// <returns>Puerta del color</returns> public GameObject GetDoorGameObject(DoorColor color) { GameObject doorGo; m_Doors.TryGetValue(color, out doorGo); return(doorGo); }
}//刷新房间 public void targetHouseCalculate(DoorColor color, Room room, Door door) { //利用door的位置计算房间位置和旋转,然后将position等属性赋给room switch (color) { case DoorColor.RED: room.houseRotationEular = currentRoom.houseRotationEular + new Vector3(180, 0, 0); // + new Vector3(0, 180 * door.transform.up.x, 0); Vector3 diff = houseObject[(int)currentRoom.house].transform.position - door.targetDoor.gameObject.transform.position; if (Mathf.Abs(Vector3.Dot(door.transform.up, new Vector3(1, 0, 0))) > 0.1) { room.houseRotationEular += new Vector3(0, 180, 0); Vector3 newdiff = diff + new Vector3((-1) * diff.x, (-1) * diff.y, 0) * 2; room.housePosition = newdiff + door.gameObject.transform.position; } else { Vector3 newdiff = diff + new Vector3(0, (-1) * diff.y, (-1) * diff.z) * 2; room.housePosition = newdiff + door.gameObject.transform.position; } //otherDoor.transform.position //room.houseposition.. break; case DoorColor.WHITE: room.housePosition = new Vector3(0, 0, 0); room.houseRotationEular = new Vector3(0, 0, 0); //player.transform.position= break; default: break; } }
/// <summary> /// Función que carga un nivel determinado a partir del tipo /// </summary> /// <param name="doorColor"> /// Color del nivel que se quiere cargar <see cref="DoorColor"/> /// </param> public void TriggerLoadAdditive(DoorColor doorColor) { // Si el nivel no está cargado, se carga if (!m_LevelsLoaded.Contains(doorColor)) { string levelName = m_LevelNames[doorColor]; SceneManager.LoadScene(levelName, LoadSceneMode.Additive); // Es muy importante añadir el nivel como cargado m_LevelsLoaded.Add(doorColor); } else { Debug.LogWarning("El nivel [" + m_LevelNames[doorColor] + "] ya se ha cargado. No se va a volver a realizar la carga"); } }
/// <summary> /// Esta función activa/desactiva una puerta con un tipo dado /// </summary> /// <param name="doorColor"> /// Color de la puerta que se quiere desactivar <see cref="DoorColor"/> /// </param> /// <param name="value"> /// True, activa la puerta, false la desactiva <see cref="System.Boolean"/> /// </param> public void ActivateDoor(DoorColor doorColor, bool value) { // Si la puerta existe, la intentamos activar if (m_Doors.ContainsKey(doorColor)) { GameObject doorToActivate = m_Doors[doorColor]; if (doorToActivate) { // Si la referencia está bien configurada, es posible activarla doorToActivate.SetActive(value); } else { Debug.LogWarning("La puerta que se está intentando activar, no se ha asignado en el GameManager"); } } }
public Obstacle GetDoor(DoorColor color) { switch (color) { case DoorColor.Blue: return(BlueDoor); case DoorColor.Green: return(GreenDoor); case DoorColor.Red: return(RedDoor); case DoorColor.Yellow: return(YellowDoor); default: return(null); } }
private void button5_Click(object sender, EventArgs e) { DoorColor.ShowDialog(); }
public Door(DoorColor doorColor) { DoorColor = doorColor; DoorOpen = false; }