jueves, 4 de marzo de 2021

¿como se hace un efecto de impacto de un personaje y su sangrado, perder vida, emitir un sonido de dolor?

 


0.1.8 pierdo vida, grito dolor y sangro, mas, mejor jugabilidad.

Siguiendo con mi ultimo videojuego ayer conseguí hacerle un efecto de sangrado al player que hace algo mas interesante o ameno el videojuego, y esto sumándolo a que pierde un punto de vida (tiene 10 vidas que iré manipulando según baya viendo) y que da un grito de dolor cuando recibe un disparo pues le da un aire mas correcto para ser un juego de disparos.

¿como se hace un efecto de impacto de un personaje y su sangrado, perder vida, emitir un sonido de dolor?

En este caso concreto explico lo del sangrado y muestro mis apuntes de mi libreta …..


 

 

Mi memoria es muy limitada y creo que en la libreta hice una especie de ecuación muy simple y muy personal una operación matemática de comparaciones con varios elementos del juego para conseguir que el player el protagonista del juego emita una sangrado cuando es impactado.

Utilizo los mismos elementos del disparador automático un cubo giratorio toca otro cubo y provoca mediante scripts que lance otro game object constantemente las balas.


Pues pensé e de hacer algo similar pero que en este caso el player es como si hiciera de pistola y de su cuerpo en lugar de disparar balas dispara salpicaduras sangrientas y que lo aga cuando sea impactado por una bala del enemigo, y lo e conseguido me da resultado.

Lo podéis ver en esta versión del juego que publico aquí la 0,1,8 y muestro también mi apunte en la libreta también pongo los escripts en c# utilizados y e de poner algunos detalles sobre los scripts para que funcionen si los queréis probar porque algunos por si solos no funcionan si no se arrastran por pantalla con el mouse algunos elementos del juego como gráficos y animaciones que hay que situarlos en diversas casillas al lado de los scripts C#

 

 

De una de las articulaciones del player e puesto una esfera de hay sale un cubo cada vez que tiene un impacto, un cubo transparente con gráficos de efecto de agua que le cambie el color azul por uno rojizo….


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SANGRADOPLUMADA : MonoBehaviour {


        public Rigidbody Sphere;
        public float velocidad = 10f;
        void disparador () {
            Rigidbody SphereClon = (Rigidbody) Instantiate (Sphere, transform.position, transform.rotation);
            SphereClon.velocity = transform.up * velocidad;


        }

        // Update is called once per frame
        void Update () {


        }

        void OnTriggerEnter(Collider other) {

            if (other.gameObject.CompareTag ("pomada")){

                disparador ();///////////////////////////imbento yo


            }}
    }