Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Detener un script de java desde codigo c#?

Iniciado por ramunda, Junio 29, 2015, 10:51:32 PM

Tema anterior - Siguiente tema
Hola , alguna idea de como detener un script que es de JS , detenerlo desde el codigo c#? de c# a c# no he tenido problemas pero al reves si...
 
Ejemplo del No funciona.
 
El nombre de el script de java que se esta ejecutando y quiero detener en un momento de deteccion de un enemigo es FollowPath
 
Aqui lo intento detener desde c#

else if (distance < 50 && distance > 3.0f) {
      GetComponent<FollowPath>().enabled = false; /// aqui lo intento parar...
      skelly1.GetComponent<Animation>().CrossFadeQueued("SwingHeavy", 0.3f, QueueMode.PlayNow);
      skelly1.GetComponent<Animation>().CrossFade("Run");
      skelly1.transform.LookAt(player.transform.position);
      transform.position = Vector3.MoveTowards(transform.position, player.transform.position, 0.30f);
      character.playerInCombat(1);

Agradecería una idea.
 
 

Por que programar la mitad C# y la mitad JS es una muy mala idea, por que no pasas todo a C# y listo.

Cita de: francoe1 date=1435681589Por que programar la mitad C# y la mitad JS es una muy mala idea, por que no pasas todo a C# y listo.
 
@francoe1 , no soy tan habilidoso como para eso  

Es un poco chapucero pero yo lo que haria seria poner en el JavaScript una variable boleana publica y un if con un return en cada funcion o evento que no quieras que se ejecute cuando esa variable este a false. Eso es lo que te puedo decir sin conocer el problema en especifico.
 
Saludos.

Yo pasaría todo a 1 lenguaje, que no se puede...entonces..


Pues crea una funcion Detener(){...} en el JS, que haga lo que dices, y llámala desde el SendMessage("Detener");..deben de estar en el mismo objeto, sino es asi...tendria que ser elObjeto.SendMessage("Detener");

Muchas gracias por las respuestas esr y Kalua66, las dos soluciones me han ayudado y mucho,  y a raiz de eso he encontrado una solución aun mas facil, explico.
 
Evidentemente de JS a C# no se pueden ver....pero, si pones el script en Assets /Standard Assets resuslta que sea cual sea el script js/c# ; unity lo hace localizable al estar entre sus librerias de transito por asi decirlo....te lo marca en rojo...pero lo para!!!
 
Aquí el ejemplo:

else if (distance < 50 && distance > 4.0f) {
      GetComponent<FollowPath>().enabled = false; ///aqui lo paro!!
      skelly6.GetComponent<Animation>().CrossFadeQueued("Attack_01", 0.3f, QueueMode.PlayNow);
      skelly6.GetComponent<Animation>().CrossFade("Run");
      skelly6.transform.LookAt(player.transform.position);
         transform.position = Vector3.MoveTowards(transform.position, player.transform.position, 0.30f);

aqui no se aprecia pero te lo marca en rojo, pero no te da error como antes y realmente hace el trabajo de pararlo.
 
REPITO muchas gracias por la ayuda sin vosotros no habría llegado a este punto!!, soys geniales!!

Pues yo soy de la forma de pensar de esr, me parece muy cómodo el sistema de interruptores para detener e iniciar funciones, sobretodo para IA.
 
Saludos.

Coje el java o unityscript y conviertelo a C# en M2H Convert unity script to C busca en google.
 
no es dificil tampoco hacerlo manualmente de paso aprendes algo de unity Script

Cita de: Braulio Leon Madrid date=1436580965Coje el java o unityscript y conviertelo a C# en M2H Convert unity script to C busca en google.
 
no es dificil tampoco hacerlo manualmente de paso aprendes algo de unity Script
 
Gracias Braulio lo buscare un saludo.

Etiquetas: