Jump to content

Goex

Fosiles
  • Content Count

    9
  • Joined

  • Last visited

Community Reputation

4 Neutral

About Goex

  • Rank
    Recién Llegado
  1. se supone que aqui se ayuda a corregir codigo , aconsejar y orientar gente que no ha podido resolver una situacion, ...... aqui no estamos para hacerte tu juego, que es eso de "no encontre este script y no se hacerlo"?? pues ponte a leer y aprender programacion , hay mucha documentacion de unity dando vueltas, el script no es muy dificil pero no pienso escribirte el codigo que no asimilarias, solo harias copy paste......... a modo de informacion, debes buscar info sobre OnCollisionEnter , y loadlevel
  2. Buenas.... estoy haciendo un juego al estilo metal slug 5 / contra .... quiero implementar el dash al personaje, pude dejarlo que haga el dash con el personaje mirando adelante (o sea ,durante el dash no podemos girarlo) y la distancia a recorrer...... el problema es que lo hace todo en 1 segundo, si le digo que avanze 2 metros los hace en 1 seg, pero si le digo que haga 30 metros, tmb los hara en ese tiempo........ digamos que quiero que haga por ejemplo 5 metros pero no en 1 segundo, sino que tarde 3 segundos en recorrer esa distancia.... este es el codigo que tengo de momento para el dash public var dashDistance : float = 25.0; private var counter = 0; private var isDashing = false; if (Input.GetButton ("Fire2")) { isDashing = true; } if(isDashing){ var forward : Vector3 = transform.TransformDirection(Vector3.forward); var curSpeed : float = 3.0 * dashDistance; controller.SimpleMove(forward * curSpeed ); counter++; } if(counter > 15){ isDashing = false; counter = 0; } el personaje tiene un character controller y un box collider ...
  3. muchisimas gracias a ambos , si , en cuanto al codigo soy novato (lo habran notado a la legua ) o yo soy demasiado malo o algo no salio como debia , el input deberia quedarme if (Input.GetButton ("Fire2")) { transform.Rotate(0f,Input.GetAxis("Horizontal")*velocidadRotacion*Time.deltaTime,0f) } realmente no paso nada de nada :s y el otro que probe fue if (Input.GetButton ("Fire2")) { transform.forward = Mathf.Clam(Input.GetAxis("Vertical"),0f,1f) * slideSpeed } y este es el error que me tira Assets/player/mecanim test/movetests.js(52,66): BCE0022: Cannot convert 'float' to 'UnityEngine.Vector3'. hoy la verdad estuve a full logrando disparar (lo cual me ha quedado bien) , lei esto hace 20 minutos y probe eso, pero se ve que algo hize mal o no hize agradezco sus respuestas, tratare de leer sobre mathf , a ver si encuentro como poder solucionarlo , ahora estoy cansado (4:30 am aca) , me voy a dormir je saludos
  4. Buenas, actualmente sigo en mi proyecto de un shooter estilo contra , mi pj actualmente puede apuntar en 8 direcciones, y saltar sin problemas , tambien agacharse (aqui ya configure que el collider sea menor obviamente) , y tengo la animacion del barrido, la cual ya le asigne un boton , y la realiza sin problemas (tmb ajuste el collider) ahora... el problema durante el barrido puedo mover el personaje , o sea, izq o derecha, cuando en realidad yo quiero que al barrer avanze en la direccion que esta mirando cierta distancia, sin poder volverlo hacia atras (estilo de barrido que tenia sunsetriders y metal slug 5 ) he intentado con transform position ,translate pero no, ademas que no se como asignarle por ej a un transform que dure cierta cantidad de segundos nomas (soy noob , si ) alguna idea de como lograr el barrido para el personaje?? para que al tocar el boton se mueva esa distancia sin poder hacer otra cosa? aqui dejo mi script de movimiento del personaje por las dudas (boton E es para agarcharse, FIRE 2 es el del barrido) pragma strict var walkSpeed : float = 1.80; var jumpSpeed : float = 8.0; var gravity : float = 20.0; var slideSpeed : float = 2; var controller : CharacterController = GetComponent.<CharacterController>(); var applyRootMotion: boolean = true; private var moveDirection : Vector3 = Vector3.zero ; function Start () { } function Update() { if (controller.isGrounded) { moveDirection = Vector3(Input.GetAxis ("Horizontal") , 0, Input.GetAxis("Vertical")); moveDirection *= walkSpeed; if (Input.GetKey (KeyCode.Space)) { moveDirection.y = jumpSpeed; } if (Input.GetKey (KeyCode.E)) { walkSpeed = 0; controller.height = 1; controller.center = Vector3 (0, 0.5, 0); controller.radius = 0.21; } else { walkSpeed = 1.80; controller.height = 1.85; controller.center = Vector3 (0, 1, 0); controller.radius = 0.21; } if (Input.GetButton ("Fire2")) { controller.height = 1; controller.center = Vector3 (0, 0.5, 0); } } moveDirection.y -= gravity * Time.deltaTime; controller.Move(moveDirection * Time.deltaTime); }
  5. totalmente en desacuerdo amigo, si un cliente dice que tu script (supongamos uno donde le configuras movilidad, salto, slide, agacharse, apuntar en diagonales, disparar en 8 direcciones, cambiar 5 tipos de armas, doble salto y que tenga una armadura que al recibir daño se regenere el hp con el tiempo) , si , te pueden pedir algo asi, y te dicen "tu script vale 3$ ............. simplemente valdra eso?? NO tiene que haber un balance entre el conocimiento (que vale desde el contratarlo) y el tipo de trabajo que le pidas ,supongamos un albañil, no te cobrara lo mismo por levantar una pared que por 10...
  6. estaba en el mismo problema.......... mi solucion? lo que hize fue dejar a mi personaje modelado en blender en modo legacy , con el animation hize las animaciones (pero a estas mismas no las marque como legacy) , luego al personaje lo pase en rig a humanoid , y listo, ya tenia el personaje humanoide listo para usarlo con mecanim, con las animaciones que hize El unico problema (es cuestion de tener paciencia) que tuve , es que cuando queria editar una nueva animacion o modificar una ya hecha, debia pasar el personaje a legacy ,sino unity se crasheaba .... una vez terminada las ediciones, volvia el pj a humanoide y listo.
  7. Muchas gracias por las respuestas....... seguire buscando, quizas un dato no menor que no mencione , fue que el personaje esta hecho en 3d en blender, tiene el rig y demas, aunque lo animo a modo legacy , al tocar la A y D camina hacia adelante y atras, pero al tocar W y S , se mueve en profundidad, cosa que no quiero.... deberia anular la profundidad, hacer estados de animaciones y asignarles w y s?? lamento la pregunta tan noob jaja
  8. El tema es que si usa Apply Root motion hay que ver las direcciones que tienen las animaciones, a veces una animacion de walk no va derecha, en ese caso si la quiere usar y que valla derecha, deberia no seleccion el apply root motion y asignarle el mov al pj desde los scripts lamentablemente soy noob y no entiendo mucho, pero aca tengo un script de movimiento que podrias probar #pragma strict public var speed : float = 6.0; public var jumpSpeed : float = 8; public var gravity : float = 20; private var moveDirection : Vector3 = Vector3.zero; function Start () { } function Update () { var Controller : CharacterController = GetComponent(CharacterController); if (Controller.isGrounded) { moveDirection = Vector3(Input.GetAxis("Horizontal"),0,Input.GetAxis("Vertical")); moveDirection = transform.TransformDirection (moveDirection); moveDirection *= speed; if(Input.GetButton("Jump")) { moveDirection.y = jumpSpeed; } } moveDirection.y -= gravity *Time.deltaTime; Controller.Move(moveDirection *Time.deltaTime); }
  9. Soy nuevo en esto de crear juegos,la verdad he estado mirando tutoriales sobre scripts, pero no he logrado poder armar un controlador para las funciones que quiero problemas: 1)cuando el pj se mueve a la derecha va bien,pero al ir a la izquierda camina de espaldas hacia atras, no se como hacer que gire 180 grados 2)quisiera que el personaje pueda mirar arriba y agarcharse, Aqui dejo el script que tengo de momento #pragma strict public var speed : float = 6.0; public var jumpSpeed : float = 8; public var gravity : float = 20; private var moveDirection : Vector3 = Vector3.zero; function Start () { } function Update () { var Controller : CharacterController = GetComponent(CharacterController); if (Controller.isGrounded) { moveDirection = Vector3(Input.GetAxis("Horizontal"),0, Input.GetAxis("Vertical")); moveDirection = transform.TransformDirection (moveDirection); moveDirection *= speed; if(Input.GetButton("Jump")) { moveDirection.y = jumpSpeed; } } moveDirection.y -= gravity *Time.deltaTime; Controller.Move(moveDirection *Time.deltaTime); } He buscado por todos lados algun tutorial de algun juego de ese estilo,pero solo hay de 2.5D donde anulan la profundidad y el personaje basicamente se mueve a ambos lados (encima es una esfera la cual no necesita rotar) y salta, nada concreto para otras cosas ,ayuda por favor Saludos
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...