como ago para que el clon cuando aga spawn se mueva hacia delanteVoid Update(){if (Input.GetButtonDown ("Fire1")) { shoot(); }}void shoot(){
GameObject clone;
if (projectile) {
clone = Instantiate (projectile, transform.position, transform.rotation) as GameObject;
}
} Grasias de antemano
Pues el clon tiene que llevar un script que le diga que hacer, en caso de que quieras ir hacia delante, cosa que no haces con el uso correcto de la gramática, utiliza vector3.forward.
le puse el forward...void shoot(){
Rigidbody2D clone;
if (projectile) {
clone = Instantiate (projectile, transform.position, transform.rotation) as Rigidbody2D;
transform.Translate(Vector3.forward * Time.deltaTime, Camera.main.transform); // Aqui le digo que se mueva
}
}No ocurre nada....
Se mueve pero el objeto que tiene el script, no el clone. Lo que necesitas es añadirle un script al proyectil que se mueva desde el momento en el que se instancia hasta que se destruya:
void Start ()
{
Destroy(gameObject, 3);
}
void Update ()
{
transform.Translate(tranform.forward);
}
Y no es lo mismo Vector3.forward (0,0,1) que transform.forward (vector diferente a 0,0,1)
me coloca el
transform.Translate(tranform.forward);
el transform,forward en rojo como error...
Había escrito mal transssssform
se mueve en eje Z y si lo cambio a right solo se mueve a la derecha ayudenme voy dias sin dormir....
Pues fíjate si el clon esta rotado, debería funcionar, sino prueba a girar tu mismo el proyectil desde el editor y me dices si sigue yendo en el eje z.
si lo ago con forward y lo giro 135 grados cambia de sentido y si le pongo right y le ago a 90 cambia el sentido... pero a 135 apenas se ve el grafico y a 90 no se ve tendria que girar en el eje x para cuando se gire cambie, pero no hay una forma de que cuando el personaje este a la derecha en el sript se active un if que se mueva a la derecha y cuando el personaje este a la izquierda aya otro if en los update que diga a la izquiersa.???
Eso es lo que tienes que pensar y esos son los planteamientos que se hacen antes de empezar a escribir, tú mismo te estás dando la respuesta, para saber cuándo está mirando a cada lado fíjate en qué cambia en tu trasform, supongo que lo que cambiará será la rotación del objeto, si la rotación en el eje X es mayor que A o menor que B o que esté entre C y D... etc. Puedes poner las condiciones que quieras!!El transform.forward debería funcionar, seguramente tengas algún fallo haciendo la instancia, o tal vez no rotas el objeto que instancia el proyectil. Son fallos que tienes que ver tú Aún así sigue echándole cabeza, que todos empezamos igual...
le ise asi...if (Input.GetKeyDown (KeyCode.D)) {
this.transform.Rotate (Vector3.up, 180f);
right = true;
}
if(Input.GetKeyDown(KeyCode.A)){
this.transform.Rotate (Vector3.up, -180f);
right = false;
}y puse en el del projectil... void Start () {
player = GameObject.FindGameObjectWithTag ("Player").GetComponent<Player> ();
Destroy(gameObject, T);
}
void Update (){
if (!cambio) {
player.right = true;
shootR();
}
if(cambio){
player.right = false;
shootL();
}
}
void shootR(){
transform.Translate (Vector3.right * Time.deltaTime, Camera.main.transform);
}
void shootL(){
transform.Translate (Vector3.left * Time.deltaTime, Camera.main.transform);
} pero no funciona se sigue moviendo en right creo q estoy mal en el sript del personaje me puedes decir en q estoy mal??
[quote author=kalm97" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="34435" data-ipsquote-contentcommentid="123607">se mueve en eje Z y si lo cambio a right solo se mueve a la derecha http://unity3d.com/es/learn/tutorials/topics/scriptingdeja tu proyecto aun lado temporalmente y estudia los tutos que hay aqui, y al final creeme que podras hacer lo que pides y mucho mas
![:) date=1447716772]
</div><!-- .postbody -->
<div class= :)](Smileys/invision/default_smile.png)
Título:
Disparar projectil
Publicado por:
juanma_teso en
Noviembre 18, 2015, 01:26:52 PM
Seguramente siempre entre en el mismo condicional, pon un Debug en el update del proyectil para saber si cambio se vuelve false en algún momento.
en el player me di cuenta que no cambia el bool, inicie el juego para comprobar en la pantalla del script y no cambia a false o a true los bool no se si compreden los cuadritos esos del panel no cambian... creo q esta mal algo del player...
No cambian si tu no pones una orden para que cambien, sin una base de programación se te va a hacer muy difícil avanzar en un juego por fácil que parezca
ya lo resolvi muchas grasias por su ayuda.. lo que ise fue eliminar la funcion para disparar de Player y le ise un sript aparte y le dije q cuando ago click D creaba projectil 1 y cuando ago click A projectil 2 y cada projectil tiene un transform de posicion el projectil 1 a right y el 2 a left.... como pongo ese post en solucionado