Jump to content
UnitySpain

Search the Community

Showing results for tags 'scripts'.



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)

Blogs

  • byGui
  • El Blog de Pioj

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 24 results

  1. 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
  2. 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); } } } }
  3. Hola estoy intentado aprender de tutoriales haciendo un juego de naves el caso es que he conseguido que dispare la nave manteniendo pulsado una tecla de dirección mientras me voy moviendo por la pantalla pero cuando mantengo pulsado dos teclas de dirección por ejemplo izquierda, arriba y disparo no ejecuta la animacion del disparo. Creo que tengo que configurarlo mediante código pero no se como deberia escribirlo aunque para mucho debe ser muy fácil esto me gustaria aprender. pd. Me he dado cuenta que si mantengo pulsado derecha+ arriba y ejecuto disparo asi si sale la animacion pero en los demas movimientos dobles no sale el disparo. /* Disparo /* if (Input.GetKeyDown (KeyCode.Space)) { // disparo desde la nave y colocando por donde sale var fighter = GameObject.Find ("Fighter"); if (fighter != null) { Vector3 newPosition = fighter.transform.position + Vector3.up * 1.75f; Instantiate (bullet, newPosition, Quaternion.identity); } */ /* if (Input.GetKey(KeyCode.LeftArrow)){ // moviendo a la izquierda con la flecha del teclado /* this.transform.position += new Vector3( -speed * Time.deltaTime,0,0); } else if (Input.GetKey(KeyCode.RightArrow)){ // moviendo a la derecha con la flecha del teclado this.transform.position += new Vector3( speed * Time.deltaTime,0,0); */ /* Movimiento vertical hacia arriba con la flecha del teclado comando original float vInput = Input.GetAxis("Vertical"); transform.position += new Vector3 (0, vInput * speed * Time.deltaTime, 0);*/
  4. Hola a todos! Les cuento que estoy teniendo un problema con una script de inventario que estoy utilizando de este video: Para que no tengan que ver todo el video les voy a indicar las partes puntuales. Verán mi problema es que en la función "AgregarAlgoAlInventario"(38:05) si bien se crea un "item" y si agrego otro de igual id se suman sus cantidades, solo pasa con el primer objeto de la lista(la lista de ObjetoInvId) ya que si agrego otro item con distinto id se crea un nuevo "slot",osea se adiciona un nuevo objeto en la lista(hasta ahí todo bien), pero al agregar otro item igual(mismo id que el segundo item) al segundo item se le suma la cantidad correcta, pero además se me crea otro slot y así sucesivamente. Ya que quizas lo explique medio para el tuje les dejo un gif: El element 0 es el priemer item al cual al seguir agregandolo aumenta su cantidad y no se duplica. Ya los otros elementos como pueden ver tienen el mismi id pero se agregan en slots separados(aunque un detalle es que el Element 1 va aumentando su canidad en base a los nuevos duplicados de este) Bueno ese es en sí el error les dejo toda la script por si las dudas, aunquecreo que el error debe estar en la función que nombre arriba(pareciera que no respeta el return : p): using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; public class Inventario : MonoBehaviour { [System.Serializable] public struct ObjetoInvId { public int id; public int cantidad; public ObjetoInvId(int id, int cantidad) { this.id = id; this.cantidad = cantidad; } } [SerializeField] Database data; [Header("Variables del Drag and Drop")] public GraphicRaycaster graphRay; private PointerEventData pointerData; private List<RaycastResult> raycastResults; public Transform canvas; public GameObject objetoSeleccionado; public Transform ExParent; [Header("Prefs y items")] public Transform Contenido; public Item item; public List<ObjetoInvId> inventarioo = new List<ObjetoInvId>(); void Start () { ActualizarInventario(); pointerData = new PointerEventData(null); raycastResults = new List<RaycastResult>(); } void Update () { Arrastrar(); if (Input.GetKeyDown(KeyCode.F)) { AgrregarItem(1, 1); } if (Input.GetKeyDown(KeyCode.G)) { AgrregarItem(3, 1); } } void Arrastrar () { if (Input.GetMouseButtonDown()) { pointerData.position = Input.mousePosition; graphRay.Raycast(pointerData, raycastResults); if (raycastResults.Count > ) { if (raycastResults[].gameObject.GetComponent<Item>()) { objetoSeleccionado = raycastResults[].gameObject; ExParent = objetoSeleccionado.transform.parent; ExParent.GetComponent<Image>().fillCenter = false; objetoSeleccionado.transform.SetParent(canvas); } } } if(objetoSeleccionado != null){ objetoSeleccionado.GetComponent<RectTransform>().localPosition = CanvasScreen(Input.mousePosition); } if(objetoSeleccionado != null) { if(Input.GetMouseButtonUp()){ pointerData.position = Input.mousePosition; raycastResults.Clear(); graphRay.Raycast(pointerData, raycastResults); objetoSeleccionado.transform.SetParent(ExParent); if(raycastResults.Count > ){ foreach(var resultado in raycastResults){ if(resultado.gameObject == objetoSeleccionado) continue; if(resultado.gameObject.CompareTag("Slot")){ if(resultado.gameObject.GetComponentInChildren<Item>() == null){ objetoSeleccionado.transform.SetParent(resultado.gameObject.transform); Debug.Log("Slot libre"); } } if(resultado.gameObject.CompareTag("Item")){ if(resultado.gameObject.GetComponentInChildren<Item>().ID == objetoSeleccionado.GetComponent<Item>().ID){ Debug.Log("Tienen el mismo ID"); resultado.gameObject.GetComponentInChildren<Item>().cantidad += objetoSeleccionado.GetComponent<Item>().cantidad; Destroy(objetoSeleccionado.gameObject); }else{ Debug.Log("Distinto ID"); objetoSeleccionado.transform.SetParent(resultado.gameObject.transform.parent); resultado.gameObject.transform.SetParent(ExParent); resultado.gameObject.transform.localPosition = Vector3.zero; } } } } objetoSeleccionado.transform.localPosition = Vector3.zero; objetoSeleccionado = null; } } raycastResults.Clear(); } public Vector2 CanvasScreen(Vector2 screenPos){ Vector2 viewportPoint = Camera.main.ScreenToViewportPoint(screenPos); Vector2 canvasSize = canvas.GetComponent<RectTransform>().sizeDelta; return(new Vector2(viewportPoint.x * canvasSize.x, viewportPoint.y * canvasSize.y) - (canvasSize/2)); } public void AgrregarItem (int id, int cantidad){ for (int i = ; i < inventarioo.Count; i++){ if (inventarioo[i].id == id) { inventarioo[i] = new ObjetoInvId(inventarioo[i].id, inventarioo[i].cantidad + cantidad); ActualizarInventario(); return; } inventarioo.Add(new ObjetoInvId(id, cantidad)); ActualizarInventario(); } } public void EliminarItem(int id, int cantidad) { for (int i = ; i < inventarioo.Count; i++) { if (inventarioo[i].id == id) { inventarioo[i] = new ObjetoInvId(inventarioo[i].id, inventarioo[i].cantidad - cantidad); if (inventarioo[i].cantidad <= ) { inventarioo.Remove(inventarioo[i]); ActualizarInventario(); return; } } Debug.LogError("No hay nada que eliminar!"); } } List<Item> pool = new List<Item>(); public void ActualizarInventario () { print("Inventario Actualizado"); for (int i = ; i < pool.Count; i++) { if(i < inventarioo.Count) { ObjetoInvId o = inventarioo[i]; pool[i].ID = o.id; //Aqui le asigno la id del objeto a mi script llamada Item pool[i].GetComponent<Image>().sprite = data.baseDatos[o.id].icono; pool[i].GetComponent<RectTransform>().localPosition = Vector3.zero; //Esto lo hagoya que al utilizar slots y meter alli los items se me produce un error en la posicion pool[i].cantidad = o.cantidad; pool[i].gameObject.SetActive(true); } else { pool[i].gameObject.SetActive(false); } } if(inventarioo.Count > pool.Count) { for (int i = pool.Count; i < inventarioo.Count; i++) { Item it = Instantiate(item, Contenido.GetChild(i)); //Aqui el getchild(i) lo utilizo para crear el itemdentro del slot pool.Add(it); it.transform.position = Vector3.zero; it.transform.localScale = Vector3.one; ObjetoInvId o = inventarioo[i]; pool[i].ID = o.id; //Aqui le asigno la id del objeto a mi script llamada Item pool[i].GetComponent<RectTransform>().localPosition = Vector3.zero;//Esto es por lo mismo que aclare arriba pool[i].GetComponent<Image>().sprite = data.baseDatos[o.id].icono; pool[i].cantidad = o.cantidad; pool[i].gameObject.SetActive(true); } } } } En donde hice anotaciones es debido a que el sistema de drag and drop lo saque de otro canal y tuve que adecuarlo. Gracias de antemano : )
  5. Hola a todos . Quisiera saber como se puede hacer para pasar valores de un scripta otro ( si es posible un pequeño ejemplo vendría muy bien). LA idea es implementar interactividad con sonido capturado desde micrófono, para lo cual el Gameobjet tiene un audio listener y un audio source y un algoritmo de análisis del sonido capturado del cual tomo el volumen para hacer avanzar a mi personaje ( esto funciona muy bien) Ahora si deseo que ese mismo volumen interaccione con la luz de otro Game objet al cual le puse también un audio listener y un audio source, pareceiera que este no capta el sonido, es decir pareciera que solo un audio listener captura el sonido y el otro no. La solución que pensé es que el script que realiza el analisis de sonido le pase los valores que va encontrando al script que maneja la intensidad de la luz del otro objeto. POngo a disposición de quien lo solocite los scripts. desde ya muchas gracias
  6. Buenas, tengo un pequeño problema, estoy terminando un código, y resulta que me aparece un error y no soy capaz de encontrar la solución, quería saber si alguien podría ayudarme. Aquí dejo el error: "Assets/Scripts/Manager.cs(221,20): error CS0161: `Manager.ObtenerInfo(Cuadricula)': not all code paths return a value" Y aquí el código: using UnityEngine; using System.Collections; using System.Collections.Generic; public class Manager : MonoBehaviour { public int TamañoX, TamañoY; GameObject [] _items; public Cuadricula[,] BidItem; Cuadricula ItemActual; public static int minItemsPorEncuentro = 3; bool Jugando; void Start () { Jugando = true; ObtenerItems (); Grid (); LimpiarGrid(); Cuadricula.SeleccionItemEvento += SeleccionItem; } void OnDisable () { Cuadricula.SeleccionItemEvento -= SeleccionItem; } void Grid () { BidItem = new Cuadricula [TamañoX, TamañoY]; for (int x = 0; x < TamañoX; x++) { for (int y = 0; y < TamañoY; y++) { BidItem [x,y] = Instanciar (x,y); } } } void LimpiarGrid() { for (int x = 0; x < TamañoX; x++) { for (int y = 0; y < TamañoY; y++) { Encuentros encuentros = ObtenerInfo (BidItem [x, y]); if (encuentros.EncuentroValido) { Destroy (BidItem [x, y].gameObject); BidItem[x,y] = Instanciar (x, y); y--; } } } } Cuadricula Instanciar (int x, int y) { GameObject ItemRandom = _items[Random.Range (0, _items.Length)]; GameObject NuevoItem = (GameObject) Instantiate (ItemRandom, new Vector3 (x, y, 0f), Quaternion.identity); NuevoItem.GetComponent<Cuadricula>().Posicion (x,y); return NuevoItem.GetComponent<Cuadricula> (); } void SeleccionItem (Cuadricula item) { if (ItemActual == item || !Jugando) { return; } if (ItemActual == null) { ItemActual = item; }else { float xDif = Mathf.Abs (item.x - ItemActual.x); float yDif = Mathf.Abs (item.y - ItemActual.y); if (xDif + yDif == 1) { StartCoroutine (Cambio (ItemActual, item)); //cambiar }else { Debug.Log ("Ese cambio no esta permitido"); } ItemActual = null; } } IEnumerator IntentoEncuentros ( Cuadricula a, Cuadricula b) { Jugando = false; yield return StartCoroutine (Cambio (a, b)); Encuentros EncuentroA = ObtenerInfo (a); Encuentros EncuentroB = ObtenerInfo (b); if(!EncuentroA.EncuentroValido && !EncuentroB.EncuentroValido) { yield return StartCoroutine (Cambio (a, b)); yield break; } if (EncuentroA.EncuentroValido) { yield return StartCoroutine (DestruirItems (EncuentroA.Encuentro)); yield return StartCoroutine (UpdateGrid (EncuentroA)); } else if (EncuentroB.EncuentroValido) { yield return StartCoroutine (DestruirItems (EncuentroB.Encuentro)); yield return StartCoroutine (UpdateGrid (EncuentroB)); } Jugando = true; } IEnumerator UpdateGrid (Encuentros encuentro) { if (encuentro.EncuentroStartY == encuentro.EncuentroEndY) { for ( int x = encuentro.EncuentroStartX; x <= encuentro.EncuentroEndX; x++){ for (int y = encuentro.EncuentroStartY; y < TamañoY - 1; y++){ Cuadricula upIndex = BidItem [x, y + 1]; Cuadricula current = BidItem [x, y]; BidItem [x, y] = upIndex; BidItem [x, y + 1] = current; BidItem [x, y].Posicion (BidItem [x, y].x, BidItem [x, y].y - 1); } BidItem [x, TamañoY-1] = Instanciar (x, TamañoY - 1); } } else if (encuentro.EncuentroEndX == encuentro.EncuentroStartX){ int EncuentroHeight = 1 +(encuentro.EncuentroEndY - encuentro.EncuentroStartY); for (int y = encuentro.EncuentroStartY + EncuentroHeight; y <= TamañoY - 1; y++){ Cuadricula lowIndex = BidItem [encuentro.EncuentroStartX, y - EncuentroHeight]; Cuadricula current = BidItem [encuentro.EncuentroStartX, y]; BidItem [encuentro.EncuentroStartX, y] = lowIndex; BidItem [encuentro.EncuentroStartX, y - EncuentroHeight] = current; } for (int y = 0; y < TamañoY - EncuentroHeight; y++) { BidItem [encuentro.EncuentroStartX, y].Posicion (encuentro.EncuentroStartX, y); } for (int i = 0; i < encuentro.Encuentro.Count; i++) { BidItem [encuentro.EncuentroStartX, (TamañoY-1) - i] = Instanciar (encuentro.EncuentroStartX, (TamañoY -1) -i) ; } } for (int x = 0; x < TamañoX; x++) { for (int y = 0; y < TamañoY; y++) { Encuentros encuentros = ObtenerInfo (BidItem [x, y]); if (encuentros.EncuentroValido) { yield return new WaitForSeconds (minItemsPorEncuentro); yield return StartCoroutine (DestruirItems (encuentros.Encuentro)); yield return new WaitForSeconds (minItemsPorEncuentro); yield return StartCoroutine (UpdateGrid (encuentros)); } } } } IEnumerator DestruirItems ( List <Cuadricula> items) { foreach (Cuadricula i in items) { yield return StartCoroutine (i.transform.Escala (Vector3.zero, 0.01f)); DestroyImmediate (i.gameObject); } } IEnumerator Cambio ( Cuadricula a, Cuadricula b) { CambioRigidbody (false); float DuracionMov = 0.1f; Vector3 PosicionItemA = a.transform.position; StartCoroutine (a.transform.Move (b.transform.position, DuracionMov)); StartCoroutine (b.transform.Move (PosicionItemA, DuracionMov)); yield return new WaitForSeconds (DuracionMov); CambioRigidbody (true); } void ActualizarValores ( Cuadricula a, Cuadricula b) { Cuadricula TemporalA = BidItem [a.x, a.y]; BidItem [a.x, a.y] = b; BidItem [b.x, b.y] = TemporalA; int ViejobX = b.x; int ViejobY = b.y; b.Posicion (a.x, a.y); a.Posicion(ViejobX, ViejobY); } List <Cuadricula> BuscarHorizontal ( Cuadricula item) { List <Cuadricula> HItems = new List <Cuadricula>{ item }; int Left = item.x -1; int Right = item.x +1; while (Left >= 0 && BidItem [Left, item.y].id == item.id) { HItems.Add (BidItem [Left,item.y]); Left--; } while (Right < TamañoX && BidItem [Right, item.y].id == item.id) { HItems.Add (BidItem [Right,item.y]); Right--; } return HItems; } List <Cuadricula> BuscarVertical ( Cuadricula item) { List <Cuadricula> VItems = new List <Cuadricula>{ item }; int Lower = item.y -1; int Upper = item.y +1; while (Lower >= 0 && BidItem [item.x, Lower].id == item.id) { VItems.Add (BidItem [item.x, Lower]); Lower--; } while (Upper < TamañoY && BidItem [item.x, Upper].id == item.id) { VItems.Add (BidItem [item.x, Upper]); Upper++; } return VItems; } Encuentros ObtenerInfo ( Cuadricula item) { Encuentros E = new Encuentros (); E.Encuentro = null; List <Cuadricula> HEncuentro = BuscarHorizontal (item); List <Cuadricula> VEncuentro = BuscarVertical (item); if (HEncuentro.Count >= minItemsPorEncuentro && HEncuentro.Count > VEncuentro.Count){ //informar de los encuentros E.EncuentroStartX = ObtenerMinimoX(HEncuentro); E.EncuentroEndX = ObtenerMinimoX (HEncuentro); E.EncuentroStartY = E.EncuentroEndY = HEncuentro[0].y; E.Encuentro = HEncuentro; } else if (VEncuentro.Count >= minItemsPorEncuentro){ E.EncuentroStartY = ObtenerMinimoX(VEncuentro); E.EncuentroEndY = ObtenerMaximoY(VEncuentro); E.EncuentroStartX = E.EncuentroEndY = HEncuentro[0].x; E.Encuentro = VEncuentro; } } int ObtenerMinimoX ( List <Cuadricula> items) { float [] indices = new float [ items.Count]; for (int i = 0; i < indices.Length; i++) { indices [i] = items [i].x; } return (int)Mathf.Min (indices); } int ObtenerMaximoX ( List <Cuadricula> items) { float [] indices = new float [ items.Count]; for (int i = 0; i < indices.Length; i++) { indices [i] = items [i].x; } return (int) Mathf.Max (indices); } int ObtenerMinimoY ( List <Cuadricula> items) { float [] indices = new float [ items.Count]; for (int i = 0; i < indices.Length; i++) { indices [i] = items [i].y; } return (int) Mathf.Min (indices); } int ObtenerMaximoY ( List <Cuadricula> items) { float [] indices = new float [ items.Count]; for (int i = 0; i < indices.Length; i++) { indices [i] = items [i].y; } return (int) Mathf.Max (indices); } void ObtenerItems() { _items = Resources.LoadAll <GameObject> ("Prefabs"); for ( int i = 0; i < _items.Length; i++) { _items[i].GetComponent <Cuadricula>().id = i; } } void CambioRigidbody ( bool Estado) { foreach (Cuadricula c in BidItem) { c.GetComponent<Rigidbody2D>().isKinematic =!Estado; } } }
  7. Buenas noches les voy a enviar los dos casosa CANVAS y asi debo hacerlo, ayuda gracias.
  8. buenos días, tengo un problema con mi editor monodevelop, al momento de crear un script en unity en c# no puedo editar el archivo, es decir, no puedo escribir mi código, solo lo logro hacer si abro el script con otro editor como el sublime, sin embargo, el sublime no me muestra como es obvio errores de sintaxis, solo hasta guardar el escript y dirigirme a la consola de unity para verificar el funcionamiento de mi script. Nose porque no puedo editar mi script con monodevelop, solo al momento de guardar mi proyecto y al abrirlo de nuevo puedo editar el script (aplica para algunos, el resto sigue con el problema) con monodevelop. Gracias, ojala pueda resolver mi duda.
  9. Hola , tengo este script pero en la parte de total ==total2 no funciona .Cuando le doy al Play ely total llega al valor de total2 no funciona lo que pone debajo. pruebaDestruir.js
  10. Guest

    ayuda con script !

    hola gente! estoy haciendo un juego top down shooter y quiero que me ayuden con el script para hacer el movimiento del personaje como este juego https://www.youtube.com/watch?v=Qeq-LkEgEoc es decir, que con un stick mueve al personaje y el otro apunta y dispara. Lo quiero hacer para android y pc si es posible. espero que me ayuden, un saludo desde Venezuela!
  11. Hola gente, que tal estan? Veran, estoy intentando hacer una script simple que, al entrar en un trigger, me sume un numero a una UI text, es para un juego en el que, si caes de una plataforma te teletransportas de nuevo arriba pero quiero que cuente una caida para ver cuantas tienes al terminar el nivel
  12. Buenas a todos chicos, os comento mi problema. Tengo un script con un temporizador que cuenta 3 segundos utilizando el Time.deltaTime en el método Update(). void Update () { Debug.Log ("llego"); temp -= Time.deltaTime; if (temp <= 0) { Application.LoadLevel ("P2"); }El problema es que quiero utilizarlo cada vez que cargo un nivel y reutilizarlo y quería saber como puedo hacer para llamarlo desde otro script y que, al vencer el temporizador, devuelva la ejecución al script inicial. Podríais ayudarme??
  13. Estoy programando un chatbot, adjunto el código. El compilador dice:"The variable dialogo has not been assigned". Relleo mi código y no veo niinguna variable llamada "dialogo", al menos que se me esté pasando alguna línea. Lo que tengo es una clase "Dialogo" ( clases y variables no son lo mismo y es on "D" mayúscula) y tengo un array de "Dialogo" [] hablando y un método "dialoga()" pero ninguna variable dialogo. Antes si tenía dicha variable pero la eliminé, puede haber quedado oculta o yo sin verla?? MUchas gracias a todos espero sus aportes. conversacion3.cs
  14. Buenas a todos, veréis, he estado trabajando en un proyecto con google cardboard Sdk en unity 3d 5.2.. Y resulta que todo iva bien, mi antiguo movil corría el juego bien, pero ahora de la nada dejo de funcionar el sensor de acelerometro, basicamente no se mueve la vista cuando inclinas el movil, lo cual es extraño. Tambien sucede con mi nueva tablet, no se que puede ser por que además he cogido la escena demo que venia con el sdk y tampoco corre el juego en android.. E incluso un movil de un amigo y tampoco funcionaba!! ¿Que podria ser? Si pudierais ayudarme estaría muy agradecido, gracias a todos.
  15. Hola!! Alguien me podria ayudar con algo tan simple como un sistema de puntuación el cual vaya en aumento conforme al tiempo.Para explicarme mejor les cuento que estoy haciendo un infinite runner y quiero hacer un contador de puntos que va en aumento conforme el jugador avanza.Y que cuando muera se reinicie lo que hice yo es esto (está en csharp): public int puntos = 0; void Update () { puntos += Time.deltaTime; if (muerte){ puntos = 0; } } y bueno.. ya se que esta mal pero el problema es que si pongo la variable "puntos" como float en vez de int me funciona pero a la hora de verse en pantalla, (obvié la parte de "OnGUI") se representa justamente como float (0.123456799, etc) y si lo dejo en "int" , me queda el valor cero.PORFAVOR AYUDA!!!!
  16. Buenas, estoy intentando acceder a un Sprite que esta dentro de un sprite multiple, con Resources.Load() Me funciona si accedo al sprite original de la siguiente manera: Sprite elemento = Resources.Load<Sprite>("nombreSpriteOriginal"); El sprite original se encuentra dentro de la carpeta Resources. Pero si intento acceder a un sprite obtenido a raíz de este original como Sprite multiple no accede y da lugar a null. Por lo cual el error es debido a que estoy poniendo mal la ruta o path, pero desconosco cual puede ser he probado con Sprite elemento = Resources.Load<Sprite>("nombreSpriteOriginal/nombreSpriteObtenido"); pero no funciona. Si lo cargo con Resources.LoadAll(""); se obtienen tanto el original como el obtenido de este, pero tengo el problema de que aun sigo desconociendo la ruta. Y quiero obtener especificamente uno de los sprites obtenidos del sprite original, pues tengo varios sprites obtenidos del sprite original.
  17. Alguien podría hacerme un script básico en la que cuando pase por un trigger empiece una conversación con un NPC . Un ejemplo seria tengo un cubo en escena y que cuando se acerque al otro cubo me muestre en pantalla el dialogo que me dice cubo 2 y me muestre 2 respuestas como "Si" o "No" . Un dialogo de ejemplo seria "Tienes hambre" las respuestas serian "No no tengo" o "Si si tengo",me doy a entender ... espero que me puedan ayudar PLS.
  18. Hola a todos, por más que lo he buscado no he podido ver ningún post sobre este tema y si creo que va a ser una tonteria pero no lo veo. Estoy creando un menú de configuración para los gráficos, resolución de pantalla, etc, ya que el menu que sale por defecto en cuanto corres la aplicación me parecía un poco pobre. El problema me lo encuentro cuando quiero configurar el componente Dropdown del canvas para que cuan el valor sea 0 haga una cosa, cuando sea 1, otra, etc. No se si la mejor solución sera hacerlo con un switch dentro del evento OnValueChanged(). Como no lo he echo nunca, estoy un poco perdido. Gracias de antemano a todo aquel que me pueda ayudar.
  19. Hola a todos , Quiero que me presten su ayuda para terminar una Scripts ,el Cual es la de hacer que un personaje pase de walk a run . Estoy usando un Blend Tree , las animaciones las he puesto en este orden . Idle 0 0 Walk Fwd 0 0.1 Walk Fwd Turn Left -0.1 0.1 Walk Fwd Turn Right 0.1 0.1 Walk back 0 -0.1 Walk back Turn Left -0.1 -0.1 Walk back Turn Right 0.1 -0.1 Run 0 0.2 Run Left -0.1 0.2 Run Right 0.1 0.2 Y este es el Script using UnityEngine; using System.Collections; public class Cole : MonoBehaviour { public float Speed; public float AxisV; public float AxisH; Animator myAnim; void Start () { myAnim = this.GetComponent <Animator > (); } void Update () { } void FixedUpdate () { AxisH = Input .GetAxis ("Horizontal"); AxisV = Input .GetAxis ("Vertical"); if (AxisV > 0.1f) myAnim .SetFloat ("W.S", AxisV); if (AxisV < 0.1f) myAnim .SetFloat ("W.S", AxisV); if (AxisH > 0.1f) myAnim .SetFloat ("A.D", AxisH); if (AxisH < 0.1f) myAnim .SetFloat ("A.D", AxisH); if(Input .GetKey (KeyCode .Space )) myAnim .SetTrigger ("Jump"); } } Lo que quiero que haga es que cuando presione "LeftShift" el personaje corra , Pero aqui viene el problema cuando presiono "W" El personaje corre Osea la variable Float pasa directamente a 1f; y sale corriendo , entonces lo que quiero que haga es que cuando pise "W" solo suba Float a 0.1f y no 1 y Cuando presione "S" pase el Float a -0.1 y no -1 Y que cuando Presione la tecla "LeftShift" si estoy pisando una de las dos teclas ("W","S") pase a 0.2 o -0.2 no se si me de a entender pero espero que me ayuden ,Se los Agradecería.
  20. Hola gente de la comunidad.Este es mi primer post y quería preguntarles cómo mierd@ activar una animación mediante una script (obviamente : p). El tema es q quiero q al apreta x ejemplo la "r" reproduzca la animación "recargar" y así con las demas, pero el problema es q yo hago uso del animator para "relacionar" esta animaciones y al momento de crear la script probé con algunas como estas: #1 function Update () { if (Input.GetKeyDown(KeyCode.R)){ animation.Play("recargar"); también probé con animation.Crossfade("recargar");(o algo así XD) } } #2 var recargaanim : AnimationClip; function Update () { if (Input.GetKeyDown(KeyCode.R)){ GetComponent.<Animation>("recargar").Play; (este lo "actualizó" el propio unity) } } #3 y ultimo: var ani : Animator; function Start () { ani.enabled = false; } function Update () { if (Input.GetKeyDown(KeyCode.R)){ ani.enabled = true; } } porfavor si me puedenayudar con una script q funcione se los agradecería muchísimo (para UNITY 5) gracias.
  21. ok creo que la pregunta sera algo sencilla para algunos, yo se que en un script se puede poner que otros scrips dependen o sean nesesarios para correr ese script en un gameobject eso lo vi en un video pero no recuerdo donde, vi que la persona ponia una linea de codigo que hacia que al momento de arrastrar ese script al gameobject los otros scrips necesarios para ese script automaticamente se agregaba y fueran imposible de remover de el gameobject por que eran nesesario para el script principal, quisiera saber cual es ese metodo o linea de codigo para poderlo hacer y quisiera saber si se puedo hacer lo mismo con compenentes como rigidbodys u otros componentes, espero que alguien me puediera resolver mi duda, gracias
  22. Bueno supongo que ya aveis leido el titulo. Entonces voy al grano. cualquiera puede aportar sus cosas, se puede hacer el truque con quien se quiera y quien lo pida. Si aportais algo en comentarios seguid esta plantilla NombreDeLaAportacion : Link de foto del modelo + descarga o script + descarga, Si quereis trueque: Trueque : Objeto a cambiar : Objeto que quieres recibir.
  23. Hola amigos! Acabo de estrenar mi nuevo blog sobre desarrollo en Unity: Histeria GameDev, donde iré publicando pequeños aportes que voy usando en mi proyecto personal y que creo que podrían ser útiles para otros desarrolladores que estén empezando en este bonito mundo del game development. MI primer post va sobre la creación de un sencillo sistema de ataque a distancia para juegos tipo plataformas 2D, os dejo el link: https://histeriagamedev.wordpress.com/2014/12/20/unity3d-creacion-de-sistema-de-ataque-a-distancia-shurikens-en-juego-2d//2014/12/20/unity3d-creacion-de-sistema-de-ataque-a-distancia-shurikens-en-juego-2d/ Espero que os guste, muchas gracias!
  24. Pues eso que necesito acceder desde un script JS que es el lenguaje que mas o menos domino a un parametro de un script C# que descargue de internet. Se que C# es muy parecido pero esk no lo domino del todo y ademas el script JS ya tiene su buen tamaño y no me planteo pasarlo a C#. Lo malo es que con el clasico GetComponent(NombreScript) no puedo me dice que no lo encuaentra, alguno sabe alguna solucion??
×
×
  • Create New...