Jump to content
UnitySpain

Search the Community

Showing results for tags 'ayuda'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Inicio
    • Proyectos
    • Offtopic
    • Unity Feeds
    • Website
  • Mesa de ayuda
    • Unity
    • Arte
    • Otras Especialidades
    • Builds & Dispositivos
  • Aportes de la Comunidad
    • Recursos
    • Eventos
    • Buenas Prácticas
  • Bolsa de trabajo & Colaboraciones
    • Ofertas y Demandas
  • Post Antiguos
    • General (Antiguo)

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Especialidad

Found 139 results

  1. Bien, esto es complicado de explicar, así que me tomare mi tiempo: Como ya saben, y si no saben yo les explico, en Unity 3D hay dos modos de hacer Scripts de Movimiento, el primero es moviemto a tu personaje con un Script, y usar animaciones en la que el personaje se encuentra caminando sobre su mismo sitio, sin desplazarse realmente, y el segundo es usar animaciones en las que el personaje se despasa de su punto de origen, y dejar que sean las animaciones las que muevan al personajes, y vía script solo controlamos en AnimatorControler. Mi proyecto es de este segundo tipo. En general el proyecto funciona correctamente, el problema yace en que mi personaje principal esta formado por varias partes; estas serian "Cuerpo, Casco, Peto, Calzas, Botas, Guantes, Cinturón, Armas y Extras". Todas con el mismo esqueleto, y todas compartiendo las mismas animaciones. Esto lo hago de este modo, porque el personaje tiene la capacidad de cambiar su equipamiento. El problema es que, si a todas estas partes les pongo un CharacterController, al mover al personaje, los CharacterControllers se empujan entre si, y todo se me desacomoda, y si solo le pongo un CharacterControler a uno de ellos, cuando este colisiona con algo, todos los demás siguen su camino y el personaje se me desacomoda. Además de que por la estructura del juego, me resulta mas fácil que todas las piezas se encuentren dentro de un mismo GameObject, que sea el que lo mueva todo, pero de ser así, los "hijos" se moverán gracias a sus animaciones, mientras que el padre se quedara en su sitio, sin poder detectar colisiones. La solución a este problema, fue colocar todas las piezas dentro de un GameObject, y a ese GameObject añadirle el CharacterController y con el siguiente código corregir la posición; private void CorrecionDeTransformaciones() { transform.position = transform.GetChild(0).transform.position; transform.rotation = transform.GetChild(0).transform.rotation; transform.localScale = transform.GetChild(0).transform.localScale; for (int i = 0; i < transform.childCount; i++) { transform.GetChild(i).localPosition = Vector3.zero; transform.GetChild(i).localRotation = Quaternion.identity; transform.GetChild(i).localScale = Vector3.one; } } Como ven, la solución fue sencillamente igualar la posición, rotación y escala del Padre al de el primero de los hijos, y después devolver la posición, rotación y escala de todos los hijos, a "ceros". Y hasta cierto punto funciona bien. El problema es que cuando el personaje se topa con una pared, empieza a vibrar muy bruscamente. Me imagino que lo que pasa, es que el CharacterControler devuelve al personaje a su posición anterior, y luego mi script lo hace avanzar. La función anteriormente mostrada la ejecuto en un "LateUpdate()", pero me imagino que para que este código funcione correctamente, sin "convulsiones", es necesario que se ejecute justo después de las colisiones del "CharacterControler". ¿Alguien sabe como corregir este problema?, ¿En que evento llamar mi función? o ¿Cómo adaptar mi código? De antemano, gracias por leer.....
  2. Ayuda!!!.... estaba trabajando en un proyecto, pero debido aun fallo en mi computadora, me mude a otra distinta, y aprovechando, actualice el Unity a la versión mas reciente (la 2019). Y ahora TODOS mis scripts fallan, todos arrojan el mensaje "No MonoBehavior script in this file", incluso si creo un Script nuevo, sin ningún tipo de modificación, arroja el mismo error. Además, si abro el Visual Studio (2017, para ser mas exactos) para editar los scripts, aparece el mensaje; "Se detecto una excepción que puede estar causada por una extensión", y no me detecta las Clases de Unity. Alguien sabe que pasa y como puedo solucionarlo. Y antes de que lo digan, El nombre de archivo de mis scripts es el mismo que el de su clase, y a su vez tienen su referencia a la clase "MonoBehavior".
  3. Hola amigos, Requiero un poco de su sabiduría, alguien sabe como integrar google maps? como acceder al GPS? Es para un proyecto que tengo en mente, pero por mas que he buscado no encuentro la forma.
  4. Saludos a todos. Para facilitar más datos a los usuarios, acerca de cómo funciona internamente la Comunidad y cómo es su actividad diaria y su gestión, he decidido ponerme a vuestra disposición a través de un servicio de información al usuario. Algo así como un soporte HelpDesk. Esto es, Todos los Sábados, durante el siguiente horario: 11:00h - 20:00h (GMT+2, España) / 06:00am - 15:00h(GMT-3 Argentina) estaré a vuestra disposición, por el medio que más os guste, para tratar temas cómo: Información Técnica de los foros.Cambios que estamos haciendo.Objetivos de la Comunidad.Proyectos y Grupos.Eventos.Datos de la Comunidad, Estadísticas.Sugerencias.Espero que os parezca buena idea y así resolver todas vuestras dudas sobre UnitySpain.com
  5. Ok, tengo un problema. Tengo el siguiente Script: using UnityEngine; using System.Collections; public static class DataParticle { public static GameObject ItemCurativo; //[01] public static GameObject PociónRoja; //[02] public static GameObject PociónAzul; //[03] public static GameObject PociónVerde; //[04] public static GameObject PociónAmarilla; //[05] public static GameObject PociónMorada; //[06] public static GameObject PociónNaranja; //[07] public static GameObject PociónCeleste; //[08] public static GameObject PociónBlanca; //[09] public static GameObject PociónNegra; //[10] public static GameObject Comida; //[11] public static GameObject Bebida; //[12] public static GameObject GetItemCurativo (){ return ItemCurativo; } public void SetItemCurativo(GameObject Entrada){ ItemCurativo = Entrada; } } Hasta aquí todo bien, no provoca error, y puede llamarlo desde otros Scripts sin tener que inicializarlo ni anclarlo a un objeto en la escena, que es lo que deseo. El problema es que no me deja cargar mis prefabs en las variables GameObject en el inspector. En teoría, seleccionando el Script en Unity, te permitiría inicializar las variables. Pero no me deja, muestra un mensaje que dice; "No Monobehaviour scripts in the file". Saben como solucionar el error?.
  6. Ok, no se donde mas publicar esto, así que lo publicare aqui. Hace tiempo, ya casi 2 años, subí un asset a la asset store. En ese momento no tenia una cuenta de PayPal, pero segun tenia entendido, una vez hecha la cuenta de Asset Store Publisher, y vinculada con PayPal, Unity te paga tus ventas a finales de cada mes. La cosa es que pasaron unos dos o tres meses, y mi asset no se vendia, asi que me desilusione, y ya no me moleste en hacer esa cuenta de PayPal. Pero recientemente me voy enterando de que ese Asset se ha estado vendiendo en estos últimos años, y con las tonterias ya son casi 100 Dolares los que se han juntado. (100 Dolares en 2 año no es mucho, pero los quiero). Ya hice la cuenta de PayPal, y ya la vincule con mi cuenta de Asset Store Publisher, mi pregunta es, ¿A finales de este mes me pagaran ese dinero que se ha estado acumulando,? o ya mejor lo doy por vencido.
  7. Hola, tengo el siguiente problema. Tengo un juego completado pero tengo un problema y es que las fisicas de lo que son las motos noto que algo esta mal, el problema es que se maneja con el touch de la pantalla y girando el movil,por ejemplo, si saltas y vas por el aire y en el aire intentas balancear la moto, cuando la moto baja de detras o la bajas de delante funciona bien el problema es que si la bajas por ejemplo de la parte trasera y subes la delantera y luego intentas equilibrarla o ponerla al contrario, al pasar por el angulo 0 (angulo medio) como que se queda congelado una milesima de segundo. He intentado de todo pero no consigo solucionarlo, si levantar la moto de delante es angulo positivo y el bajarla hacia abajo es angulo negativo, al cambiar de positivo al negativo es cuando entra ese freezetime, alguien me podria ayudar porfavor? Gracias de antemano
  8. Hola comunidad, como están? Espero que bien. Les cuento, estoy trabajando sobre un nuevo proyecto, orientado más al horror survival, con un estilo a resident evil 4 y algunas ideas tomadas de Zombie Army trigology (creo que así se escribe). Hace un mes que estoy trabajando en el modelado, animaciones y script. Es mi primer proyecto en unity que tomo en serio, por eso armo este post para que me ayuden con algunas cosas que desconozco. Más adelante subiré un review del tutorial, estoy muy conforme con el resultado que estoy teniendo Una de mis primeras dudas, la ambientación de juego de este estilo, que es lo que debería tener? Mejor dicho, como empezar a plantearlo? Que es lo debería moldear? Que me recomiendan hacer y que no? Actualmente en el tutorial tengo implementado un fog, ambientación tarde/noche, con sombras y medio como en un pueblo... Ahí surge otra duda, al usar árboles con el terreno, el juego baja exageradamente los fps, intente bajarla la calidad de sombras y eso, pero no obtuve resultado, saben como solucionar eso? O como optimizar lo más posible el juego? La idea es que hasta las latas puedan jugar a este juego Otra duda es que mis partículas salen con cuadrado, podríamos decir que la textura de fuego sale bien pero su alrededor está tomando como si fuera un cube, no se por qué Esas son dudas por el momento hasta que suba un review... Por cierto, conocen alguna documentación en donde explique como funciona la publicación de un proyecto? Como funciona el copyright de texturas en juegos? Que ocurre si con la licencia personal de unity si publico el juego en steam? Si se publica y el juego se pone como gratuito, hay ganancias, partnes o algo? Disculpen mi inocencia pero hace un mes pensé que era imposible lo que estoy haciendo ahora, y lo estoy logrando Saludos grandes y gracias!! (si quieren dar alguna opinión o idea para implementar díganmela, todo es bienvenido
  9. Supongamos una escena tal que tenemos un planeta (esfera) y una nave (GameObject). Quiero hacer que si la nave se acerca lo bastante al planeta, se produzca un efecto de entrada en la atmósfera. Al principio había pensado, en que si la nave se acerca mucho al planeta o si directamente colisiona con el collider, cargar la siguiente escena, que sería una animación de la entrada al planeta y luego cargar otra escena donde tenga un terreno ya definido de la superficie del planeta. Pero me parece un poco "feo". Yo pensaba en si es posible hacer algo como esto: Gracias
  10. Hola que tal tengo un problema en lo que estoy trabajando es shooter en el cual tengo una barra de energia y otra de vida , al momento de disparar se me gasta la de energia (obvio) pero puedo seguir disparando consumiendo desde la barra de vida hasta ahi todo bien, pero en el caso que ya eh usado casi toda la vida si un enemigo me hace daño esta vuelve al valor de 100 osea no hay interaccion entre los scripts 1 me sirve para el daño que recibo de enemigos y el otro para el auto daño para disparar si alguien me puede orientar plis
  11. Hola querìa saber como hago para usar esta misma script pero cambiar el rigidbody por un character controller, gracias de antemano [RequireComponent(typeof(Rigidbody))] public class ThirdPersonControllerCustom : NetworkBehaviour { Rigidbody _rb; Animator _anim; Transform _Cam; FreeLookCam _FreeCam; public float Velocity; // Use this for initialization void Awake () { _Cam = Camera.main.transform; _rb = GetComponent<Rigidbody> (); _anim = GetComponent<Animator> (); _FreeCam = GameObject.FindObjectOfType<FreeLookCam> (); } // Update is called once per frame void Update () { if (!isLocalPlayer) return; if (_FreeCam.Target != transform) _FreeCam.SetTarget(transform); if (_anim.GetCurrentAnimatorStateInfo (0).IsName ("Locomotion")) { float vertical = Input.GetAxis ("Vertical"); if (vertical > 0) { _anim.SetFloat ("Velocidad", vertical); transform.eulerAngles = new Vector3 (transform.eulerAngles.x, _Cam.eulerAngles.y, transform.eulerAngles.z); _rb.velocity = transform.forward * Velocity * vertical * (Input.GetKey (KeyCode.LeftShift) ? 2 : 1); } if (Input.GetMouseButtonDown (0)) { _anim.SetTrigger ("Ataque"); Ray r = Camera.main.ScreenPointToRay(Input.mousePosition); } } } }
  12. Hola gente buenas noches, estoy trabajando en las fisicas de un motor de juegos y tengo un problema que no logro resolver, quiza la respuesta sea simple pero llevo horas con ello y no logro entender el porque. El problema es el siguiente: //Velocidad del cuerpo del personaje var v = _body.velocity; //Rota el angulo alrededor del eje y, Angle:-90 var o = Quaternion.AngleAxis(Angle, Vector3.up); //Regresa la velocidad del cuerpo rotada en el angulo inverso var rv = Quaternion.Inverse(o) * v; //Regresa la velocidad para moverse var speed = Walk.Speed //Obtiene la acceleracion y desaceleracion de camino o del aire var acc = _Walk.Acceleration; //Si se esta moviendo movement:1 speed: 5 dt:deltatime acc:20 rv.z = Mathf.Lerp(rv.z, _movement * speed, dt * acc); rv.x = 0; v = o * rv; _body.velocity = v; Ese es todo el codigo, aclaro nada mas dentro del proyecto afecta el movimiento del objeto y su rotacion es de -90 grados igual que Angle, pero cuando la posicion inicial del objeto esta en 0 en el eje Z, se mueve tanto en x como en z y cuando tiene una cantidad en la posicion inicial del eje Z se mueve solo en x. Si alguien tiene alguna respuesta para esto se lo agradeceria mucho.
  13. No sé ha pasado... me puse a crear unas cuantas animaciones, e iba todo correctamente... Pero después de un rato sin tener ningún problema, pasó que intenté animar las rotaciones de un objeto, pero me ocurrió ESTO... Por si no se entiende el enlace: * Lo que hice fue rotar el objeto SOLO 90º aproximadamente, para que se añadiera un keyframe, pero como veis al pulsar el botón Play la rotación se vuelve completamente loca. No sé cómo solucionarlo! Cerré Unity, lo volví a abrir, y nada. Reinicié PC, nada. Reinstalé Unity al completo, y tampoco... Probé a animar las rotaciones de un cubo en otro proyecto totalmente nuevo, y allí sí que funcionaba bien! Una solución entonces podría ser migrar el proyecto entero a uno nuevo, pero es demasiado grande actualmente, así que mejor dejemos eso como último recurso. Mencionar que yo no toqué nada, casi podría decir que ocurrió al azar. Es primera vez que me pasa. Ojalá alguien me pueda dar soluciones alternativas. Muchas gracias :'b
  14. Buenas, vengo por acá a consultar si alguien ha tenido problemas con la versión de Unity 2017.2.0f3, tengo un proyecto que he venido trabajando creo un script y al intentar asociarlo me sale la captura de pantalla que adjunto en el mensaje, el script que estoy tratando de asociar solo tiene la siguientes lineas de código: using UnityEngine; using UnityEngine.UI; using System.Collections; public class ExampleClass : MonoBehaviour { public void Button_Onclick() { Debug.Log("Dio Click"); } } lo que intento es primero, capturar las coordenadas del mouse con un botón centrado en mi escena a través del evento clic, luego mantener en el centro de la escena el cursor y dejarlo salir con la tecla ESC, si alguien a trabajado algo similar se lo agradecería, Fenix discom realizo unos vídeos para lo que necesito pero en Unity 5 no funcionan les dejo el enlace del vídeo, espero me puedan ayudar saludos desde Colombia.
  15. Hola buenas, Soy samuel encantado. Estaba pensando en hacer un juego en 2D con unity y estaba pensando en un plataformas o algo rollo Hack N Slash y me preguntaba si tenéis algún tutorial o manual por ahí a mano con el que poder comenzar, o algún consejo. Gracias adelantadas. Un saludo
  16. Buenas!!! Buen dia!!!! Introducción: Como algunos saben estoy trabajando en un projecto que me es muy importante para mi, de no saber nada de programacion a meterme en este mundo desde 0, aprendiendo varios idiomas hace 4 meses, y empece a programar junto con Unity, lo que voy aprendiendo lo vuelco en este proyecto que lo vengo haciendo solo, esperando obtener buenos resultados! y metiendo le mis mejores energías a esto! KUBOI ® : https://vimeo.com/236833302 Bueno resulta que estoy en una nueva mecanica innovadora que hasta ahora no la e visto: (Obviamente esto es bien criollo en el diseño artístico voy a incluir marcas en las rotaciones y mejorar algunas tonalidades) Necesito de ustedes ya que comencé esto solo y necesito ayuda a nivel avanzado matemático, me esta costando mas de lo que esperaba... (Van a obtener algo a cambio y es ser nombrados y valorados en parte del equipo que me ha ayudado a poder hacer esto posible, los que me ayuden en esta mecánica) Ademas de ser nombrados y valorados les voy a dar una Copia original digital, del juego completo. Desarrollo: La cuestion es asi, necesito ayuda en el "ambito" radial de matematica y el manejo de los ejes XYZ. Mi problema es el siguiente(vamos con ejemplos claros): Este es mi problema, miren la direccion que se supone que deberia saltar, y miren como salta... ESTO DEBERIA SUCEDER: Presten atencion, si no entienden releean, voy a ser claro. La camara de escena que veran acontinuacion es una vista derecha(es decir sin ser rotada) Explico: Tengo programado que el Raycast AZUL al ser golpeado en cuanto se poscicione el cubo en este caso salte apartir de ahi Las lineas VERDES son dibujadas como referencia Si escribo MODO ILUSTRATIVO es por que no SUCEDE, sino que es lo que necesito que SUCEDA BoxJump: El gameObject con script de Salto o empuje (En este post solo muestro a modo de representación el salto) Lean todo con atencion porfavor :) Transform del BoxJump: Position: -1,-1,-8 Rotation: 270,0,270 Esas imagenes representan como lo tengo programado actualmente Si me posiciono donde empieza la linea verde se ejecuta el salto con una longitud X y altura X ACA NECESITO SU AYUDA: Como pueden Observar el salto se provoca asi talcual con una longitud X y altura X El salto no es una animacion, es un calculo matematico radial que calcule, es muy basico, necesito algo mas avanzado Este es el calculo que hice, que provoca lo siguiente: Esta desmeruzado por completo, solo posteo el calculo matematico, y voy explicando que es lo que necesito mejorar y alcanzar con la matematica. https://ghostbin.com/paste/au2tg (Esta plasmado lo que importa) Entonces ilustremos esto: Hasta ahora explique muy clarito (sino releean porfavor y si se sigue sin entender avisenme) lo siguiente: Veamos de vuelta esta imagen: Con el calculo mostrado en el "Pastebin" anterior (y obviamente si saben matematica) deberian entender esto y el calculo matematico que aplique. AHORA VIENE LA CUESTIÓN: YO NECESITO ESTO: (Modo ilustrativo, esto no sucede. Sucede lo anterior mostrado) Si prestaron atención, un poco mas arriba, escribi el transform del BoxJump, miren la rotacion (270,0,270) Esta rotado, okey? Pero si se fijan en la Segunda de las primeras dos imagenes, el salto se provoca como si el BoxJump estuviese en una rotacion de (0,0,0) Ya que el algoritmo del script que les mostre, "SALTA/SE EJECUTA" DESDE el punto de "golpeo y acomodo" del Player (donde golpea el raycast AZUL) y desde ahi hace esto: (Como si BoxJump estuviese en Rotation: 0,0,0) PERO QUE EN REALIDAD DEBERIA SUSEDER ESTO (Modo ilustrativo) Ya que BoxJump tiene una rotacion 270,0,270 yo quiero que se RESPETE El sistema RADIAL La cuestion aca es: El calculo matematico radial, no necesitaria cambiarse, PERO alguien se le ocurre alguna forma de que player.transform.position en sus coordenadas XYZ sea afectado como merece ser afectado, si BoxJump esta rotado el player si golpea el HIT va a ir hacia donde yo quiero que vaya, que respete la rotacion, el sistema radial. Si observan el primer GIF, salta bien Cuando piso el BoxJump que estoy mostrando como ejemplo Por que salto bien?: Bueno la cuestion es simple, miren esto(De vuelta): (Presten atencion a los EJES XYZ de la escena) Si yo hago roto el mundo pasa esto: El mundo lo rote (ROTE EL GAMEOBJECT QUE CONTIENE EL NIVEL, OSEA QUE TODOS SON HIJOS DE "LEVEL" ROTE LEVEL) LAS ROTACIONES DE LOS HIJOS SIGUEN INTACTAS, YA QUE SUS TRANSFORM LOCAL NO CAMBIARON SOLO LA DEL PADRE Por esta razon, en el gif del principio el player ejecuto bien el salto, PERO cuando el mundo gira de vuelta Revisemos de vuelta esto: Entienden lo que me sucede??? La el TRANSFORM QUE CAMBIA DEL PLAYER NO RESPETA COMO QUIERO QUE SEA RESPETADO IDEAS? ESUCHO PROPUESTAS ETAPA 2 DEL POST: Estoy hace una hora y media haciendolo va bien resumido. En cuanto a la parte matematica avanzada Necesito un nuevo calculo matematico donde pueda calcular NO solo el Largo y la Altura del salto, que tambien no solo caiga asi: Que ademas pueda -> Esto es MUY avanzado a nivel matematico, no se si puedan ayudarme en esto pero lo agradeceria mucho. Conclucion: Les agradezco mucho de ante mano cualquier aporte que me hagan, espero con ansias respuestas, ideas, y demas (Seran notificado si me aportaron y me voy a poner en contacto para avisarle que va a pertenecer al grupo del desarrollo). Abrazo a todos enelmenu
  17. Hola tengo un problema que es que cuando le doy play para ver como va mi juego mi personaje se encoge de tamaño. Por si no entendieron se me hace más chico del tamaño en que lo tengo en la escena. De código no creo que sea problema pero si alguien sabe por favor responda gracias.
  18. Hola, bueno directo al punto, alguno de ustedes sabe como integrar scorm a unity? , estoy desarrollando un juego para capacitaciones desde unity y tendré que subirlo a cornerstone pero necesitan que el juego se comunique con la plataforma y para eso necesito integrar SCORM, pero aún no encuentro como. Gracias de ante mano
  19. Como lo dice el Titulo, como podría mediante un script, cambiar el tipo de material de "Opaco" a "Transparente". Es decir, permitir que se transparente.
  20. Buenas tardes, agradecería por favor una mano en un pequeño problema que tengo. Estoy terminando un proyecto y ahora me encuentro con esto... La cosa es sencilla , tengo un simple inputfield el cual me deja insertar lo que quiera.. Lo que intento es capturar esa String en un playerpreff para luego usar ese texto en otra pantalla. Prove esto; using UnityEngine; using UnityEngine.UI; using System.Collections; using System.Collections.Generic; public class Loguin : MonoBehaviour { public InputField insertarcodigo; string codigo; void Start() { PlayerPrefs.SetString("Codigo",codigo); PlayerPrefs.Save(); } void Update() { if (Input.GetKeyDown ("space")) { codigo = insertarcodigo.text; PlayerPrefs.GetString ("Codigo"); //Debug.Log ("El codigo es:" + codigo); Debug.Log ("El codigo es:" + PlayerPrefs.GetString ("Codigo")); } } } pero nada, cuando llamo al pref GetString pensaba que me cojeria la string de codigo pero no. si le llamo al debug directamente a la string(codigo), si me lo da pero lo que quiero es que me la guarde y no lo hace. Agradecería una ayuda por favor, asi puedo terminar este proyecto. muchas gracias de antemano.
  21. Pues resulta que estaba haciendo una scrip (no, en serio) y pues la idea es que la script haga una puerta deslizante osea que se abra cuando entro y se cierre cuando salgo y pues cuando entro, da la animación de abrir pero cuando salgo la animación no funciona y el collider que es para que el jugador no pase no se vuelve a activar, lo mismo con las booleans aquí el código public class dooropen : MonoBehaviour { public GameObject collisionobject; public GameObject DoorAnimator; private Animator animate; public void OnTriggerEnter(Collider other) { if (other.tag == "Player") { animate = DoorAnimator.gameObject.GetComponent<Animator>(); animate.SetBool ("isOpen", true); collisionobject.SetActive (false); Debug.Log ("entered"); } } public void OntriggerExit(Collider other) { if (other.tag == "Player") { animate = DoorAnimator.gameObject.GetComponent<Animator>(); animate.SetBool ("isOpen", false); collisionobject.SetActive (true); Debug.Log ("exit"); } } }
  22. Pues resulta que estaba haciendo una scrip (no, en serio) y pues la idea es que la script haga una puerta deslizante osea que se abra cuando entro y se cierre cuando salgo y pues cuando entro, da la animación de abrir pero cuando salgo la animación no funciona y el collider que es para que el jugador no pase no se vuelve a activar, lo mismo con las booleans aquí el código public class dooropen : MonoBehaviour { public GameObject collisionobject; public GameObject DoorAnimator; private Animator animate; public void OnTriggerEnter(Collider other) { if (other.tag == "Player") { animate = DoorAnimator.gameObject.GetComponent<Animator>(); animate.SetBool ("isOpen", true); collisionobject.SetActive (false); Debug.Log ("entered"); } } public void OntriggerExit(Collider other) { if (other.tag == "Player") { animate = DoorAnimator.gameObject.GetComponent<Animator>(); animate.SetBool ("isOpen", false); collisionobject.SetActive (true); Debug.Log ("exit"); } } }
  23. Buenas noches , tengo un dilema con una bola de un juego tipo "arkanoid" que estoy montando. Todo va bien excepto cuando la bola vuelve a la plataforma , allí deberían resetearse las fisicas que le aplico en el start. Para ello uso la función de el Rigidbody2D y lo pongo en kinematico, creía que con esto bastaria....pero no , cada vez que renace la bola va mas rápida, evidentemente esta duplicando la fuerza asignada en el start....pero no se porque! Espero que puedan ayudar. Alla va el script: using UnityEngine; using System.Collections; public class BallScript : MonoBehaviour { private bool ballIsActive; private Vector3 ballPosition; private Vector2 ballInitialForce; public GameObject playerObject; public AudioClip hitSound; AudioSource audio; private Rigidbody2D rb; void Start () { rb = GetComponent<Rigidbody2D>(); ballIsActive = false; ballInitialForce = new Vector2 (50.0f,300.0f); ballPosition = transform.position; audio=GetComponent<AudioSource>(); } void Update () { if (Input.GetButtonDown ("Jump") == true) { if (!ballIsActive) { ///reseteamos la fuerza? rb.isKinematic = false; rb.AddForce (ballInitialForce); ballIsActive = !ballIsActive; } } if (!ballIsActive && playerObject != null) { ballPosition.x = playerObject.transform.position.x; transform.position = ballPosition; } } void OnCollisionEnter2D(Collision2D collision) { if (ballIsActive) { audio.PlayOneShot (hitSound); } if (collision.gameObject.tag == "mata") { if (ballIsActive) { Debug.Log ("muere"); ballIsActive = !ballIsActive; ballPosition.x = playerObject.transform.position.x; ballPosition.y = -4.5f; transform.position = ballPosition; rb.isKinematic = true; playerObject.SendMessage ("TakeLife"); } } } }
  24. Supongamos que tengo el siguiente código que controla la variable vida de un enemigo: public class EnemyHealth : MonoBehaviour { float currentHealth; float amount = .5f; float maxHealth = 100; public float CurrentHealth { get { return currentHealth; } set { currentHealth = value; } } void Update() { if (currentHealth < maxHealth) currentHealth += Time.deltaTime * amount; if (currentHealth >= maxHealth) currentHealth = maxHealth; if (currentHealth <= 0f) currentHealth = 0f; } } Y también tengo este CustomEditor: [CustomEditor(typeof(EnemyHealth))] public class EnemyHealthEditor : Editor { public override void OnInspectorGUI() { EnemyHealth enemyHealth = (EnemyHealth)target; enemyHealth.CurrentHealth = EditorGUILayout.FloatField("Health", enemyHealth.CurrentHealth); } } El problema que tengo es que la variable (en el inspector) no se actualiza cuando es < maxHealth, tal como indica su código... Si por ejemplo le pongo el valor 55 en el inspector, vuelve a 0, sin actualizarse. Antes de haber escrito el CustomEditor, simplemente tenía la variable en public y se actualizaba bien. Peor aún: He notado que si pongo el mouse encima del inspector (sin hacer clicks de ningún tipo), y lo muevo hacia otra ventana de Unity, sí se actualiza... (?) >>> Vídeo de muestra (nótese que no estoy haciendo dragging) Cómo lo soluciono?
  25. Aloha. Estaba trasteando con un singleton, probando cosas, etc... y resulta que declaré un evento dentro del singleton, al cual quiero llamar desde otro script, pero me da un error el cual antes no tenía. Singleton!: public class GameManager { #region "Singleton" static GameManager instance; public static GameManager Instance { get { if (instance == null) instance = new GameManager(); return instance; } } #endregion public event Action OnPlayerGrounded; // El evento. CharacterController cc; public CharacterController CC => cc; void Awake() { cc = GameObject.FindGameObjectWithTag("Player").GetComponent<CharacterController>(); } } Script desde el que intento llamar al evento: public class PlayerController { void Update() { if (GameManager.Instance.CC.isGrounded) GameManager.Instance.OnPlayerGrounded?.Invoke(); // Aquí es donde obtengo el error. } } El error que me da es el Assets/Scripts/Player/PlayerController.cs(23,70): error CS0070: The event `GameManager.OnPlayerGrounded' can only appear on the left hand side of += or -= when used outside of the type `GameManager'... Antes simplemente tenía el evento declarado dentro de PlayerController y simplemente decía: if (cc.isGrounded) OnPlayerGrounded(); y funcionaba... pero ahora me dio por tener un poco más de orden y usar managers :P Qué solución puede haber en este caso? Mil y una gracias.
×
×
  • Create New...