Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: WalteWalter en Julio 26, 2017, 01:34:21 AM

Título: instancias de daño melee
Publicado por: WalteWalter en Julio 26, 2017, 01:34:21 AM
estoy creando un juego 2d, como hago para que la función de recibir daño del enemigo solo se active una vez por animación en lugar de una vez por click o varias veces en una sola animacion?
Título: instancias de daño melee
Publicado por: lightbug en Julio 26, 2017, 03:30:58 AM
Una funcion de recibir daño? no tiene sentido, por lo menos lo mas logico es que el atacante tenga una de hacer daño.
 
Porque decis "en de una vez por click"? como si fuera uno o el otro, vos creas la logica necesaria para determinar el comportamiento (behaviour de ahi viene) de tus gameObjects, con programacion basica deberia bastar siempre y cuando entiendas los componentes que estas usando.
 
saludos
Título: instancias de daño melee
Publicado por: WalteWalter en Julio 26, 2017, 07:31:03 AM
Cita de: lightbug date=1501032658Una funcion de recibir daño? no tiene sentido, por lo menos lo mas logico es que el atacante tenga una de hacer daño.
   
   
      Porque decis "en de una vez por click"? como si fuera uno o el otro, vos creas la logica necesaria para determinar el comportamiento (behaviour de ahi viene) de tus gameObjects, con programacion basica deberia bastar siempre y cuando entiendas los componentes que estas usando.
   
   
      saludos
   


pasa que aun soy un principiante :v me podrias dar un pequeño ejemplo de script en c# para hacer daño?  lo que me han enseñado hasta ahora no me sirve para lo que busco hacer
Título: instancias de daño melee
Publicado por: pioj en Julio 26, 2017, 09:12:47 AM
Por favor, evita duplicar post en varios foros, no por ello te van a contestar antes.
 
No indicas el género de juego que es, no sé si buscas hacer un RPG por turnos o bien cualquier otra cosa, como un Arcade. Supongo que @lightbug se refiere a que es más fácil programar que la gestión de daño del Player sólo se pueda realizar una vez cada X segundos, o una vez por turno, para evitar "sobredosis".
Título: instancias de daño melee
Publicado por: lightbug en Julio 26, 2017, 06:19:08 PM
Cita de: WalteWalter date=1501047063me podrias dar un pequeño ejemplo de script en c# para hacer daño?
   


No, esas cosas no se piden, no te va a servir de nada, si queres hacer esto pero no queres o no sabes lo necesario te diria que estudies el tema, no es dificil y tenes mucha documentacion/tutoriales interesantes. pedir un script es como si te pasara todos mis muebles del living en la posicion y orientacion que estan y los quieras encajar en tu living, quizas exista un 1% de probabilidad de que entren joya, pero lo mas seguro es que termine en desastre y tengas que mover todo, aca es lo mismo.
 
Lo que te puedo dar es una idea/script. Si fuera todo en tiempo real debes pensar todo parte por parte, es decir en un momento dado (durante una accion de atacar por ejemplo) se disparara el ataque, el ataque debe tener algunos datos basicos como que cantidad de daño provoca (podrian ser muchos tipos de daño por ejemplo si fuera un rpg) y a quien se lo provoca. La primer parte la podes hacer como quieras, es la parte "dificil", podrias usar un trigger, distancias, angulos, llo que quieras tene en cuenta que debes detectar a otro ser viviente(para generalizar) en un punto espacial determinado en un instante determinado, para la parte del instante podes usar un evento de animacion (investigalos si no lo conoces), basicamente en la linea temporal del clip animado especificas un instante en el que se llama a una metodo publico de un script (metodo Attack, fijate el script de abajo). No se, podrias tener un trigger adelante del enemigo (solo para detectar que hay alguien adelante), la linea logica que se me ocurre (no hay una correcta)
 

Script:
 

//AttackTrigger.cs
public AttackTrigger : Monobehaviour
{
public GameObject m_player; //elegis el player (el que tiene el collider!)
bool m_isPlayer = false;   
void OnTriggerEnter(Collider other)
{
   if(other.gameObject == m_player)
      m_isPlayer = true;
}

void OnTriggerExit(Collider other)
{
   if(other.gameObject == m_player)
      m_isPlayer = false;
}
public void Attack()
{
   //si esto es falso el trigger no detecto al player al momento de atacar
   if(!m_isPlayer)
      return;
   //--> hacer daño a player,
   //llamar a un script de este que tenga registro de su salud y decrementar su valor
}
}

 


Si tenes dudas lo primero que haces es probar que apretando una tecla se le baje la salud al player, despues vas metiendo cosas paso a paso hasta que todo vaya funcionando. Fijate que no tenes update, el trigger se dispara en su tiempo, lo mismo la funcion Attack
Título: instancias de daño melee
Publicado por: Arthure en Julio 26, 2017, 06:53:59 PM
Cita de: WalteWalter date=1501047063pasa que aun soy un principiante :v me podrias dar un pequeño ejemplo de script en c# para hacer daño?  lo que me han enseñado hasta ahora no me sirve para lo que busco hacer
   


Hoy en dia todo se soluciona con decir cosas como "pasa que aun soy un principiante" ... y esa parte no es mala, todo lo contrario, todos hemos pasado por esa etapa. Pero esta claro que hay un abismo entre decir "pasa que aun soy principiante, me queda mucho por aprender para conseguir lo que quiero pero me esforzare" o decir "pasa que aun soy principiante, me podrias dar un pequeño script para hacer daño".
 
Es muy diferente estar aprendiendo programacion, a estar buscando videotutoriales que hagan exactamente lo que buscas ... con la primera opcion haras lo que quieras (en tu imaginacion estara los limites), con la segunda opcion haras muy poquito porque al final no sabras adaptar las cosas a tus necesidades y estaras limitado a lo que otras personas quieran hacer por ti.
 
Supongo que era eso a lo que se referia @lightbug con que no te iba a servir de nada ... y la prueba esta en que los boleanos son un tipo de variable que se aprende con lo mas basico de programacion, de aquellas cosas que se deberian tener claras como el agua incluso antes de abrir Unity por primera vez ... si realmente estas aprendiendo programacion.
Título: instancias de daño melee
Publicado por: lightbug en Julio 26, 2017, 07:49:53 PM
Cita de: Arthure date=1501088039Hoy en dia todo se soluciona con decir cosas como "pasa que aun soy un principiante" ... y esa parte no es mala, todo lo contrario, todos hemos pasado por esa etapa. Pero esta claro que hay un abismo entre decir "pasa que aun soy principiante, me queda mucho por aprender para conseguir lo que quiero pero me esforzare" o decir "pasa que aun soy principiante, me podrias dar un pequeño script para hacer daño".
   


Se ha puesto de moda la frase esa, es mas facil,interesante y divertido estudiar algo a que alguien de en el clavo y te pase justo lo que necesitas. "Me pasas un script?" me suena al tipico "Tiene una moneda joven?"
Título: instancias de daño melee
Publicado por: WalteWalter en Julio 29, 2017, 01:32:20 AM
bueno, gracias a todos por el sermon y la informacion :v y sobre el repost, crei que el primero no se había subido, tendre mas cuidado a la hora de pedir ayuda y me pondre a estudiar debidame
Título: instancias de daño melee
Publicado por: pioj en Julio 31, 2017, 01:12:26 AM
Cita de: WalteWalter date=1501284740bueno, gracias a todos por el sermon y la informacion :v y sobre el repost, crei que el primero no se había subido, tendre mas cuidado a la hora de pedir ayuda y me pondre a estudiar debidame
   


Entendemos tus dudas, pero creemos que siempre es mejor que primero os documentéis un poco por vuestra cuenta, para que cojáis confianza en vuestras aptitudes de Desarrollador y hagáis así mejores juegos.  Una vez agotes todas tus posibilidades, entonce sí es momento para recurrir a otras opiniones y sugerencias en UnitySpaín.
 
Ánimos, que seguro que lo sacas!