示例#1
0
    } // end dispararMisilNormal()

    /// <summary>
    /// Se llama cada vez que hay que dibujar la interfaz de usuario ( Similar a Update() )
    /// </summary>
    void OnGUI()
    {
        Event e = Event.current;

        //Controlamos la rueda del ratón
        if (e.type == EventType.scrollWheel && modoDisparo != ModoDisparo.auto)
        {
            if (tipoProyectil == TipoProyectil.pistola)
            {
                tipoProyectil      = TipoProyectil.ametralladora;
                TextoMunicion.text = "Tipo Arma: Ametralladora";
            }
            else if (tipoProyectil == TipoProyectil.ametralladora)
            {
                tipoProyectil      = TipoProyectil.granada;
                TextoMunicion.text = "Tipo Arma: Granada";
            }
            else if (tipoProyectil == TipoProyectil.granada)
            {
                tipoProyectil      = TipoProyectil.misilNormal;
                TextoMunicion.text = "Tipo Arma: MisilNormal";
            }
            else if (tipoProyectil == TipoProyectil.misilNormal)
            {
                tipoProyectil      = TipoProyectil.misilInteligente;
                TextoMunicion.text = "Tipo Arma: MisilInteligente";
            }
            else
            {
                tipoProyectil      = TipoProyectil.pistola;
                TextoMunicion.text = "Tipo Arma: Pistola";
            }
        }

        if (playerState == PlayerState.death)
        {
            //Skin
            GUI.skin = gameGuiSkin;

            float AnchoDialogo = Screen.width / 6;              // 1/6 del ancho de la pantalla
            float AltoDialogo  = Screen.height / 10;            // 1/10 del alto de la pantalla

            //Area Principal centrada en la pantalla, con título y estilo de caja skinned
            //BeginArea (screenRect : Rect, text : String, style : GUIStyle)
            GUILayout.BeginArea(new Rect(Screen.width / 2 - AnchoDialogo / 2, Screen.height / 2 - AltoDialogo / 2, AnchoDialogo, AltoDialogo), "Has Muerto", gameGuiSkin.box);

            //Botón estilo skinned
            if (GUILayout.Button("Aceptar", gameGuiSkin.button))
            {
                Application.Quit();
            }


            GUILayout.EndArea();
        }
    }           // end OnGui()
    } // end dispararMisil()

    void OnGUI()
    {
        Event e = Event.current;

        if (e.type == EventType.scrollWheel && modoDisparo != ModoDisparo.auto)
        {
            if (tipoProyectil == TipoProyectil.bala)
            {
                tipoProyectil      = TipoProyectil.misil;
                TextoMunicion.text = "Munici\u00F3n: Misil";
            }
            else
            {
                tipoProyectil      = TipoProyectil.bala;
                TextoMunicion.text = "Munici\u00F3n: Bala";
            }
        }
    }           // end OnGui()
    }           //end Start()

    // Update is called once per frame
    void Update()
    {
        if (Input.GetButtonDown("Fire1"))
        {
            Vector3 raton;
            Vector3 view;
            raton = Input.mousePosition;
            view  = Camera.main.ScreenToViewportPoint(raton);
            Ray        ray = Camera.main.ViewportPointToRay(view);
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit))
            {
                Transform target;
                if (trace)
                {
                    print("Apuntando a: " + hit.transform.name);
                }

                //*********************************************************************************************
                //
                // Sección que facilita el disparo
                //
                if (hit.transform.tag.Contains("suelo"))
                {
                    Collider[] colliders = Physics.OverlapSphere(hit.point, 3, layerMask_IgnoreSphereCast);

                    if (colliders.GetLength(0) > 0)
                    {
                        int index = 0;
                        for (index = 0; index < colliders.GetLength(0); index++)
                        {
                            if (colliders[index].transform.tag.Contains("enemigo"))
                            {
                                break;
                            }
                        }
                        if (index < colliders.GetLength(0))
                        {
                            Vector3 direccion = (colliders[index].transform.position + (colliders[index].transform.forward * offsetTarget.z) + (colliders[index].transform.right * offsetTarget.x) + (colliders[index].transform.up * offsetTarget.y)) -
                                                (tr.position + (transform.forward * offsetPlayerBalas.z) + (transform.right * offsetPlayerBalas.x) + (transform.up * offsetPlayerBalas.y));
                            ray.direction = direccion;
                            ray.origin    = tr.position + (transform.forward * offsetPlayerBalas.z) + (transform.right * offsetPlayerBalas.x) + (transform.up * offsetPlayerBalas.y);
                            if (!Physics.Raycast(ray, out hit, direccion.magnitude, layerMask_IgnorePlayer))
                            {
                                Debug.DrawRay(tr.position + (transform.forward * offsetPlayerBalas.z) + (transform.right * offsetPlayerBalas.x) + (transform.up * offsetPlayerBalas.y), direccion, Color.magenta);
                                return;
                            }
                            else
                            {
                                if (trace)
                                {
                                    print("Enemigo " + hit.transform.name + " facilitado");
                                }
                            }
                        }
                    }
                }
                //
                //*********************************************************************************************


                if (hit.transform.tag.Contains("enemigo"))
                {
                    Vector3 tempOffset = offsetTarget;
                    target = hit.transform;

                    if (modoDisparo == ModoDisparo.auto)
                    {
                        if (target.GetComponent <healthClass>().health > 10)                                                    //dirigido por salud
                        //if((target.position - tr.position).magnitude <= rangoBala)	//dirigido por distancia
                        {
                            tipoProyectil      = TipoProyectil.bala;
                            TextoMunicion.text = "Munici\u00F3n: Bala";
                        }
                        else
                        {
                            tipoProyectil      = TipoProyectil.misil;
                            TextoMunicion.text = "Munici\u00F3n: Misil";
                        }
                    }

                    if (target.CompareTag("enemigo_estatico"))
                    {
                        tempOffset = Vector3.zero;
                    }

                    if (tipoProyectil == TipoProyectil.bala)
                    {
                        //Bala

                        StopAllCoroutines();
                        StartCoroutine(dispararBala(target, tempOffset));
                    }
                    else if (tipoProyectil == TipoProyectil.misil)
                    {
                        //Misil
                        StopAllCoroutines();
                        StartCoroutine(dispararMisil(target, tempOffset));
                    }
                }
            }
        }
    }           //	end Update()
    }           //end Start()

    // Update is called once per frame
    void Update()
    {
        #region Movimiento Player
        //*********************************************************************************************
        // Sección que facilita el movimiento del player
        //
        if (controller.isGrounded)
        {
            if (depth)
            {
                //moveDirection = new Vector3( Input.GetAxis("Horizontal"),0,Input.GetAxis("Vertical"));
                moveDirection = new Vector3(0, 0, Input.GetAxis("Vertical"));
                transform.Rotate(0, Input.GetAxis("Horizontal") * rotationSpeed, 0);
            }
            else
            {
                moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, 0);
            }

            moveDirection  = transform.TransformDirection(moveDirection);
            moveDirection *= linealSpeed;

            if (Input.GetButton("Jump"))
            {
                moveDirection.y = jumpSpeed;
            }
        }
        moveDirection.y -= gravity * Time.deltaTime;
        controller.Move(moveDirection * Time.deltaTime);
        //
        // Fin Sección que facilita el movimiento del player
        //*********************************************************************************************
        #endregion

        //Actualizamos el valor de energy en el GUI correspondiente
        playerEnergyText.text = "Energ\u00EDa : " + playerEnergy.ToString();

        //Salir del juego
        if (Input.GetButtonDown("Scape"))
        {
            Application.Quit();
        }
        else if (playerState == PlayerState.death)
        {
            return;
        }

        //Cambiar modo de disparo
        if (Input.GetKeyDown(KeyCode.A))
        {
            modoDisparo           = ModoDisparo.auto;
            TextoModoDisparo.text = "Modo disparo: autom\u00E1tico";
        }
        else if (Input.GetKeyDown(KeyCode.M))
        {
            modoDisparo           = ModoDisparo.manual;
            TextoModoDisparo.text = "Modo disparo: manual";
        }

        if (Input.GetButtonDown("Fire1"))
        {
            Vector3 raton;
            Vector3 view;
            raton = Input.mousePosition;
            //Cursor del ratón en coordenadas de viewPort
            view = Camera.main.ScreenToViewportPoint(raton);
            //Rayo desde la vista
            Ray        ray = Camera.main.ViewportPointToRay(view);
            RaycastHit hit;

            //Se lanza el rayo
            if (Physics.Raycast(ray, out hit))
            {
                Transform target;
                if (trace)
                {
                    print("Apuntando a: " + hit.transform.name);
                }

                #region facilitadores
                //*********************************************************************************************
                //
                // Sección que facilita el disparo
                //

                //¿Se hizo clic contra el suelo?
                if (hit.transform.tag.Contains("suelo"))
                {
                    //Se hizo clic contra el suelo, casteamos una esfera ignorando el suelo y los elementos estáticos del escenario
                    Collider[] colliders = Physics.OverlapSphere(hit.point, 3, layerMask_IgnoreSphereCast);

                    //¿Hay algo dentro de la esfera?
                    if (colliders.GetLength(0) > 0)
                    {
                        //Encontramos elementos dentro de la esfera
                        int index = 0;
                        for (index = 0; index < colliders.GetLength(0); index++)
                        {
                            //Encontramos al menos un enemigo
                            if (colliders[index].transform.tag.Contains("enemigo"))
                            {
                                break;
                            }
                        }

                        //¿Hay enemigos?
                        if (index < colliders.GetLength(0))
                        {
                            //Hay enemigos en la esfera
                            Vector3 direccion;
                            if (colliders[index].transform.tag.Contains("estatico"))
                            {
                                //Enemigo estático
                                direccion = colliders[index].transform.position - (tr.position + (transform.forward * offsetPlayerBalas.z) + (transform.right * offsetPlayerBalas.x) + (transform.up * offsetPlayerBalas.y));
                            }
                            else
                            {
                                //Enemigo no estático
                                direccion = (colliders[index].transform.position + (colliders[index].transform.forward * offsetTarget.z) + (colliders[index].transform.right * offsetTarget.x) + (colliders[index].transform.up * offsetTarget.y)) -
                                            (tr.position + (transform.forward * offsetPlayerBalas.z) + (transform.right * offsetPlayerBalas.x) + (transform.up * offsetPlayerBalas.y));
                            }

                            //Dirección y origen de rayo hacia el target desde el player
                            ray.direction = direccion;
                            ray.origin    = tr.position + (transform.forward * offsetPlayerBalas.z) + (transform.right * offsetPlayerBalas.x) + (transform.up * offsetPlayerBalas.y);
                            //Se lanza un rayo en dirección al target, ignorando al player
                            if (!Physics.Raycast(ray, out hit, direccion.magnitude, layerMask_IgnorePlayer))
                            {
                                //No se encontró una dirección despejada hacia el target (por ejemplo, había obstáculos en la trayectoria de tiro)
                                if (trace)
                                {
                                    Debug.DrawRay(tr.position + (transform.forward * offsetPlayerBalas.z) + (transform.right * offsetPlayerBalas.x) + (transform.up * offsetPlayerBalas.y), direccion, Color.magenta);
                                    Debug.Break();
                                }
                                //En vez de return, se podría continuar para disparar contra cosas del escenario (siempre que se haya seleccionado a un target enemigo)
                                return;
                            }
                            else
                            {
                                //Enemigo facilitado
                                if (trace)
                                {
                                    print("Enemigo " + hit.transform.name + " facilitado");
                                }
                            }
                        }
                        else
                        {
                            //No hay enemigos en la esfera
                            if (trace)
                            {
                                print("No hay enemigos en la esfera");
                            }
                            return;
                        }
                    }
                    else
                    {
                        //No hay nada en la esfera (excepto suelo o elementos estáticos del escenario)
                        if (trace)
                        {
                            print("No hay nada en la esfera");
                        }

                        //**************************************************************
                        //
                        //Parte experimental para movimiento por clic
                        //
                        //StopAllCoroutines();
                        //Nos movemos hacia el punto donde se hizo clic en el suelo
                        //StartCoroutine(goTo(hit.point));
                        //
                        //**************************************************************

                        //return;
                    }
                }
                //
                // Fin Sección que facilita el disparo
                //*********************************************************************************************
                #endregion

                if (hit.transform.tag.Contains("enemigo"))
                {
                    //Offset temporal del target, si el enemigo es estático lo pondremos a cero.
                    Vector3 tempOffset = offsetTarget;
                    //Transform del target
                    target = hit.transform;

                    //Elegimos munición
                    if (modoDisparo == ModoDisparo.auto)
                    {
                        if (target.GetComponent <healthClass>().health > 10 || playerEnergy < 10)                       //decido por salud y por energía del player
                        //if((target.position - tr.position).magnitude <= rangoBala)	//dirigido por distancia
                        {
                            tipoProyectil      = TipoProyectil.bala;
                            TextoMunicion.text = "Munici\u00F3n: Bala";
                        }
                        else
                        {
                            tipoProyectil      = TipoProyectil.misil;
                            TextoMunicion.text = "Munici\u00F3n: Misil";
                        }
                    }

                    //Sólo si enemigo estático
                    if (target.CompareTag("enemigo_estatico"))
                    {
                        if (trace)
                        {
                            print("Enemigo est\u00E1tico detectado: " + hit.transform.name);
                        }
                        tempOffset = Vector3.zero;
                    }

                    //Disparo en función del tipo de munición
                    if (tipoProyectil == TipoProyectil.bala)
                    {
                        //Bala
                        StopAllCoroutines();
                        StartCoroutine(dispararBala(target, tempOffset));

                        //Por cada disparo de bala resto una cantidad a la energía del player
                        playerEnergy -= 10;
                    }
                    else if (tipoProyectil == TipoProyectil.misil)
                    {
                        //Misil
                        StopAllCoroutines();
                        StartCoroutine(dispararMisil(target, tempOffset));

                        //Por cada disparo de misil resto una cantidad a la energía del player
                        playerEnergy -= 50;
                    }
                }
            }
        }
        //Si no está pulsando el botón de disparo recuperamos energía
        else
        {
            playerEnergy++;
            if (playerEnergy > playerEnergyMax)
            {
                playerEnergy = playerEnergyMax;
            }
        }
    }           //	end Update()
示例#5
0
    }           //end Start()

    // Update is called once per frame
    void Update()
    {
        #region Movimiento Player
        //*********************************************************************************************
        // Sección que facilita el movimiento del player
        //
        if (controller.isGrounded)
        {
            Vector3 raton;
            Vector3 view;
            raton = Input.mousePosition;
            //Cursor del ratón en coordenadas de viewPort
            view = Camera.main.ScreenToViewportPoint(raton);
            //Rayo desde la vista
            Ray        ray = Camera.main.ViewportPointToRay(view);
            RaycastHit hit;

            //Lanzamos el rayo para calcular la rotación en función de la posición del mouse
            if (Physics.Raycast(ray, out hit))
            {
                if (trace)
                {
//					print("Apuntando a: " + hit.transform.name);
//					print ("PosicionMouse = " + hit.point);
                }

                //Anulamos la componente y de la posición del mouse.
                hit.point = new Vector3(hit.point.x, transform.position.y, hit.point.z);

                // Determine the target rotation.  This is the rotation if the transform looks at the target point.
                Quaternion targetRotation = Quaternion.LookRotation(hit.point - transform.position);

                // Smoothly rotate towards the target point.
                if (Mathf.Abs(tr.eulerAngles.y - targetRotation.eulerAngles.y) > umbralPrecisionRotacion)
                {
                    //transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, rotationSpeed * Time.time);
                    //Rotamos descartando cualquier rotación que no sea del eje Y
                    tr.rotation = Quaternion.RotateTowards(tr.rotation, Quaternion.Euler(0, targetRotation.eulerAngles.y, 0), Time.deltaTime * rotationSpeed);
                }
            }



            moveDirection = transform.TransformDirection(Vector3.forward) * Input.GetAxis("Vertical");
            //transform.Rotate(0, Input.GetAxis("Horizontal")*rotationSpeed,0);

            moveDirection *= linealSpeed;

            if (Input.GetButton("Jump"))
            {
                moveDirection.y = jumpSpeed;
            }
        }
        moveDirection.y -= gravity * Time.deltaTime;
        controller.Move(moveDirection * Time.deltaTime);
        //
        // Fin Sección que facilita el movimiento del player
        //*********************************************************************************************
        #endregion

        #region Actualización Variables Player
        //Actualizamos el valor de energy en el GUI correspondiente
        playerEnergyText.text = "Energ\u00EDa : " + playerEnergy.ToString();

        //Salir del juego
        if (Input.GetButtonDown("Scape"))
        {
            Application.Quit();
        }
        else if (playerState == PlayerState.death)
        {
            return;
        }

        //Cambiar modo de disparo
        if (Input.GetKeyDown(KeyCode.A))
        {
            modoDisparo           = ModoDisparo.auto;
            TextoModoDisparo.text = "Modo disparo: autom\u00E1tico";
        }
        else if (Input.GetKeyDown(KeyCode.M))
        {
            modoDisparo           = ModoDisparo.manual;
            TextoModoDisparo.text = "Modo disparo: manual";
        }
        //
        // Fin Sección actualización variables del player
        //*********************************************************************************************
        #endregion

        #region Disparo Misiles, Granadas, Ametralladora, Pistola
        //*********************************************************************************************
        //
        // Sección que facilita el disparo de misiles, granadas, ametralladora, pistola
        //
        //*********************************************************************************************
        if (Input.GetButtonDown("Fire2"))
        {
            #region Calculo Armamento en modo Automático
            //**************************************************************************
            //Cálculos tan sólo si estamos en modo automático
            //Para saber qué armamento usar
            //**************************************************************************
            if (modoDisparo == ModoDisparo.auto)
            {
                //Calculo la posición de origen del rayo sumándole el offset correspondiente.
                Vector3 origenRayo = tr.position + (transform.up * offsetPlayerRayoDeteccionEnemigos.y);

                //Cojo la dirección forward del player con una determinada magnitud que viene dada por distanciaDisparo
                //En función de esa distancia calcularemos colisiones posibles del rayo a mayor o menor distancia.
                Vector3 target = transform.TransformDirection(Vector3.forward) * distanciaDisparo;

                RaycastHit hit;

                //Rayo desde el player hacia adelante una distancia determinada
                //Si hay colisión vemos los enemigos que hay en ese punto para actuar en consecuencia
                //si no hay colisión efectuamos sin más un disparo de bala en esa dirección siempre que estemos
                //en modo automático.
                if (Physics.Raycast(origenRayo, target, out hit))
                {
                    //En este caso el target es el lugar de impacto del rayo
                    //target = hit.point;

                    if (trace)
                    {
                        print("Apuntando a: " + hit.transform.name);
                        Debug.DrawRay(origenRayo, target, Color.red, 1);
                    }

                    //Casteamos en cualquier caso una esfera ignorando el suelo y los elementos estáticos del escenario
                    Collider[] colliders = Physics.OverlapSphere(hit.point, 10, layerMask_IgnoreSphereCast);

                    //Dependiendo del número de enemigos que tengamos cerca usaremos un arma un otro.
                    int contadorEnemigos = 0;

                    //¿Hay algo dentro de la esfera?
                    if (colliders.GetLength(0) > 0)
                    {
                        //Encontramos elementos dentro de la esfera
                        int index = 0;

                        for (index = 0; index < colliders.GetLength(0); index++)
                        {
                            //Encontramos al menos un enemigo
                            if (colliders[index].transform.tag.Contains("enemigo"))
                            {
                                contadorEnemigos++;
                            }
                            //break;
                        }
                    }

                    if (trace)
                    {
                        print("Numero Enemigos = " + contadorEnemigos);
                    }

                    //¿Hay enemigos?
                    //Elegimos munición
                    if (modoDisparo == ModoDisparo.auto)
                    {
                        if (contadorEnemigos > 8 && numGranadas > 0)
                        {
                            tipoProyectil      = TipoProyectil.misilNormal;
                            TextoMunicion.text = "Tipo Arma: MisilNormal";
                        }
                        else if (contadorEnemigos > 8 && numMisilesInteligentes > 0)
                        {
                            tipoProyectil      = TipoProyectil.misilInteligente;
                            TextoMunicion.text = "Tipo Arma: MisilIngeligente";
                        }
                        else if (contadorEnemigos > 5 && numGranadas > 0)
                        {
                            tipoProyectil      = TipoProyectil.granada;
                            TextoMunicion.text = "Tipo Arma: Granada";
                        }
                        else if (contadorEnemigos > 3 && numCargadoresAmetralladora > 0)
                        {
                            tipoProyectil      = TipoProyectil.ametralladora;
                            TextoMunicion.text = "Tipo Arma: Ametralladora";
                        }
                        else
                        {
                            tipoProyectil      = TipoProyectil.pistola;
                            TextoMunicion.text = "Tipo Arma: Pistola";
                        }
                    }
                }
                //Si no existe colisión al lanzar el rayo efectuamos sin más un disparo de bala en esa dirección
                //siempre que estemos en modo de disparo automático
                else
                {
                    //Elegimos como munición la bala
                    if (modoDisparo == ModoDisparo.auto)
                    {
                        tipoProyectil      = TipoProyectil.pistola;
                        TextoMunicion.text = "Munici\u00F3n: Bala";
                    }
                }

                //Disparo en función del tipo de munición en MODO AUTOMÁTICO
                if (tipoProyectil == TipoProyectil.pistola && numBalas > 0)
                {
                    //Pistola
                    dispararPistola();
                }
                else if (tipoProyectil == TipoProyectil.ametralladora)
                {
                    //Ametralladora
                    StartCoroutine(dispararAmetralladora());
                }
                else if (tipoProyectil == TipoProyectil.misilNormal)
                {
                    //Misil Normal
                    dispararMisilNormal();
                }
            }
            //
            // Fin Sección para saber qué armamento usar en modo automático
            //*********************************************************************************************
            #endregion

            #region Disparo Manual
            //**************************************************************************
            //
            // Sección de Disparo Manual
            //
            //**************************************************************************
            if (modoDisparo == ModoDisparo.manual)
            {
                if (tipoProyectil == TipoProyectil.pistola && numBalas > 0)
                {
                    //Pistola
                    dispararPistola();
                }
                if (tipoProyectil == TipoProyectil.ametralladora && numCargadoresAmetralladora > 0)
                {
                    //Ametralladora
                    StartCoroutine(dispararAmetralladora());
                }
                if (tipoProyectil == TipoProyectil.granada && numGranadas > 0)
                {
                    //Ametralladora
                    dispararGranada();
                }
                if (tipoProyectil == TipoProyectil.misilNormal && numMisilesNormales > 0)
                {
                    //Misil Normal
                    dispararMisilNormal();
                }
                if (tipoProyectil == TipoProyectil.misilInteligente && numMisilesInteligentes > 0)
                {
                    //Misil Normal
                    dispararMisilNormal();
                }
            }
            //
            // Fin Sección de Disparo Manual
            //*********************************************************************************************
            #endregion
        }
        //Si no está pulsando el botón de disparo recuperamos energía
        else
        {
            playerEnergy++;
            if (playerEnergy > playerEnergyMax)
            {
                playerEnergy = playerEnergyMax;
            }
        }

        //
        // Fin Sección que facilita el disparo del player
        //*********************************************************************************************
        #endregion

        #region Recargar Munición
        //*********************************************************************************************
        //Sección que facilita el recargar armamento
        //*********************************************************************************************
        if (Input.GetKey(KeyCode.R))
        {
            numBalas = maxNumBalas;
        }


        #endregion
    }           //	end Update()
示例#6
0
    // Use this for initialization
    void Start()
    {
        //Para hacer pruebas asigno el modo de disparo inicial
        modoDisparo   = ModoDisparo.manual;
        tipoProyectil = TipoProyectil.granada;

        //Asigno la distancia de disparo
        if (Screen.width > Screen.height)
        {
            distanciaDisparo = Screen.width / 2;
        }
        else
        {
            distanciaDisparo = Screen.height / 2;
        }

        //Asigno mi transform
        tr = transform;

        //Asigno mi character controller
        controller = GetComponent <CharacterController>();
        //Desabilito colisiones
        //controller.detectCollisions = false;

        //Visualiza la munición al principio
        if (tipoProyectil == TipoProyectil.pistola)
        {
            TextoMunicion.text = "Tipo Arma: Pistola";
        }
        else if (tipoProyectil == TipoProyectil.misilNormal)
        {
            TextoMunicion.text = "Tipo Arma: MisilNormal";
        }
        else if (tipoProyectil == TipoProyectil.misilInteligente)
        {
            TextoMunicion.text = "Tipo Arma: MisilInteligente";
        }
        else if (tipoProyectil == TipoProyectil.ametralladora)
        {
            TextoMunicion.text = "Tipo Arma: Ametralladora";
        }
        else if (tipoProyectil == TipoProyectil.granada)
        {
            TextoMunicion.text = "Tipo Arma: Granada";
        }

        //Visualiza el modo de disparo
        if (modoDisparo == ModoDisparo.auto)
        {
            TextoModoDisparo.text = "Modo disparo: autom\u00E1tico";
        }
        if (modoDisparo == ModoDisparo.manual)
        {
            TextoModoDisparo.text = "Modo disparo: manual";
        }

        //Configuramos la capas
        layerSuelo         = 1 << LayerMask.NameToLayer(nombreLayerSuelo);
        layerScenaryStatic = 1 << LayerMask.NameToLayer(nombreLayerScenaryStatic);
        layerPlayer        = 1 << LayerMask.NameToLayer(nombreLayerPlayer);

        layerMask_IgnoreSphereCast = ~(layerSuelo | layerScenaryStatic);
        layerMask_IgnorePlayer     = ~layerPlayer;

        //Inicializamos el texto de la energía del jugador
        playerEnergyText.text = "Energ\u00EDa : " + playerEnergy.ToString();
    }           //end Start()