Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ramunda

#181
General (Antiguo) / Restar vida a jugador
Julio 29, 2015, 04:57:49 PM
[quote author=francoe1" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="15848" data-ipsquote-contentcommentid="100908">Vamos por paso.Debes crear un componente para la salud, llamemoslo HealtInfo vamos al código
public class HealtInfo : MonoBehaviour{
public int MaxHealt = 1;
public int MinHealt = 0;

private int CurrentHealt;
public int GetHealt{get{return CurrentHealt;}}

private bool Death;
public bool IsDeath{get{return Death;}}

public void ApplyDamage(int Value)
{
   CurrentHealt -= Value;
   HealtChange();
}

public void ApplyHealt(int Value)
{
   CurrentHealt += Value;
   HealtChange();
}

public void Reset()
{
   CurrentHealt = MaxHealt;
}

private void HealtChange()
{      
   if(CurrentHealt <= MinHealt)Death = true;
   CurrentHealt = Mathf.Clamp(CurrentHealt,MinHealt,MaxHealt);
}
}
Bien, ahora necesitamos los proyectiles.
public class Bullet : MonoBehaviour
 {
float Danio = 50;

void OnCollisionEnter(Collision col)
{
   var healtInfo = col.transform.GetComponent<HealtInfo>();
   if(healtInfo == null)return;
   healtInfo.ApplyDamage(Danio);
}
}
Y con eso, todo debería funcionar.[/quote]Woooo esto mola, pero , y perdona no quiero parecer estupido(un poco si lo soy), pero este codigo que me ofreces donde va?, que con tanto sarao ya no se que estamos moficando, porque esto que me has puesto lo entiendo , es un sistema de vida y el otro que la bala resta vida llamando a este script.Pero esto es para ponerlo en el que tengo?, es uno aparte ? nuevo?, porque en mi PlayerInfo tengo animaciones sonidos y demas.Perdona la incertidumbre.Edito:ya que has sido tan amable de ponrmelos los he querido probar , el primer script no da problemas el segundo el de la baslas si:var healtInfo = col.transform.GetComponent<HealtInfo>();
        if(healtInfo == null)return;
        healtInfo.ApplyDamage(Danio);Salen asi en rojo   
#182
General (Antiguo) / Restar vida a jugador
Julio 29, 2015, 04:03:34 PM
[quote author=Arthure" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="15848" data-ipsquote-contentcommentid="100904">no te ofendas, no te dare la solucion pero si con la explicacion que te he dado no has encontrado como arreglarlo para que las balas le quiten vida al jugador, mi gran consejo seria aprovechar el tiempo en otra cosa (de buen rollo). has probado a coleccionar sellos o monedas ? con el tiempo se revalorizan y ganaras maspruebo a explicarte el problema que tienes otra vez (mas claro no sera, porque tampoco se puede) : le dices al jugador que cuando el daño sea IGUAL (no menor y tampoco mayor, solo igual) a 100, le baje la vida y por otro lado tienes una bala que hace 150 de daño (que ahora sin ningun sentido has bajado a 50 a ver si sonaba la flauta). como te he dicho, mas claro no se puede sin darte la solucion directamente.si fuera tu, intentaria durante un tiempo mas esto de la programacion, y si no siempre te quedaran los sellos y las monedas. un saludo y suerte[/quote]@arthure, no me ofendo para nada hombre, ya se que soy un lerdo de cojones hahhaa, Aver Mas claro no ni mas alto no. se me ha ido la pinza , me lo dices mas que claro. 100.Pero entonces le estamos diciendo a la bala que aga 100 de daño, y la vida de mi jugador es de 100, me mataria de un solo disparo?Mi cabeza decia que el float Dano era el daño que hacia la bala al impactar.Veo que no.Bien le puse 100using UnityEngine;
using System.Collections;
public class Dañodebala : MonoBehaviour {
public float Dano = 100;    void OnCollisionEnter
    ( Collision info  ){
    info.transform.SendMessage("ApplyDammage", Dano, SendMessageOptions.DontRequireReceiver);
    }
}pero sigue sin restar vida :(
#183
General (Antiguo) / Restar vida a jugador
Julio 29, 2015, 03:40:42 PM
[quote author=Arthure" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="15848" data-ipsquote-contentcommentid="100900">Al principio de la funcion ApplyDamage (int damage), dentro del script PlayerInfo, haces una comprobacion de la cantidad de daño antes de aplicar el daño sobre la vida del jugador y solo restara el daño cuando la cantidad sea igual a 100; en el script de la bala tienes definido el daño a 150. Dado esta situacion, no aplicara nunca el daño sobre el jugador porque la condicion ya mencionada dentro de la funcion ApplyDamage (int) nunca sera cierta y por lo tanto salta todo el codigo. Ahora que ya sabes el motivo por el que no funciona, arreglarlo es cosa tuya.p.d.s.i. (post data sin importancia) xd eres consciente del toston que es esto ?[/quote]Arthure, gracias por responderme , Er creo que esta claro tu explicación es mas que literaria que tengo mas daño e el que el jugador tiene definido por lo cual salta, entonces si pongo un valor mas bajo....seria esto pues:
}
}
Lo malo es que sigue sin restarme vida muerto .Lo que me comentas de el If......no entiendo donde deberia de ir.El codigo que me pasates al otra vez lo estudie , implemente y acabo en desastre total, no por ti por mi!!!...faltabasn cosas no sabia donde poner las otras trastee mucho y la lie parda.No pedire para nada que me lo arregleis, no es etico , pero si desinterasadamente quieres echarme un cable te lo agradecere. Sino de momento gracias.De verdad , es un pu**** casos....lo reconozco cada vex que lo miro digo vaya ensaladilla rusa.....Ufff, intentare....(acabara no funcionado )..... Aix , gracias de nuevo.   
#184
General (Antiguo) / Restar vida a jugador
Julio 29, 2015, 02:14:49 PM
Hola muy buenas, tengo una duda que no se porque no me deja este script a añadirle un gameobjecr.Explico tengo una bala enemiga que colisiona con mi jugador y lo que quiero es que me reste vida y llamo al script que tiene el sistema de vida pero no me hace daño:Script de sistema de vida(que funciona bien menos con la bala)
using UnityEngine;
using System.Collections;

public class PlayerInfo : MonoBehaviour {
public GameObject Bocaarma;
public GameObject healthBottle;
public GameObject player;
public AudioClip deathClip;
public AudioClip deathClip2;
public AudioSource sonido;
public AudioSource sonido2;
public GameObject sonidoisladino;
public GameObject sonidoaguadino2;
public GameObject sonidoaguadino1;
public GameObject sonidoaguadino3;
public GameObject sonidoaguadino4;
public GameObject sonidoaguadino5;
public GameObject sonidoaguadino6;
public GameObject sonidoaguadino7;
public GameObject cave1;
public Animation muerto2;
public float length;

public int Xmin = 400;
public int Xmax = 700;
public int Ymin = 300;
public int Ymax = 800;
//public AnimationClip Die;

int health = 100;
int damageCount = 0;
int currentHealth;
bool playerFighting;
public GUIText healthbar;
float timer = 0.0f;
float healthTimer = 0.0f;
bool healthShouldRespawn = false;

public bool muerto = false;
public GameObject tuUI;

void Start () {
   currentHealth = health;
   tuUI.SetActive(false);
   }

void Update () {
   Cursor.visible = false;
   print("player in combat? " + playerFighting);
   if(!playerFighting){
      print("player is not fighting");
      if(currentHealth != 100){
         timer += Time.deltaTime;
         print ("timer: " + timer);
         if(timer > 90.0f){
            currentHealth += 10;
            timer = 0.0f;
         }
      }
   }
   else
   {
      if(currentHealth <= 0 && !muerto ){
         muerto = true;
         sonido.PlayOneShot(deathClip2);
         muerto2.Play("muerto");
         //GetComponent<AudioSource>().enabled = false;
         //GetComponent<AudioSource>().PlayOneShot(deathClip2);//length =5f;
         GetComponent<FPSInputController>().enabled = false;
         GetComponent<CharacterController>().enabled = false;
         Bocaarma.SetActive(false);
         sonidoisladino.SetActive(false);
         sonidoaguadino2.SetActive(false);
         sonidoaguadino3.SetActive(false);
         sonidoaguadino4.SetActive(false);
         sonidoaguadino5.SetActive(false);
         sonidoaguadino6.SetActive(false);
         sonidoaguadino7.SetActive(false);
         sonidoaguadino1.SetActive(false);
         cave1.GetComponent<AudioSource>().enabled = false;
      

         
         //Destroy(gameObject);


   
      }
   }
   healthbar.text = "Vida " + currentHealth + " / 100";
   
   if(healthShouldRespawn)
   {
      healthTimer += Time.deltaTime;
      
      if(healthTimer > 5.0f)
      {
         healthBottle.gameObject.SetActive(true);
         healthTimer = 0.0f;
      }
   }
   
   if(muerto){
      //var anim = GetComponent<Animation>();
      //anim.AddClip(Die,"attackbo");
      //anim.play("attackbo");
      //GetComponent<AudioSource>().PlayOneShot(deathClip2);length =5f;
      Cursor.visible = false;
      tuUI.SetActive(true);
      if(Input.GetKeyDown(KeyCode.Space)){
         Respawn();
      }
   }
   
}

public void ApplyDamage(int damage){
   damageCount = damageCount + damage;
   if(damageCount == 100){
      if(currentHealth < 0){
         currentHealth = 0;
      }
      currentHealth = currentHealth - 30;
      sonido2.PlayOneShot(deathClip);
      //GetComponent<AudioSource>().PlayOneShot(deathClip);
      //GetComponent<AudioSource>().PlayOneShot(deathClip);//length =3f;
      healthbar.text = "Health " + currentHealth + " / 100";
      damageCount = 0;
   }
   
   print(currentHealth);
}

public void playerInCombat(int combat){
   if(combat == 1){
      playerFighting = true;
   }
   else
   {
      playerFighting = false;
   }
}

public void Respawn(){
   tuUI.SetActive(false);
   muerto = false;
   transform.position = new Vector3(Random.Range(Xmin, Xmax),0, Random.Range(Ymin, Ymax));
   //transform.position = new Vector3(Random.Range(400.0f, 700.0f), 0, Random.Range(300.0f, 800.0f));
   GetComponent<FPSInputController>().enabled = true;
   GetComponent<CharacterController>().enabled = true;
   sonidoisladino.SetActive(true);
   sonidoaguadino2.SetActive(true);
   sonidoaguadino3.SetActive(true);
   sonidoaguadino4.SetActive(true);
   sonidoaguadino5.SetActive(true);
   sonidoaguadino6.SetActive(true);
   sonidoaguadino7.SetActive(true);
   sonidoaguadino1.SetActive(true);
   cave1.GetComponent<AudioSource>().enabled = true;
   ///GetComponent<AudioSource>().enabled = true;
   //GetComponent<disparosyrecargos2>().enabled = true;
   ////GetComponent<MouseLook>().enabled = true;
   Bocaarma.SetActive(true);
   currentHealth = 100;
}

void OnTriggerEnter(Collider item){
   if(item.gameObject.tag == "PlayerHealthBottle")
   {
      if(currentHealth < 100)
      {
         currentHealth = currentHealth + 50;
         item.gameObject.SetActive(false);
         healthShouldRespawn = false;
      }
   }
}
}
Lineas desde la 117 a la 128 es donde al recibir daño ejecute su función.son estas: 
public void ApplyDamage(int damage){
   damageCount = damageCount + damage;
   if(damageCount == 100){
      if(currentHealth < 0){
         currentHealth = 0;
      }
      currentHealth = currentHealth - 30;
bien eso esta claro. Ahora el de la bala:
using UnityEngine;
using System.Collections;
public class Dañodebala : MonoBehaviour {
public PlayerInfo character;
float Dano = 150;

void OnCollisionEnter


( Collision info  ){
info.transform.SendMessage("ApplyDammage", Dano, SendMessageOptions.DontRequireReceiver);
}
}
 le digo que si entra en contacto con el "jugador" le aplique el daño XXXXarriba le defino el public PlayerInfo que es donde están las variables de vida.(el script primero de arriba).Bien pues la bala impacta con mi jugador, en mi capsule collider, pero no me resta vida. No se si me explico muy bien...pero mas o menos es eso.Y no se porque!! no me hace daño, alguna idea por favor?  
#185
General (Antiguo) / Torreta que gira mal
Julio 29, 2015, 12:33:52 PM
@juanma_teso , muchas gracias por la respuesta. 
using UnityEngine;
using System.Collections;

public class rotatorreta : MonoBehaviour {

public Transform Target;
public float RotationSpeed;

void Update()
{
   var direction = Target.transform.position - transform.position;
   
   direction.y = transform.position.y;

   float angulo = Vector3.Angle(transform.forward, (Target.position - transform.position));
   transform.rotate = new Vector3 (0, angulo, 0);
   
   ///var rot = Quaternion.LookRotation(direction, Vector3.up);      
   ///transform.rotation = Quaternion.RotateTowards(
      //transform.rotation,
      //rot,
      ///RotationSpeed * Time.deltaTime);
}
}
quedaría algo asi?, pero me da un error en la variable rotate, deberia definirla?, pero n le veo la manera.Espero respuesta y gracias de nuevo. 
#186
General (Antiguo) / Torreta que gira mal
Julio 28, 2015, 05:56:29 PM
Hola muy buenas ya estoy de nuevo por aqui :),Sere breve Tengo una torreta muy molona la cual me dispara si estoy en el rango que quiero con este script que le puse:(lo dejo por si a alguien mas le sirve)
using UnityEngine;
using System.Collections;

public class enemigoataca : MonoBehaviour {

public Transform player;
public float range = 50.0f;
public float bulletImpulse= 70.0f;

private bool onRange= false;

public Rigidbody projectile;

void Start(){
   float rand = Random.Range (1.0f, 2.0f);
   InvokeRepeating("Shoot", 1, rand);
}

void Shoot(){
   
   if (onRange){
      
      Rigidbody bullet = (Rigidbody)Instantiate(projectile, transform.position + transform.forward, transform.rotation);
      bullet.AddForce(transform.forward*bulletImpulse, ForceMode.Impulse);
      
      Destroy (bullet.gameObject, 2);
   }
   
   
}

void Update() {
   
   onRange = Vector3.Distance(transform.position, player.position)<range;
   
   if (onRange)
      transform.LookAt(player);
}


}
Bien esto se pone en un Empty GO y se pone el el cañon de la metralleta o lo que sea y dispara.Bien ahora la Torreta:es esta de la foto, bien el problema es que ponga donde le ponga este scrip que a continuación pondre la torreta se gira hacia mi(jugador), si pero qde que manera da mas vueltas que una peonza arriba abajo, de da la vuelta de queda de lado etc....lo que no encuentro es la manera de que solo se gire circularmente osea dando la vuelta no que se ponga bocabajo o bocarriba.... El script que tengo en ella:
using UnityEngine;
using System.Collections;

public class TurretScript: MonoBehaviour
{

public Transform Target;
public float RotationSpeed;

void Update()
{
   var direction = Target.transform.position - transform.position;
   
   direction.y = transform.position.y;
   
   var rot = Quaternion.LookRotation(direction, Vector3.up);      
   transform.rotation = Quaternion.RotateTowards(
      transform.rotation,
      rot,
      RotationSpeed * Time.deltaTime);
}
}
Agradeceria una ayudaita , muchas gracias de antemano!!!P.D, tampoco veo la manera de que dispare mas rapido...con la fuerza lo unico que consigo es que corra mas rapido la bala no el tiempo de disparo.  
#187
General (Antiguo) / Enemigos que cruzan paredes...
Julio 27, 2015, 04:45:55 PM
[quote author=Adngel" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="15796" data-ipsquote-contentcommentid="100820">Vale, la colisión entre los bichos XD, bueno, yo es que todavía no he experimentado con bichos pequeños, lo que tengo son humanoides que siempre estoy usando el cápsule collider (por lo que es raro que terminen subiéndose uno encima del otro). ¿Tal vez esa pueda ser una solución?  O.ò

(El matarife está robado vilmente de un juego, pero es que lo amo así que nada, mi prota, es lo que hay XD).[/quote]Mola el matarifeee!!! Por fin......creo que esta arreglado, en la cueva no se . pero el plano con la barera si.Explico para posible suscriptores a este post mega tutorial Vaya se acabo la alegria.....sobre un plano funcionan bien sobre un terrain no.Si les pones solo use gravity no aparecen ni en el escenarioSi les pones solo kinematic tampoco.Si les pones los dos componentes si salen y se mueven bien pero ...cruzan todo lo que veen.....juer que ***da.....En cambio los eskeletos si les dejas solo use gravity caminan pero no se mueven y si les disparas salen volando por los aires....En fin que crucen casas yo me rindo /monthly_2015_07/pista.png.fec712b9326c07f2793b66fa0a52923c.png" class="ipsAttachLink ipsAttachLink_image">
#188
General (Antiguo) / Enemigos que cruzan paredes...
Julio 27, 2015, 04:27:17 PM
Por fin......creo que esta arreglado, en la cueva no se . pero el plano con la barera si.Explico para posible suscriptores a este post mega tutorial La barrera lleva :Mesh renderer, transform y tal y un box collider.Los gusanos!!! atención al cambio!!!Mesh renderer, Rigidbody con use gravity on!!y un box collider en vez de un sphere collider!!Ni cruzan ni se montan!!!!Voy a provar en la cueva!!! sino tiro a la basura la dichosa cueva XDD    
#189
General (Antiguo) / Enemigos que cruzan paredes...
Julio 27, 2015, 04:07:01 PM
[quote author=Adngel" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="15796" data-ipsquote-contentcommentid="100818">No, en la ventana de edicción también me pasa, esto es a lo que me refiero:

 (El bicho, sí, quería decir Sphere Collider >.<)[/quote]oh, po si , mira lo que te he puesto arriba ,por cierto muy chulo el matarife :)
#190
General (Antiguo) / Enemigos que cruzan paredes...
Julio 27, 2015, 03:54:20 PM
[quote author=Adngel" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="15796" data-ipsquote-contentcommentid="100812">¿Cómo se va a caer por el suelo?. 

Idea 1: Una cosa que me ha llamado la atención, es en el enemigo, su MeshCollider tiene un radio de 2.51, (es decir, que su esfera tiene un diámetro de 5.02, ¿no es un poco grande?), la esfera de collisión tendría que tener el tamaño más o menos del modelo. (A lo mejor está bien, a lo mejor no, depende también del tamaño general al que estés trabajando que no lo sé @_@).

Idea 2: Otra cosa que me llamó la atención en la imagen donde la cueva está seleccionada, la malla se ve en azul no en verde, esto puede ser por dos cosas.
1 - O que su Mesh Collider no está abierto en el inspector (la felchita que hay a la izquierda del nombre, despliega y contrae la información del componente, si tienes muchos compomentes pues puedes esconder algunos para no tener la lista del inspector tan larga, y abrirlo cuando te haga falta modificar algo).
2 - O que el Mesh Collider no está bien aplicado, (quizás el mesh que tiene enlazado no se corresponde correctamente al de la cueva, esto sería lo mismo que no tener Mesh Collider y sería un motivo para que el enemigo se cayese por el suelo hacia el infinito...).Idea 3: Entre otros motivos, otra razón posible es que el collider del enemigo ya está traspasando el collider del suelo, por lo que no lo detecta y cae... y cae.. y cae... Esto se podría arreglar elevando los enemigos. (Es mejor que estén en el aire y caigan al suelo, a que estén en mitad del suelo y caigan al infierno o lo que haya allá abajo.



No sé que otra razón podría ser para que traspasen la colisión de la cueva. D: [/quote]Compiii, la malla la vees azul en la foto porque no estaba el play puesto jeje cuando le das a play y quitas el maximize on play, se ve verde Lo de la Mesh Collider (que supongo querias decir sphere collider), si es grandecita el bicgo es gordito XDD y asi le doy mas facilmente con las balas juas.Lo de elevarlos los eleve, y se quedan elevados XDDD Sabes que.Ya es una cosa personal la **** cueva. me la cargare, are un plano metere un par de paredes con todo lo que pare a este bicho aver si se para....Ahora te cuento /monthly_2015_07/pista.png.fec712b9326c07f2793b66fa0a52923c.png" class="ipsAttachLink ipsAttachLink_image">
#191
General (Antiguo) / Enemigos que cruzan paredes...
Julio 27, 2015, 01:42:31 PM
[quote author=Adngel" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="15796" data-ipsquote-contentcommentid="100807">Ostias ya he caído por qué, soy algo paleto >.<

El enemigo se mueve recto y está yendo hacia el jugador, en línea recta, si el jugador está sobre el montículo, el enemigo lo mira (hacia arriba) y va en línea recta (¡a volaaar!).  Vale, también ahora que he visto las fotos ya me hago también una idea mejor de como va (yo creía que se trataban de fantasmas que volaban... @_@).

Luego hay que hacer 2 cosas, una es arreglar la rotación, (el LookAt hace su función pero cambia la rotación en los 3 ejes, por lo que hay que cuidar eso) y la otra, es el tema de la gravedad, (queremos que cuando el enemigo vaya cuesta abajo, que se quede pegado al suelo).

Añade esta línea después del LookAt y antes del MovePosition:
skelly6.transform.eulerAngles = new Vector3 (0,transform.rotation.eulerAngles.y,0);
Lo que hace es cambiar la rotación del objeto, (en Unity, la rotación se guarda en tipo Quaternion, pero aqui estoy accediendo a su versión de ángulos euolerianos que es más fácil de comprender, los ángulos eulerianos son los ejes XYZ que van de 0 a 360º (los de toda la vida vamos).

Pues eso, esta línea le dice que, después de cambiar la rotación con el LookAt, vuelva a cambiarlo dejando el eje X y Z a 0, y que el eje Y, lo deje como estaba, (es decir, mirando al jugador). Esto debería evitar que los enemigos vayan despegando.

Ahora para la gravedad, podrías activar el "Use gravity" del Rigidbody, creo que puede dar problemas en algunos casos, especialmente si el terreno se vuelve más complejo o el enemigo tiene que hacer más acciones que tenga que despegarse del suelo, pero ahora mismo que parece algo simple, creo que puede ayudar a que el enemigo vaya cuesta abajo cuando lo necesite. Así es esto, una barrera detrás de otra, pero al menos poco a poco se va avanzando.[/quote]Hola !!!, como vas maestro!!, aver he probado lo que me has indicado y explico:
      skelly6.GetComponent<Animation>().CrossFade("Walk");
      skelly6.transform.LookAt(player.transform.position);
      skelly6.transform.eulerAngles = new Vector3 (0,transform.rotation.eulerAngles.y,0);
      rb.MovePosition(transform.position + transform.forward * Time.deltaTime *3);
La linea creo que la he puesto bien.Si le pongo use gravity se cae por el espacio cual astronauta sin control.Si le pongo Kinematic no se cae pero cruza paredes.Si le quito las dos cosas no se cae, cruza paredes y poco a poco se va para abajo..( voy a trastear a ver si cambio algún afecto,Se levanta del suelo a darle el play por muy hodo que lo meta se sube medio metro y flota , no deriva pero flota.Levita xdLe he puesto de nuevo paredes con colliders de todo tipo etc las pasa como mantequilla.Gracias de nuevo por tu paciencia P.D , paleto tu?. Por dios!!! si yo no llego a medio 0 XDD    
#192
General (Antiguo) / Enemigos que cruzan paredes...
Julio 27, 2015, 09:40:52 AM
[quote author=Arthure" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="15796" data-ipsquote-contentcommentid="100797">joer @ramunda lo siento, no era mi intencion decir que fueras inutil o que molestaras (no pienso ninguna de las dos cosas). yo era un consejo para que te fuera mas gratificante la experiencia y que aprendieras mas y mejor, pero si encuentras que de este modo te sera mas provechoso o que te sera mas facil salir adelante en esta tarea, ya esta dicho.un saludo y suerte (no molestas y nadie nacio sabido)[/quote]Hola Arthure, no te preocupes , todo esta bien.Miralo de esta manera, todo lo que yo pregunto y es respondido y/o ayudado, a alguien mas les puede servir no?, aguno de los que empiezan como yo les vendra de perllas muchos de ellos (lo se por expereiencia) , no se atreven a preguntar aqui en el foro por verguenza o para qe no se rian de ellos y lo se porque me han enviado privados con scripts a ver si los podía resolver...En fin que aprender es de sabios, y los sabios y maestros de este foro les encanta ayudar :), aprendamos.@Adngel!!! dispara cundo quieras !!! :)
#193
General (Antiguo) / Enemigos que cruzan paredes...
Julio 27, 2015, 01:24:37 AM
[quote author=Arthure" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="15796" data-ipsquote-contentcommentid="100789 date=1437952065]Hola @ramunda. una pregunta por simple curiosidad, a nivel personal te sera gratificante programar un videojuego asi ? no es ninguna critica, pero creo que la gente programa en su mayoria por tres razones: con la esperanza de ganar un dinero y poder vivir de esto, como reto personal y trabajo de investigacion para adquirir nuevos conocimientos, o para satisfaccion personal al ver un trabajo finalizado (el segundo y el tercer motivo van muy ligados el uno al otro).la primera razon, la economica, a nuestro nivel esta casi descartado y lo consiguen el 0.1%la segunda razon, trabajo de investigacion, en tu caso esta claro que tambien se puede descartarpor eso te preguntaba si te sera muy gratificante programar un videojuego como lo estas haciendo, porque si no es asi es un problema (no hay ninguna razon para rom*** la cabeza en realizar un curro como este). como consejo yo te diria que trataras de hacer un poco mas de trabajo de investigacion, puede resultar un poco tedioso pero si te gusta esto, no esta tan mal y encima te resultara mucho mas gratificante al lograrlo.no es muy normal exponer una duda, y cuando te dan una orientacion seguir sacando mas dudas sobre el mismo tema varias veces al dia. con la primera orientacion tienes una base para investigar. hay personas que "investigar" sobre un mismo tema les lleva varios dias a base de buscar informacion, probar y reprobar, es la mejor manera de aprender. si te responden una duda y tu investigacion a partir de esa orientacion es de 5 minutos, sinceramente no creo que aprendas nada, y menos aun (si cabe) que termines un proyecto.todo esto no es mas que un consejo de buen rollo, un saludo[/quote]@Arthure, siento ver que molesto, te doy la razón en casi todo , si que he investigado y mucho,pero la mayoría de foros/respuestas que veo están en ingles, y me pierdo fácilmente. Aqui entiendo perfectamente como hablan hay gente maja, muyyy maja, cojonuda y otros pues que piensan que ayudar a un novato no les va. Y lorespeto por supuesto. Entiendo que los inútiles como yo os molesten, seamos cansinos, y todo lo que digas te dare la razón, pero has pensado que a lo mejor personas como @Adngel les conforta ayudar a inútiles como yo?, nadie te obliga a que me respondas, ayudes o tan siquiera me dirijas la palabra si no es de tu agrado.Y si , la unica razón porque  estoy malgastando mi tiempo en hacer un videojuego , es ademas de aprender(que aprendo), me olvido que hace un año me llevo por delante un coche y me quede en silla de ruedas para toda la vida, lo único que me distrae/relaja es intentar aprender crear un videojuego que nunca venderé y solo lo jugare yo y 3 amigos mas,pero sera algo que a lo mejor con dos piernas no habría echo, y ahora sentadito si me apetece.Pero respetuosamente te digo, si molesto a alguien mas que me lo diga y me voy con mi silla a otra parte.Buen rollo.Y buenas noches.     
#194
General (Antiguo) / Enemigos que cruzan paredes...
Julio 27, 2015, 12:12:58 AM
Me alegro compi que el curro te se de provecho
#195
General (Antiguo) / Enemigos que cruzan paredes...
Julio 26, 2015, 12:27:49 PM
@Adngel, de nuevo gracias por tu tiempo y conocimientos, espero que te sea leve el trabajo :).Estudiando tus palabras:
using UnityEngine;
using System.Collections;
public class skellyattack13 : MonoBehaviour {
   public GameObject player;
   public GameObject skelly6;
   public float distance;
   public PlayerInfo character;
    public Vector3 teleportPoint;
    public Rigidbody rb;
   // Use this for initialization
   void Start () {
   rb = GetComponent<Rigidbody>();
   }
   
   // Update is called once per frame
   void Update () {
      
   player = GameObject.FindWithTag("jugador");
   skelly6 = gameObject;
   distance = Vector3.Distance(player.transform.position,skelly6.transform.position);
      
      if (distance <= 4) {
      skelly6.GetComponent<Animation>().CrossFadeQueued("Walk", 0.3f, QueueMode.PlayNow);
      skelly6.GetComponent<Animation>().CrossFade("Attack");
      character.ApplyDamage(1);
      character.playerInCombat(1);
      }
      else if (distance < 50 && distance > 4.0f) {
      ///GetComponent<FollowPath>().enabled = false;
      skelly6.GetComponent<Animation>().CrossFadeQueued("Attack", 0.3f, QueueMode.PlayNow);
      skelly6.GetComponent<Animation>().CrossFade("Walk");
      skelly6.transform.LookAt(player.transform.position);
      //transform.position = Vector3.MoveTowards(transform.position, player.transform.position, 0.30f);
      rb.MovePosition(transform.position + transform.forward * Time.deltaTime);
         
      }   
      else
      {
      skelly6.GetComponent<Animation>().CrossFadeQueued("Walk", 0.3f, QueueMode.PlayNow);
      skelly6.GetComponent<Animation>().CrossFade("Idle");
      ///GetComponent<FollowPath>().enabled = true;
      character.playerInCombat(1);
      }
   }
   
   
}
La linea substituida:
//transform.position = Vector3.MoveTowards(transform.position, player.transform.position, 0.30f);
por esta:
rb.MovePosition(transform.position + transform.forward * Time.deltaTime);
Bien , sin errores, pero(ya esta el pero transform.position, 0.30f);
le decia lo rapido que venia hacia mi...que era probablemente el echo de que se saltara todo, pero ahora se lo sigue saltando....Y me queda una sola cosa mas:
void FixedUpdate() {
Esto es lo mismo que el void Update?? , es un fixed pero no veo la dierencia.Espero que termines tu laburo y por aquí nos vemos , un abrazo!!   
[quote author=kaito" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="15796" data-ipsquote-contentcommentid="100771 date=1437904678]@ramunda, supongo que las animaciones "walk" y "attack" tienen claves de posición, es decir, que cambia de posición mientras realizar la animación. Pues según tengo entendido, el componente Animation no tiene la opción 'Apply Root Motion' en las físicas, y seguirá traspasando objetos y otros personajes. Utiliza el componente Animator, o traza un rayo para detectar un obstáculo antes de aplicar las animaciones en base a una distancia, entre 50-4.[/quote]@Kaito, gracias por el aporte, si eso creo que si porque cuando ataca si te giras el se gira tambien hacia mi y sigu atacando....con el animator...ufff, y lo del rayo que supongo que te refieres al Raycast....esa cosa me odia nunca la super hacer funcionar :(. un abrazo amigo,