Jump to content

Search the Community

Showing results for tags 'csharp'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

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

Categories

  • Roadmap

Blogs

There are no results to display.

There are no results to display.


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

  1. Hola, que tal a todos, soy nuevo en este foro, y la verdad también en el desarrollo de videojuegos. Yo no soy programador, y en el desarrollo de mi juego me ha salido un problema que no tengo ni idea de como resolverlo. Quisiera ver si alguien aquí puede ayudarme porque ya le di muchas vueltas al asunto y no se que pasa. Tengan un poco de paciencia porfa :) Este es mi script: using System.Collections; using System.Collections.Generic; using UnityEngine; public class EnemigoSeguidor : MonoBehaviour { public float visionRadius; public float Speed; public GameObject prefExp; GameObject player; Vector3 initialPosition; Vector3 target01; public static bool enRango = false; // Use this for initialization void Start() { StartCoroutine(autoDestroy()); player = GameObject.FindGameObjectWithTag("Player"); target01 = new Vector3(Random.Range(-988.4f, 988.6f), Random.Range(988.8f, -988.6f), 1f); } // Update is called once per frame void Update() { Vector3 target = target01; initialPosition = transform.position; float dist = Vector3.Distance(player.transform.position, transform.position); float rango = Vector3.Distance(initialPosition, target01); if (rango <= 0) { target01 = new Vector3(Random.Range(-988.4f, 988.6f), Random.Range(988.8f, -988.6f), 1f); } if (dist < visionRadius) { enRango = true; target = player.transform.position; } if (dist > visionRadius) { enRango = false; } float fixedSpeed = Speed * Time.deltaTime; transform.position = Vector3.MoveTowards(transform.position, target, fixedSpeed); Debug.DrawLine(transform.position, target, Color.green); } void OnDrawGizmos() { Gizmos.color = Color.yellow; Gizmos.DrawWireSphere(transform.position, visionRadius); } void OnTriggerEnter2D(Collider2D collider) { if (collider.tag == "Destructor" && enRango) { Destroy(gameObject); Instantiate(prefExp, transform.position, Quaternion.identity); } if (collider.tag == "MeteorG" && enRango) { Destroy(gameObject); Instantiate(prefExp, transform.position, Quaternion.identity); } if (collider.tag == "MeteorM" && enRango) { Destroy(gameObject); Instantiate(prefExp, transform.position, Quaternion.identity); } } IEnumerator autoDestroy() { yield return new WaitForSecondsRealtime(120); Destroy(gameObject); Instantiate(prefExp, transform.position, Quaternion.identity); } } Aqui lo que sucede es que el "enemigo" persigue al "player" en tanto entre en el rango de vision. Y cuando este sale de rango, el "enemigo" sigue su curso. El problema es que cuando hay varios enemigos parece haber un bug. Ya que para poder hacer colision con ciertos objetos, como se ve en el script, necesito estar "enRango = true", pero al haber varios "enemigos" siguiendo al player y si uno se destruye, parece que "enRango" cambia a false, y los demas objetos ya no pueden hacer colisión a pesar de que aun siguen al "player".Quisiera ver si alguno de ustedes sabe cual es la razón y como puedo resolverlo. Muchas gracias de antemano desde ya!.
  2. Hola buenas, estoy realizando un pequeño proyecto y se me ha ocurrido gran idea (notese lla ironía) de dar la opción al usuario de elegir entre castellano e inglés. Mi problema viene con que soy incapaz de encontrar una manera eficiente de hacer esto, mi primera idea consistía en cambiar todos los textos en función de una variable idioma directamente desde el código, algo así: if (idioma == 0){ titulo = "title"; }else if (idioma == 1){ titulo = "titulo"; } Pero al ver lo largo y tedioso de este proceso desistí y me enfrasqué en la búsqueda de un sistema más practico. He llegado a la conclusión de que la mejor opción es crear un archivo .json compuesto por una lista compuesta por otras sub listas, cada una de las cuales sería un idioma, pero no estoy seguro de si esto es posible, pues no tengo unos conocimientos especialmente avanzados en este ámbito y me esta dando verdaderos dolores de cabeza. Mi codigo actual es algo así: Lista de idiomas: { "Lenguage":[ [ "title", "New Game", "Continue", "Options", "Exit", "Volume", "Lenguage", "Controller", "Keyboard", "Graphics", "Done", "Pause", "Achievements", "Exit to main menu", "Pres Esc to continue"], [ "Titulo", "Nueva partida", "Continuar", "Opciones", "Salir", "Volumen", "Idioma", "Mando", "Teclado", "Graficos", "Hecho", "Pausa", "Logros", "Menu principal", "Pulsa Esc para continuar"] ] } Código: using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using System.IO; public class lenguages : MonoBehaviour { public int IntLenguage; public Dropdown DropLenguage; public Text Title; public Text NewGame; public Text Continue; public Text Options; public Text Options1; public Text Exit; public Text Volume; public Text Lenguage; public Text Controller; public Text Keyboard; public Text Graphics; public Text Graphics1; public Text Done; public Text Done1; string filePath; string jsonString; void Start () { filePath = Application.dataPath + "/Data/Options.json"; jsonString = File.ReadAllText (filePath); options info = JsonUtility.FromJson<options> (jsonString); IntLenguage = info.lenguage; DropLenguage.value = IntLenguage; filePath = Application.dataPath + "/Data/Lenguage.json"; jsonString = File.ReadAllText (filePath); ListaLenguages lista = JsonUtility.FromJson<ListaLenguages> (jsonString); Title.text = lista [IntLenguage [0]]; } } //He hecho esto en base a un tutorial el cual no explicaba esto concretamente y por ello hay cosas como estas que no estoy seguro de como modificar para listas [System.Serializable] public class Lenguage1{ public string title; public string NewGame; public string Continue; public string Options; public string Exit; public string Volume; public string Lenguage; public string Controller; public string Keyboard; public string Graphics; public string Done; public string Pause; public string Achievements; public string ExitToMainMenu; public string PresEsc; } [System.Serializable] public class ListaLenguages{ public List<Lenguage1> Lenguage; } Pues este es mi problema, agradecería tanto una ayuda con este código en concreto como una forma mejor de hacerlo, gracias a todos y espero con ansia cualquier respuesta. Pdt.: Lamento cualquier falta ortográfica.
  3. Buenos días, estoy intentando hacer un tablero dinámico de cartas para un juego. El problema que tengo es que el tablero no me sale centrado cuando el tamaño del mismo varía. Lo he intentado de todas las maneras pero no encuentro la manera de hacer que funcione. creo el tablero de la siguiente manera: public void CrearTableroCartas () { int cont = 0; for(int x=0; x<anchoAlto; x++){ for(int i=0; i<anchoAlto; i++){ float factor = 9.0f / anchoAlto; Vector3 posicionTemp = new Vector3(x * factor, i * factor, 0); GameObject cartaTemporal = Instantiate(carta, posicionTemp, Quaternion.Euler(new Vector3(0, 180, 0))); cartaTemporal.transform.localScale *= factor; cartaTemporal.transform.position = posicionTemp; } } Adjunto dos imágenes del problema. Pueden ver que si el tablero tiene muchas cartas, se centra pero si hay pocas se escala bien el tamaño pero no se quedan centradas y se pierden un poco. ¿Alguien tiene alguna idea de como resolverlo? Muchas gracias de antemano! Saludos.
  4. Hola, Alguien que sepa un pocom asin ternamente sobre el lenguaje de programacion y me diga hablando en terminos re rendimiento, como funcionan varios for en un update que se actualiza por frame, son una serie de for yo diria comunes, nada fuera del margen normal de sobrecarga. O porlomenos y ocreo que no es sobrecarga, y si no lo es en que momento se podria decir que estamos sobrecargando mas datos de lo que puede procesar un script por frame? Estos son algunos for en un update public class Checker : MonoBehaviour { public List<Track> Tracks = new List<Track>(); private void Update() { foreach (var Track in Tracks) { foreach (var Pipe in Track.Pipes) { for (int i = ; i < Pipe.Values.Length; i++) { if (Pipe.Values[i] == Pipe.Pipe.GetComponent<Pipe>().values[i]) { Pipe.Joined = true; } else { Pipe.Joined = false; break; } } } for (int i = ; i < Track.Pipes.Count; i++) { if (Track.Pipes[i].Joined == false) { Track.TrackOn = false; return; } } Track.TrackOn = true; } } } De promedio tengo minimmo 5 pipes(tubos) por Track(via), un GetComponent malo ahi que se repite, nose como guardar antes ese determinado componente de ese determinado objeto, mas omenos itero mas de unas 100 o 250veces por frame, esto me parece una locura ami, pero no conosco el potencial de la programacion todabia soy un poco novato. Esto le duele mucho a los fps? Asi tal cual como ese codigo, y si no es mucha carga de info por frame, cuando se podria decir que uno se pasa de mambo conlos for en cada frame?
  5. Hola. <3 Necesito resetear cada nivel, nose como hacerlo, conosco que existe la libreria "UnityEngine.SceneManagement", se como reiniciar una Scena mas omenos facilongo, pero necesito algo mas complejo... Cada ves que me caigo me reinicio PERO tengo que reiniciar mis plataformas, placas, Player,puntos, y algunas que otras cositas, MENOS la camara y la variable de rotacion de los puntos. Basicamente resetear determinadas cosas(GameObjects) de una scena. Para que?? Necesito mantener la fluides de mi camara, por ende no necesita ser reiniciada su pocision. - idem - de mi rotacion del score, reiniciando la posicion de los score(puntos), pero no la rotacion. Respuestas? Si puede haber. Saludos? Si hay. Abrazo? Tambien Espero respuestas Att: enelmenu Firma Oficial (R)
  6. Hola, estoy creando una aplicación con Vuforia en AR pero le quiero agregar el también el VR para combinar ambos con el Google Cardboard, todo en la pc funciona bien y se ve bien pero cuando exporto a Android y lo pruebo apenas se abre la aplicación se ve como en la primera imagen y después se queda en negro por completo y no se ve nada, ayúdenme por favor no entiendo porque pasa esto (ya agregue en Player Settings el soporte para cardboard y seleccione la opción de google cardboard), en la pc funciona todo bien pero en el móvil no va, ayuda.
  7. Muy buenas, estoy creando un inventario a traves de una lista y no encuentro la manera de comprobar si un objeto existe en el inventario, la lista la he creado así: using System.Collections; using System.Collections.Generic; using UnityEngine; public class Inventory { public string name; public int health; public Inventory(string newName, int newHealth) { name = newName; health = newHealth; } } Para añadir un objeto lo que hago es esto: Donde manzana es el nombre del objeto y 1 su poder de salud (health en el código de arriba). Lo que intento es saber como buscar en mi lista si por ejemplo tengo una manzana pero no encuentro el comando adecuado, alguna idea?? :S Muchísimas gracias. PD: El primer código y el segundo están en scripts distintos, aunque no creo que eso suponga ningún problema al declarar las variables públicas.
  8. Hola Soy nuevo y es la primera vez que publico no me permite publicar en otro lugar no me aparece el botón de "iniciar un nuevo tema" y solo aparece en esta categoría por eso es que lo estoy publicando aquí y no puedo publicar en otras partes como otros usuarios ademas tampoco me permite responder mensajes. Mi duda es la siguiente: Yo trato de crear un spawn de objetos pero nose como definir la cantidad de objetos que se van a crear y al no definir la cantidad se crean infinitos objetos que colapsan el juego. El código es el siguiente: Pregunto en este foro porque en Internet y en la guía de unity 3D no pude encontrar la respuesta a mi problema tan básico estoy recién empezando .
  9. Estoy queriendo realizar una clase generica la cual la utilizare para llamar a un metodo especifico llamado "Execute" lo cual tendra diferentes funcionalidades dependiendo la clase a la que se este refiriendo. La pregunta es si es el mejor metodo, lo cual cada objeto tendra la clase "Action" y sus derivadas estaran dentro de una clase llamada "GlobalActions" como para dar un nombre. La funcionalidad de este es que tengo una clase controladora encargada de la interfaz, lo cual muestra informacion segun el objecto seleccionado; mas especificamente en un juego RTS. Luego está analiza la clase "Action" y muestra los botones correspondientes segun el tipo (sprite, etc), lo cual agrega un Listener a un boton especifico con sus respectiva funcion (Execute). using UnityEngine; using System.Collections; using System.Collections.Generic; using System; using System.Reflection; namespace ControllerRTS { public class Action : MonoBehaviour { void Start() //test { AddAction(typeof(ActionTest1)); AddAction(typeof(ActionTest2)); Execute(); //test button1 Execute(1); //test button2 } private List<Type> actions = new List<Type>(); public void AddAction(Type action) { actions.Add(action); } public void Execute(int index) { Type type = actions[index]; MethodInfo method = type.GetMethod("Execute"); object instace = Activator.CreateInstance(type, null); method.Invoke(instace, null); } } //funciones externas class "GlobalActions" public class ActionTest1 { public void Execute() { Debug.Log("ActionTest1"); } } public class ActionTest2 { public void Execute() { Debug.Log("ActionTest2"); } } //etc.. }
  10. Aloha. Usando un CharacterController cómo puedo comprobar sí el player está cayendo? Si la Y es negativa, por ejemplo? Aunque ahora mientras escribo esto pienso que quizás eso podría dar bastantes problemas. Conocéis alguna otra forma de hacerlo? Se agradecen las respuestas!
  11. Hola mi nombre es Javier y soy nuevo en el foro, no estoy muy seguro como puedo postear el problemilla que tengo en la sección del foro que corresponde por lo que lo posteare por aqui. Necesito algún tutorial a ser posible o un ejemplo del codigo en Csharp para crear una barra de progreso en un juegecillo 2d que estoy preparando.Seria pasar proporcionalmente el recorrido del Gameobject_1 al gameobject2.
  12. Hola Resulta que tengo un script que controla mi player, y otro que controla el FOV de la cámara. Y tengo una variable en el script del player, a la cual accedo en el script de la cámara de esta manera: // ScriptDelPlayer public static bool puedeCorrer = true; // ... ========================================================== // ScriptDeLaCamara if (ScriptDelPlayer.puedeCorrer) { // ... } // ... Y funcionaba, el IF cumplía su función y el FOV también. Pero el tema del FOV no es lo importante. A lo que me refiero, es que accedí a la variable "puedeCorrer" de esa manera en concreto. Pero luego, quise probar a acceder a ella de esta otra manera: // ScriptDelPlayer [SerializeField] private bool _puedeCorrer = true; public bool PuedeCorrer { get { return _puedeCorrer; } set { _puedeCorrer = value; } } ========================================================== // ScriptDeLaCamara private GameObject _jugador; void Awake() { _jugador = Resources.Load("PlayerPrefab") as GameObject; // <--- Obviamante metí el prefab del player en una carpeta llamada 'Resources' para que esto funcione. } void Update() { FOV(); } void FOV() { if (_jugador.GetComponent<ScriptDelPlayer>().PuedeCorrer) { // ... } } Y ya no funcionaba más el FOV, como si la condición IF no se evaluara correctamente, y en la consola de Unity no sale ningún error, ni nada. Y realmente no sé si es que lo hago mal, o es que no es así... lo cual es 100% seguro xd También probé con esto otro: // ScriptDelJugador [SerializeField] private bool _puedeCorrer = true; public bool PuedeCorrer { get { return _puedeCorrer; } set { _puedeCorrer = value; } } // ... ========================================================== // ScriptDeLaCamara private ScriptDelJugador _scriptJugador; void Awake() { _scriptJugador = GetComponent<ScriptDelJugador>(); } void Update() { FOV(); } void FOV() { if (_scriptJugador.PuedeCorrer) { // ... } } Y tampoco funcionaba, el FOV no aumentaba ni disminuía, ni nada. Realmente la única manera con la que me funcionó fue con la primera, que es la más """"normal"""". LA DUDA ENTONCES ES: Existen otras maneras de acceder a una variable desde otro script que no sean estas? Simplemente curiosidad :d PD.: Soy medio novato, quiéranme.
  13. Hola comunidad. Soy nuevo en el foro y vengo con una duda. Estoy a poco de terminar mi primer "juego" aunque mas que eso es una prueba. de una app para moviles android en un punto el jugador va a desbloquear unas imagenes y quisiera que esas imagenes se pudieran compartir con facebook o alguna pagina similar. Alguien ¿conoce un script apropiado para esta función? no eh podido encontrar nada por google aun. ¡ Muchas gracias a todos !
  14. Hola!! Estoy acabando el menú de un juego para acabar pasándolo a Android. El caso es que es de Realidad Virtual, y ya tengo el menú hecho, salvo, que tengo un punto en el medio que te indica dónde está el medio de la pantalla, y únicamente necesito, que ese punto que se mueve conforme yo me muevo, al pulsar el boton A de un joystick, haga de ratón, y me pulse el botón que esté en el medio de la pantalla. Me explico? A ver si pudierais ayudarme. Os puedo dar más datos si no he sido lo suficientemente claro. Saludos y gracias de antemano.
  15. 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??
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...