Exemple #1
0
    /// <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);
    }
Exemple #2
0
    }//刷新房间

    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;
        }
    }
Exemple #3
0
 /// <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");
     }
 }
Exemple #4
0
 /// <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");
         }
     }
 }
Exemple #5
0
    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();
 }
Exemple #7
0
 public Door(DoorColor doorColor)
 {
     DoorColor = doorColor;
     DoorOpen  = false;
 }