Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ehmmy10

#1
logré hacer que corriera pero.... no va acelerando su velocidad constantemente, simplemente corre a una velocidad constante y no aumenta gradualmente como lo hace normalmente cuando pulsaba la tecla A o D.
 
 
 

public override void Move ( float horizontalAxis )
   {
      if ( !IsDead.Value )
      {
               
         if ( horizontalAxis > 0f )
         {
                    float speed = m_CurrentRunSpeed;
                    Vector2 velocity = m_Rigidbody2D.velocity;
                    velocity.x = speed * horizontalAxis;
                    m_Rigidbody2D.velocity = velocity;
                    Vector3 scale = transform.localScale;
            scale.x = Mathf.Sign ( horizontalAxis );
            transform.localScale = scale;
         }
         else if ( horizontalAxis < 0f )
         {
                    float speed = m_CurrentRunSpeed;
                    Vector2 velocity = m_Rigidbody2D.velocity;
                    velocity.x = speed * horizontalAxis;
                    m_Rigidbody2D.velocity = velocity;
                    Vector3 scale = transform.localScale;
            scale.x = Mathf.Sign ( horizontalAxis );
            transform.localScale = scale;
         }
      }
   }

 
 
#2

      void Update ()
   {
      if ( !GameManager.Singleton.gameStarted || !GameManager.Singleton.gameRunning )
      {
         return;
      }
      if ( transform.position.y < 0f )
      {
         Die ();
      }
      // Speed
      m_Speed = new Vector2 ( Mathf.Abs ( m_Rigidbody2D.velocity.x ), Mathf.Abs ( m_Rigidbody2D.velocity.y ) );
      // Speed Calculations
      m_CurrentRunSpeed = m_RunSpeed;
      if ( m_Speed.x >= m_RunSpeed )
      {
         m_CurrentRunSpeed = Mathf.SmoothDamp ( m_Speed.x, m_MaxRunSpeed, ref m_CurrentSmoothVelocity, m_RunSmoothTime );
      }
      // Input Processing
      Move ( CrossPlatformInputManager.GetAxis ( "Horizontal" ) );
            if ( CrossPlatformInputManager.GetButtonDown ( "Jump" ) )
      {
         Jump ();
      }
      if ( IsDead.Value && !m_ClosingEye )
      {
         StartCoroutine ( CloseEye () );
      }
         }      
.........
 
 
        public override void Move ( float horizontalAxis )
   {
      if ( !IsDead.Value )
      {
         float speed = m_CurrentRunSpeed;
//            if ( CrossPlatformInputManager.GetButton ( "Walk" ) )
//            {
//               speed = m_WalkSpeed;
         //            }
         Vector2 velocity = m_Rigidbody2D.velocity;
         velocity.x = speed * horizontalAxis;
         m_Rigidbody2D.velocity = velocity;
         if ( horizontalAxis > 0f )
         {
            Vector3 scale = transform.localScale;
            scale.x = Mathf.Sign ( horizontalAxis );
            transform.localScale = scale;
         }
         else if ( horizontalAxis < 0f )
         {
            Vector3 scale = transform.localScale;
            scale.x = Mathf.Sign ( horizontalAxis );
            transform.localScale = scale;
         }
      }
   }
   public override void Jump ()
   {
      if ( !IsDead.Value )
      {
         if ( m_GroundCheck.IsGrounded )
         {
            Vector2 velocity = m_Rigidbody2D.velocity;
            velocity.y = m_JumpStrength;
            m_Rigidbody2D.velocity = velocity;
            m_Animator.ResetTrigger ( "Jump" );
            m_Animator.SetTrigger ( "Jump" );
            m_JumpParticleSystem.Play ();
            AudioManager.Singleton.PlayJumpSound ( m_JumpAndGroundedAudioSource );
         }
      }
   }

 
Aquí esta una parte del código en donde se puede mostrar como es que son los valores que necesita el personaje para moverse, al presionar las teclas si lo hace, pero al dar clic a los botones que agregué al GUI solo cambia de dirección el personaje.
#3
Lo hice pero sigue sin moverse, y es que el personaje va corriendo gradualmente, o sea, va aumentando su velocidad conforme va avanzando, y parece ser que el personaje se niega a moverse >n<
 
intente mejor agregarle el speed pero dentro de cada if y tampoco así, es mas hasta agregándole esta linea de código
 

         Move ( CrossPlatformInputManager.GetAxis ( "Horizontal" ) );

 
pero ni así :/
 
 
 
la verdad estoy muy perdida
#4
buenas tardes, gracias por tu respuesta, creo haber entendido un poco lo que me mencionas y voy a intentar ser lo mas especifica posible, mira en esta parte de codigo es donde el personaje se mueve:
 

      public override void Move ( float horizontalAxis )
   {
      if ( !IsDead.Value )
      {
         float speed = m_CurrentRunSpeed;
//            if ( CrossPlatformInputManager.GetButton ( "Walk" ) )
//            {
//               speed = m_WalkSpeed;
         //            }
         Vector2 velocity = m_Rigidbody2D.velocity;
         velocity.x = speed * horizontalAxis;
         m_Rigidbody2D.velocity = velocity;
         if ( horizontalAxis > 0f )
         {
            Vector3 scale = transform.localScale;
            scale.x = Mathf.Sign ( horizontalAxis );
            transform.localScale = scale;
         }
         else if ( horizontalAxis < 0f )
         {
            Vector3 scale = transform.localScale;
            scale.x = Mathf.Sign ( horizontalAxis );
            transform.localScale = scale;
         }
      }
   }

 
el personaje se mueve con las teclas de dirección o con ASWD, yo estaba intentando hacer que el personaje se moviera con un Event Trigger que le asigne a cada botón de la pantalla, en donde yo ponía un 1 o -1 para que se moviera  a la izquierda o a la derecha, pero el personaje solamente voltea hacia el lado que es presionado, sin avanzar. La verdad no se que hacer, ahora que me menciona que un event Trigger no es para eso.
 

#5

Buenos días, estoy comenzando a programar en Unity y necesito ayuda para colocar los botones touch en un
videojuego para ser jugado en android, solo he logrado colocar el salto del personaje, pero no logro hacer
que el personaje se mueva de derecha a izquierda, solamente voltea a la dirección que ha sido pulsado el
botón, y hace como un pequeño fotograma de que se va mover (levanta la piernita y así) pero no avanza.
En el enlace esta el juego que me descargué para ponerle los botones touch para android
https://github.com/BayatGames/RedRunner
De verdad espero puedan ayudarme, ya intente poniéndolo en un event trigger o haciendo otra clase que mande
a llamar al move y lo multiplique por -1 o 1 según la dirección, pero estoy muy primeriza para esto
De verdad espero su ayuda, gracias!
#6
General (Antiguo) / Hola
Octubre 01, 2018, 05:38:13 PM
Hola mucho gusto