Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

[SOLUCIONADO] Voltear Personaje 2d Problema

Iniciado por TronMorton, Enero 17, 2016, 11:34:33 AM

Tema anterior - Siguiente tema
Enero 17, 2016, 11:34:33 AM Ultima modificación: Enero 17, 2016, 06:52:47 PM por TronMorton
[SOLUCION] A bajo del todo!Hola, estoy haciendo un juego de plataformas que cambie la gravedad cada vez que hagas click vaya por el techo o por el suelo, he hecho el scrpit para que cambie la gravedat y gire el objeto pero al rotarlo el objeto se queda desconfigurado. Aqui os dejo una imagen del problema y el scprit que tengo hecho per el momento, para que se entienda mejor el error, no siempre se queda asi mal rotado, sino que aveces gira bien, aveces no gira, aveces solo se queda desconfigurado un poco y aveces como la imagen; como si la rotacion no girara siempre con los mismos grados. Gracias.  Script:using UnityEngine;
using System.Collections;

public class ControladorPersonaje : MonoBehaviour {
    public bool Gravetat = true;
    public GameObject StormTropper;

    // Use this for initialization
    void Start () {
    
    }
    
    // Update is called once per frame
    void Update () {
        if (Gravetat) {
            if (Input.GetMouseButtonDown (0)) {
                Physics2D.gravity = new Vector3 (0, 9.8f, 0);
                Gravetat = false;
                StormTropper.transform.eulerAngles = new Vector3 (180, 0, 0);
            }
        } else {
            if (Input.GetMouseButtonDown (0)) {
                Physics2D.gravity = new Vector3 (0, -9.8f, 0);
                Gravetat = true;
                StormTropper.transform.eulerAngles = new Vector3 (0, 0, 0);
            }
        }
    
    }
}

 Espero que os haya servido! Gracias a todos!

Enero 17, 2016, 11:55:29 AM #1 Ultima modificación: Enero 17, 2016, 12:18:50 PM por Arthure
mmm doncs no ho se perque pot passar aixo noi pero como que m'ha fet molta gracia (en el bon sentit) aquest "BraçDret" "BraçEsquerre" ... et proposo una modificacio del codi que tens a la funcio Update per tal que sigui mes facil d'entendre i de modificar sempre que tinguis la necessitat void Update ()

    if (Input.GetMouseButtonDown (0)) {
       
        StormTropper.transform.eulerAngles += Vector3.right * 180f;
       
        Physics2D.gravity = (Gravetat) ? Vector3.up * 9.8f : Vector3.up * (-9.8f);
       
        Gravetat = !Gravetat;
    }
}Aquest codi es exactament el mateix que tens tu pero mes facil de llegir, amb menys linies de codi, y tambe menys condicionals ... se'n diu codi una mica mes optim  Cal tenir present que es identic per tant el comportament que descrius (que rota com li surt dels collons) continuara passant, pero queda mes bonic jajajajaP.D. Recorda que els meus codis sempre tenen drets d'autor ... per tant t'agraire que em nombris als credits del teu joc o em paguis una petita quantitat de calers (ho deixo a la teva eleccio). xDDDD

Moltes gracies, pel codi, ara mateix el canvio, si que es veu mes bonic. I si ja et nombrare als credits si algun dia l'acabo jajaja. Gracies.El problema aun NO esta solucionado para todos los que no hayan entendido nada. Jajajaja

Etiquetas: