El rincón de Unity

autlos

#239 Cada vez que veía posts en este hilo me metía a ver si era lo que acabas de poner.

:)

1 respuesta
qunram

#240 #241 Ya lo he comentado en otro hilo, pero mi recomendación es q si quieres hacer algo en 2D, el 2DToolKit esta de oferta durante 3 días mas y merece la pena.

1
litoss

Nada de la nueva GUI no?

1 respuesta
Selbryn

#243 Nope

B

Muy buenas a todos!

En base a los vídeos de behind the scenes de Rayman Legends, me ha entrado mono de saber cómo cojones hacen esos terrenos 2D tan flexibles y modificables "on the fly", me ha dado por buscar y para Unity hay una especie de plugin llamado Ferr2D Terrain Editor.

Lo malo es que vale $30, y para mí que no tengo ingresos por ningún lado, pues me es una patada en los cataplines.

Creéis que vale la pena pagar por ello? Sería "sencillo" hacer un plugin similar?

1 1 respuesta
eZpit

Todo es hacer una mesh editable y un buen algoritmo para aplicarle texturas. Aunque claro, es más fácil decirlo que hacerlo xD

Selbryn

Yo a lo máximo que he llegado que se pueda relacionar con eso en unity es mover vértices de los objetos en tiempo real, e ir modificando su estructura.
Si luego a eso en función de unos parámetros le aplicas unos u otros materiales... pues puede que salga algo asi xd

sergilazaro

En la página de Unity Patterns, hay una herramienta para crear polígonos en 2D directamente en el editor, y generar la malla de visualización y la de colisión automáticamente:

http://unitypatterns.com/new-tool-polymesh/

Es de esas cosas que pueden salvar la vida en gamejams :P

1 respuesta
eZpit

#248 Pero las nuevas herramientas 2D precisamente contienen eso ya, y ademas automaticamente.

1 respuesta
sergilazaro

#249 No tuve tiempo de probar la nueva versión aún... Lo de editar meshes no es interno a un sprite? La herramienta que he linkado crea índices de textura de forma que haya tiling y tal. Además se pueden crear curvas.

qunram

Lo q hace la nueva versión de unity, es dejarte modificar los "vértices" del collider 2D

http://www.youtube.com/watch?v=4qE8cuHI93c#t=188

Vamos, q te curras las imágenes en photoshop. La herramienta que has puesto tiene muy buena pinta, pero al no haberla probado, no se si tiene alguna pega.

1 respuesta
sergilazaro

#251 Supongo que tendrá algo añadido a Unity 2D porque la herramienta la hizo para los desarrolladores de Night In The Woods, que si no recuerdo mal usaban la beta de la 4.3 antes de que saliera. En cualquier caso no estoy seguro :)

#253 Oops. Bueno, lo que decías básicamente puede aplicarse a lo que había mostrado yo, así que sin querer has hecho una crítica (no destructiva) a algo sin querer, y era consistente XD

1 respuesta
qunram

#252 perdona, no había puesto referencia, quería decir la que ha puesto @Midgard (viene del DAoC?) en el mensaje #245 pero ahora que lo he visto mas a fondo, también tiene buena pinta.

1 respuesta
tarzanete

A ver, tengo una dudilla para mi juego.
Tengo claro que quiero, pero tengo problemas con la cámara y el manejo (vamos, el 90% de la jugabilidad)
Un cohete , que viaja por el espacio, ahora mismo me manejo con una cámara que está tras de la nave, y que con WASD doy fuerza hacia delante, atras y strafe a los lados, la nave si dejo de apretar tiene inercia (como en el espacio); en la cruceta tengo todo lo que son las rotaciones, arriba-abajo e izda-derecha.
Problema? que cuando roto, también me rota el vector de fuerza, con lo que queda poco "realista" la nave da la vuelta al rotar, y no quiero eso.
Una cosa que había pensado en caso de que fuera imposible solucionarlo, es que se moviera en plan arcade... la nave se mueve y rota con el ratón (fps)según la posición de la cruceta respecto al centro de la pantalla y con los propios botones del ratón acelerara y frenara (el strafe no lo veo necesario, si se puede compensar con una rotación lateral). Pero me gustaría poder mirar a mi alrededor, aunque fuera con la cruceta, o a la inversa, com oen el gta para pc , aprovechando que tengo una mano libre. Eso serían dos scripts para la cámara o dos cámaras e ir alternando.
Lo primero tiene solución o tengo que tener lo de las dos cámaras/scripts?

3 respuestas
qunram

#254 podrías subirlo a una web? es q sin verlo no sabría decirte.

1 respuesta
The-Force

#254 Te ayudaría pero no tengo ni idea de a que te refieres, dar la vuelta al rotar es totalmente normal xD
No se si te sirve pero por decir algo... Rigidbody.AddRelativeForce

1 respuesta
qunram

Aquí dejo una pequeña lista de lo que trae 2DToolKit con respecto al 2D de Unity3D 4.3

http://2dtoolkit.com/forum/index.php/topic,3081.msg15127.html?PHPSESSID=5b667b6271c69b2e9e3f01a1dfc5a227#msg15127

Lo hemos comentado en otro hilo, pero prefiero seguir en este.

B

#254 No he entendido lo que quieres hacer, lo único que he entendido es que no tienes idea de hacer que el cohete rote con el ratón (arcade) y que acelere/decelere con el ratón?

Yo tuve que hacer algo similar cuando estuve desarrollando Unsurvive hará unos meses, te servirá igual, pues necesitaba que el jugador rotase a la posición del ratón.

Esto se consigue con un Raycast para determinar la posición del ratón en la escena 3D, te dejo el código aquí:

using UnityEngine;
using System.Collections;

public class tuClase : MonoBehaviour {
	public Camera pointerCamera;
	public Vector3 mousePos;

void Start () {
    pointerCamera = GameObject.Find("pointerCamera").camera; 
																							 
}

void Update () {
	mousePos = Input.mousePosition;
	mousePos.z = Vector3.Distance(pointerCamera.transform.position, transform.position);
	// hacer que el gameobject que tenga este script rote a la posición del mouse
	transform.LookAt(pointerCamera.ScreenToWorldPoint(mousePos));
}
}

#259 Tutorial de la bola? Pásamelo y así sabré el nivel que tienes ahora ^^

1 2 respuestas
YaW

Algún tutorial recomendable de Unity? Digo haciendo algún juego sencillo de medias y tal.

Me he hecho el tutorial de la bola y eso y está cool, pero el siguiente tutorial lo he abierto y flipas, ya podían haber puesto algo más intermedio xD

#258 http://unity3d.com/learn/tutorials/projects/roll-a-ball

2 respuestas
tarzanete

#255 #256 #258 Ante todo gracias por las molestias.

Voy a reexplicarme. Nave espacial, tiene inercia, porque no hay fricción, por lo que debe moverse en una dirección, vamos un vector3. Para ello cuando le das una fuerza de empuje, se suma al vector de movimiento que tuviese. El tema es que quiero poder rotar el objecto y la cámara, sin que cambie el vector de dirección. Como parece que será imposible, tendré que usar la segunda forma, al estilo GTA, y para eso el script de Midgard me vendrá bien :)

De todas formas cuando tenga algo lo subiré para que me digais si el manejo es aceptable o infernal xD

1 respuesta
PiTiFiNi

Estoy probando las animaciones en 2d, pero no encuentro el sistema de bones. ¿En unity se llamaba de otra manera?
#262 shit! gracias igualmente.

1 respuesta
B

#260 Sin que cambie el Vector de dirección? No lo entiendo, pero si estás usando rigidbody a la hora de aplicar fuerza haz simplemente rigidvody.AddForce(); (ahí estará añadiendo fuerza al vector indicado y nada más, aunque se rote el objeto).

Si lo que quieres es que al rotar el objeto siga con la misma fuerza (como si de un coche se tratase) yo me comí marrones en la MV Jam, cuando llegue a casa busco el script en cuestión y lo comparto contigo!

#261 Que yo sepa Unity no tiene sistema de bones, incluso en la 4.3, lo que se hace es cambiar la posición de los elementos del objeto al que quieres animar con el DopeSheet ^^

Aún así, yo esta tarde probaré Spriter, que es como Spine pero sin tantas limitaciones en el aspecto gratuito, a ver qué tal está.

3 respuestas
tarzanete

#262 Es que no uso rigidbody, no lo he probado y no quería más marrones.

1 respuesta
B

#263 Entonces qué estás usando? Teniendo en cuenta que un cohete es como un vehículo, usar las físicas del rigidbody sería lo más oportuno! :P

#265 Enséñanos el juego a ver como se mueve xD

1 respuesta
tarzanete

#264
Pues... no he usado físicas, me daba miedo que se convirtiera en algo demasiado simulador

#pragma strict

var rotateSpeed :float = -77.0;
var movement :Vector3= Vector3(0,0,0);
var maxSpeed : int =1;
function Start () {

}

function Update() 
{
	if(Input.GetKey(KeyCode.Mouse0) && (movement.z<maxSpeed)) {
	movement= movement+Vector3(0,0,0.01* Time.deltaTime);
	}
	
if (Input.GetKey (KeyCode.Mouse1) && (movement.z>-maxSpeed)) {
movement= movement+Vector3(0,0,-0.01* Time.deltaTime);
}

if (Input.GetKey ("left"))
{
	transform.Rotate(Vector3.down* 40 * Time.deltaTime);
}
if (Input.GetKey ("right"))
{
	transform.Rotate(Vector3.up * 40 * Time.deltaTime);
}
if (Input.GetKey ("up"))
{
	transform.Rotate(Vector3.right* 40 * Time.deltaTime);
}
if (Input.GetKey ("down"))
{
	transform.Rotate(Vector3.left* 40 * Time.deltaTime);
}
transform.Translate(movement);
}

Ahora mismo roto con la cruceta y aplico una aceleracion positiva o negativa con el mouse 0 y 1

link al juego

2 respuestas
The-Force

#265 sacado de Transform.Translate

Translate(translation: Vector3, relativeTo: Space = Space.Self): void;
Description
Moves the transform in the direction and distance of translation.

If relativeTo is left out or set to Space.Self the movement is applied relative to the transform's local axes. (the x, y and z axes shown when selecting the object inside the Scene View.) If relativeTo is Space.World the movement is applied relative to the world coordinate system.

Tienes que poner

transform.Translate(movement, Space.World);

para hacer el movimiento relativo al eje de coordenadas global y no local del objeto.

Luego para calcular la direccion que le añades vas a tener que usar transform.up, transform.right, transform.forward, si quieres aplicar aceleracion en una direccion relativa al objeto. Algo en plan:

        
if(Input.GetKey(KeyCode.Mouse0) && (movement.z<maxSpeed)) { movement = movement + transform.up * 0.01 * Time.deltaTime; }
if (Input.GetKey (KeyCode.Mouse1) && (movement.z>-maxSpeed)) { movement = movementt + transform.up * -0.01 * Time.deltaTime; }

Todo esto es igual de facil de realizar con Rigidbody y ademas es mucho mas facil para el tema de colisiones. Tambien la simulacion seria determinista y no dependeria de los fps, que es como lo tienes ahora.

#267 La documentacion de unity es bastante buena en cuanto a codigo. En cuanto a interfaz no se decirte.

1 2 respuestas
YaW

Y ya que estamos, algún libro de Unity así guapo? Me da igual el idioma.

#266 si, es buena la documentación. Pero nunca viene mal algún libro para ojear referencias o ejemplos.

#268 gracias, voy a echarle un vistazo :3

#269 si, eso ya lo había mirado, en 2D supongo que no habrá mucho material así que ando buscando ejemplos de juegos 3D "faciles" hechos desde 0 y tal, para ir viendo cada parte de Unity con un ejemplo concreto.

2 respuestas
Selbryn

#267 Ahora te subo un pdf bien chulo en español

https://mega.co.nz/#!LkJmmJhJ!UBgDcjM1UtrrLhvsoC5_sRMeONFdCoUL0ep2oPcZU9A

Tengo otro que ocupa 11MB más completo a ver si lo encuentro.

1 respuesta
eZpit

#259 Si te interesa lo nuevo en 2D, tienes el tutorial oficial que han puesto con video incluido:

http://www.youtube.com/watch?v=4qE8cuHI93c&feature=share
https://www.assetstore.unity3d.com/#/content/11228

#262 Es un fallo muy grande que metan sistema de animaciones 2D y no metan bones. De todos modos, me imagino que se podrá fijan el anchor point y rotar los sprites a partir de ahi simulando un sistema de esqueleto. Lo que ya no se si se podrán establecer jerarquías de parentescos para rotar debidamente partes completas.

1 2 respuestas
B

#269 Supongo que si no lo han hecho es porque quitarían trabajo a software del tipo Spriter o Spine, no sé, quizás tengan pactado hacer algo en conjunto con Spine que es el más famoso, y por eso no lo hagan, ni idea.

Tema cerrado