- Home /
 
               Question by 
               BlankSlates · Sep 16, 2018 at 06:50 PM · 
                player2d-platformerenumbegginer  
              
 
              Beginner trying to stop movement function and collision on death ?
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.Animations;
 using UnityEngine.UI;
 using UnityEngine.SceneManagement;
 public class playerController : MonoBehaviour
 {
 
 [SerializeField]
 private Animator playeranim;
 private Rigidbody2D rb2d;
  // private BoxCollider2D box2d;
 [SerializeField]
 private int thrust = 100;
 [SerializeField]
 private int jumpHeight = 50;
 [SerializeField]
 private int canJump;
 private Vector2 direction;
 enum State { Alive, Death, levelclear}
 State state = State.Alive;
 bool collisionsAreEnabled = true;
 // Use this for initialization
 void Start ()
 {
     rb2d = gameObject.GetComponent<Rigidbody2D>();
    // box2d = gameObject.GetComponent<BoxCollider2D>();
 }
 
 // Update is called once per frame
 void Update ()
     
 {
    // RotateDirection();
     playeranim = gameObject.GetComponent<Animator>();
     if (state == State.Alive)
     {
         rigidbodymovement();
     }
    
    
 }
 private void FixedUpdate()
 {
     rb2d.velocity = new Vector2(rb2d.velocity.x, Mathf.Clamp(rb2d.velocity.y, -5f, 4f));
 }
 private void rigidbodymovement()
 {
     
     if (Input.GetKey(KeyCode.D))
     {
         playeranim.SetInteger("running", 2);
         rb2d.AddForce(transform.right * thrust * Time.deltaTime);
     }
     else if (Input.GetKey(KeyCode.A))
     {
        
         playeranim.SetInteger("running", 2);
         rb2d.AddForce(-transform.right * thrust * Time.deltaTime);
     }
     else
         playeranim.SetInteger("running", 0);
     playeranim.SetInteger("jump", 0);
     if (Input.GetKeyDown(KeyCode.Space))  // todo fix double jump and a glitch where the player turns his body when jumping and controls glitch
     {
         if( canJump > 1)
         {
             canJump = canJump - 1;
             
             rb2d.AddForce(new Vector2(0, 1) * jumpHeight * Time.deltaTime);
         }
         
     }
     
 {
     
 }
 // }
 //else
 //{
 //  playeranim.SetBool("is_Running", false);
 //  playeranim.SetBool("is_Idle", true);
 // }
 }
     private void OnCollisionEnter2D(Collision2D collision)
 {
     if (state != State.Alive || !collisionsAreEnabled)
     {
         return; // ignore collisions when dead
     }
     switch ( collision.gameObject.tag)
     {
         case "water":
             {
                 playeranim.SetInteger("death", 2);
                 Invoke("death", 1f);
                 break;
             }
         case "floor":
             {
                 Debug.Log("i am touching the floor");
                 canJump = 2;
                 break;
             }
         default:
             {
                 // stop the audio if i add background music here
                 state = State.Death;
                 canJump = 1;
                 break;
             }
     }
 }
 
 private void RotateDirection()
  {
  transform.Rotate(direction);
  direction = Vector2.zero;
   
 if (Input.GetKey(KeyCode.A))
  {
         direction += new Vector2(0, 1);
  }
  
 if (Input.GetKey(KeyCode.D))
   {
         direction += new Vector2(0,1 );
  }
 }
  private void death()
 {
     
     SceneManager.LoadScene(0);
 }
}
               Comment
              
 
               
              Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                