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 - unit3ro

#1
Lo se pero tengo tres dias en eso, y no logro dar con la solucion.El problema esta aqui cuando quiero almacenar el item a un librolibro temporal creado para despues guardarlo en el arraylist de libros 
BOOK tempBook = new BOOK();
tempBook.items[i] = Items[i];
#2
He hecho el script nuevamente y lo probe, este lee a partir de un archivo y crea las hojas/items, pero no puede crear los libros y almacenarles las hojas.
using UnityEngine;
using System.Collections;
using System.Collections.Generic;

//=================================//
public class BooksGenerator3: MonoBehaviour {

public TextAsset TextData = null;
private string[] strData; // = "book1+102+M7,M8,M9,I15,I16,I17,I18,J8,J9,J10/book2+103+I14,I15,I16,I17,V14,V15,V16,V17,V18/";

[System.Serializable]
public class ITEM {      
   public string[] itemData = new string[2];
   public string[] words;
}
[System.Serializable]
public class BOOK {      
   public ITEM[] items;
}   
public BOOK[] inventory;
public ITEM[] items;

//=================================//
void Start () {
   
   strData = TextData.text.Split(new char[] {'/'});
   items = processItems(strData);
   inventory = generateBooks(items);
   
   for(int x=0; x<inventory.Length; x++) {
      
      print("curBook: " + inventory
  • .ITEM.itemData);
   }      
}
//=================================//
public ITEM[] processItems(string[] strData)  {
   
   ITEM[] tempItems = new ITEM[strData.Length];      
   
   for(int s=0; s<strData.Length; s++) {
      string[] curData = strData.Split(new char[] {'+'});
   
      ITEM newItem = new ITEM();
      newItem.itemData[0] = curData[0];
      newItem.itemData[1] = curData[1];
      newItem.words = curData[2].Split(new char[] {','});
      tempItems = newItem;
      
   }
   return tempItems;
}
//=================================//
public BOOK[] generateBooks(ITEM[] Items) {

   ArrayList firstBooks = new ArrayList();

   for(int i=0; i<Items.Length; i++) {         
      BOOK tempBook = new BOOK();
      tempBook.items = Items;
      firstBooks.Add(tempBook);
   }
   return firstBooks.ToArray(typeof(BOOK)) as BOOK[];   
}
}
#3
Nadie?
#4
Hola comunidadMe he visto en la necesidad de solicitar la ayuda de ustedes, pues me encuentro atascado en un script que necesito.Adjunto dejo el codigo, no esta probado y seguro tiene algunas palabras mal escritas, pero es la idea que tengo. en los comentarios describo el problema plateado esta en la funcion "generarLibros", no doy con los bucles esos para repetir cada revision de datos. No se si trabajar con string es la mejor manera, cualquier consejo me vendria muy bien.Una ayudita por favor.
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Linq;

public class generadordelibros : MonoBehaviour {
/*las letras seria lo encerrado en comas (cada letra seguida de numero)y las hojas serian cada
    parte del string separado por slash (/), mas adelante se crearan arrays de strings a parir
    de este usando string.split
    */
private string strData = "a1,a2,c1,z2/d6,f6,s4/s5,r2,k6"

public struct libro {      
   public hoja[] hojas;
   public libro(hoja[] hojas) {  
      this.hojas = hojas;
   }
}
public class hoja {      
   public string[] letras;
}

void Start () {
   
   hojas = procesarHojas(strData);
   libros = generarLibros(hojas);
}
private hoja[] procesarHojas(string strData)  {

   hoja[] hojasTemp = new hoja[strData.Length];
        //separar cada hoja por (/)
   strData = strData.Split(new char[] {'/'});
   
   for(int s=0; s<strData.Length; s++) {
      
      hoja nuevaHoja = new hoja();
            //separar cada letra por (,)
      nuevaHoja.letras = strData.Split(new char[] {','});
      hojasTemp = nuevaHoja;
   }
   return hojasTemp;
}
public libro[] generarLibros(string[] hojas) {
   
   List<libro> libros = new List<libro>();
      
   for (int k; k<hojas.Length; k++){
      /*por cada hoja comparar las letras dentro de ella con
      las de dentro de cada hoja en cada libro, si existe almenos
      una crear otro libro y añadirle las hojas, si no existen en el
      actual libro (ni siguiera una) añadirlas al libro. la idea es queue
      se generen todas las combinaciones posibles de libros para que cada
      grupo de hojas esten en libros diferentes sin repetirse en el mismo
      libro.
      */         
   }
   return libros.ToArray();
}
}
 
#5
General (Antiguo) / Personaje atraviesa el suelo
Agosto 11, 2015, 04:44:36 PM

Hola francoe1Hace un par de meses ya habia visto ese video y descargue los proyectos de ejemplo, y la verdad no le veo la diferencia con lo que ofrece mecanim, pero bueno.
Estoy contento con los resultados preliminales, cambie la funcion a FixedUpdate y funciona mucho mejor, tambien consegui un scrip y que modifique a mi necesidad, era para un hovercar, lo he usado en unity v5, en la escena de prueba y con un simple ajustador de la posicion de los pies y funciona de maravilla, el personaje se desplaza suavemente y nunca pierde el contacto con el suelo, salvo que no haya. Hasta ahi todo bien, ahora resta colocarle los capsule colliders en todo el cuerpo para que no traspace las paredes, pero como triggers. cualquier metacodigo es bien recibido.
Mi idea es que cada extremidad independientemente detecte contacto con otros colliders y se aplique una fuerza o movimiento a esa extremidad en direccion contraria al contacto.Gracias por leer.el escript puede que tenga palabras mal escritas, lo reescribi de mi mente porque no lo tenia a mano.
using UnityEngine;
using System.Collections;

public class HoverPelvis : MonoBehaviour {


public float hoverHeight = 0.97f;
public float thusForce = 200;
public float  damping = 20;
public Vector3[] thrusters;
public float castLength = 0.96f;
public float  spheRad = 0.01f;

void Satart () {
   rigidBody = GetComponent<Rigidbody>();
}

void FixedUpdate () {

   RaycastHit hit;

   for (int = 0; i < thrusters.Length; i++) {
      Vector3 wdThuster = transform.TransformPoint(thrusters);
      if (Physics.SphereCast(wdThruster, sphRad, -transform.up, out hit, castLength)) {
         Debug.DrawLine(wdThruster, hit.point, Color.red);
         float discrep = hoverHeight - hit.distance;
         float upVel = rigidBody.GetRelativePointVelocity(wdThruster).y;
         rigidBody.AddForceAtPosition(transform.up * (thrustForce * discrep - upVel * damping), wdThruster);
   } else Debug.DrawRay(wdThruster, -transform.up * castLength, Color.green);
}
}
 
#6
General (Antiguo) / Personaje atraviesa el suelo
Agosto 06, 2015, 03:23:32 PM
Para lo que quiero hacer, usar un capsule collider general que cubra el personaje es una estupides descomunal, ese estupido metodo es el mas torpe, la capsula no tiene la forma de una persona y nunca se relacionara con su entorno de manera similar a una persona, por ejemplo una caja rozando con una superficie nunca tendra la misma reaccion que una esfera en cuanto a rozamiento se refiere, olvida eso que es a lo que estoy reullendo, mi personaje estara saltando por todos lados y metiendose en espacios estrechos por eso la idea de usar trigers, nos estamos saliendo del tema.Mi meta es que dos raycast o dos spherecast (preferiblemente para mas precicion) determinen la posicion de los pies y hacer una media entre las dos alturas de contacto que sera la altura del personaje, eso esta solucionado y es estable el problema es que no siempre me detecta la superficie debajo y la traspasa, solo eso. cuando tenga tiempo hare pruebas en fixedupdate.Cuando digo "entiendo a la perfeccion" me reiero a lo que escribiste, osea que le capto la idea capichi.
#7
General (Antiguo) / Personaje atraviesa el suelo
Agosto 06, 2015, 12:26:49 AM
Hola, que talEntiendo a la perfección, este es mi caso.Mi personaje tiene adjunto por todo el cuerpo capsuleColliders como http://unity3d.17xdy.com/wp-content/uploads/2015/07/AnimFollow.jpg">animFollow, pero serán usados como trigers, para detectar cuando este en contacto con el escenario. Los uso como trigers para que no queden atascados en el escenario como suele pasarle mucho al personaje de animFollow.Entonces estoy buscando la forma para que el personaje detecte el suelo pero usando un raycast en cada pie a veces parece no funcionar, es posible que sea porque lo estoy haciendo en Update() y no en FixedUpdate, lo probare. Buscando una solución intente con wheelColliders, si ya sé que es una locura porque no es un vehículo, pero funciona perfectamente, salvo que cuando el personaje se sitúa en una superficie a una altura considerablemente diferente a la anterior sale despedido hacia el cielo con un salto exagerado, se podría eliminar este molestoso efecto? en tal caso voy a probar con fixedUpdate y luego les cuento los resultados.Gracias por tu atencion
#8
General (Antiguo) / Personaje atraviesa el suelo
Agosto 05, 2015, 03:39:47 PM

Supongo que ahora debo reírme por tu chiste. Si no estás dispuesto a ayudar no estropees mi solicitud de ayuda, es obvio que el corrector del celular lo hizo de nuevo, lo escribí mientras iba conduciendo y tuve que ahorrar palabras.  Esto era lo que queria escribir:

Hola a todosEstoy usando un raycast para evitar que mí personaje atraviese el piso ya que no puedo usar colicionadores para lo que quiero lograr, pero a menudo atraviesa el suelo. Parece que en algún frame no detecta nada. He hecho unas pruebas usando wheelColliders y me he fijado que no sucede lo mismo que usando un raycast, siempre detectan el suelo y no lo atraviesan. Mí pregunta es, que debo hacer para que funcione como los wheelColliders? Sería porque están programados en código interno osea dll y son mas optimos?Ignoren los terminos que no vienen al coso, no conozco mucho sobre el tema.Gracias [/quote]
#9
General (Antiguo) / Personaje atraviesa el suelo
Agosto 05, 2015, 01:21:36 AM
Hola a todoEstoy usando un raycast para evitar que mí personaje atraviese el piso porque no estoy usando colicionadores pero a menudo lo atraviesa. Parece que en algún frase no detecta nada. Me he fijado que con los whellcoliders no sucede eso. Mí pregunta es, que debo hacer para que funcione como los whellcoliders? Sería porque están hechos en código interno osea del?Gracias