Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- public class Movement : MonoBehaviour {
- public float speed = 5f;
- public float jumpForce = 8f;
- public Transform groundCheck;
- float groundedRadius = .2f;
- public LayerMask groundMask;
- Rigidbody2D _rigidbody2D;
- bool grounded;
- bool inLadder;
- float gravity;
- Animator anim;
- bool facingRight = true;
- public Transform graphics;
- void Start ()
- {
- anim = GetComponentInChildren<Animator> ();
- _rigidbody2D = rigidbody2D;
- gravity = _rigidbody2D.gravityScale;
- }
- void FixedUpdate()
- {
- anim.SetBool ("InLadder", inLadder);
- inLadder = false;
- grounded = Physics2D.OverlapCircle (groundCheck.position, groundedRadius, groundMask);
- anim.SetBool ("Grounded", grounded);
- }
- void Update ()
- {
- float x = Input.GetAxis ("Horizontal");
- anim.SetFloat ("Speed", Mathf.Abs (x));
- _rigidbody2D.velocity = new Vector2 (speed * x, rigidbody2D.velocity.y);
- if(inLadder)
- {
- _rigidbody2D.gravityScale = 0;
- float y = Input.GetAxisRaw ("Vertical");
- anim.SetFloat ("vSpeed", Mathf.Abs(y));
- _rigidbody2D.velocity = new Vector2 (rigidbody2D.velocity.x, speed * y);
- }
- else
- {
- _rigidbody2D.gravityScale = gravity;
- if(Input.GetButtonDown("Jump") && grounded)
- {
- _rigidbody2D.AddForce (new Vector2(0, jumpForce), ForceMode2D.Impulse);
- }
- }
- if(x > 0 && !facingRight)
- {
- Flip();
- }
- else if(x < 0 && facingRight)
- {
- Flip();
- }
- }
- void Flip()
- {
- facingRight = !facingRight;
- Vector3 ourScale = graphics.localScale;
- ourScale.x *= -1;
- graphics.localScale = ourScale;
- }
- void OnTriggerStay2D(Collider2D coll)
- {
- if(coll.collider2D.tag == "Ladder")
- {
- inLadder = true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement