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 (http://unityspain.com/profile/18127-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.