Untitled
unknown
c_cpp
a year ago
3.9 kB
1
Indexable
Never
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerBehaviour : MonoBehaviour { // Start is called before the first frame update public float moveSpeed = 5f; public Rigidbody2D rb; SpriteRenderer tempRender; public Animator animator; public string playerFacing; Vector2 movement; public bool characterCanMove = true; float speed; bool isMoving = false; bool stayStill = false; bool MovingX = false; bool MovingY = false; float FacingX = 0f; float FacingY = 0f; void Awake() { tempRender = GetComponent<SpriteRenderer>(); animator = GetComponent<Animator>(); speed = animator.GetFloat("speed"); } // Update is called once per frame void Update() { //Character Moving isCharacterMoving(); if (!stayStill) { playerFacingF(); } //correctorIdle(); canPlayerMove(); //magia camara tempRender.sortingOrder = (int)Camera.main.WorldToScreenPoint(transform.position).y * -1; } private void FixedUpdate() { //Physics Calculations //rb.MovePosition(rb.position * movement.normalized * moveSpeed * Time.fixedDeltaTime); rb.velocity = movement.normalized * moveSpeed; } private void handleMovement() { movement.x = Input.GetAxisRaw("Horizontal"); movement.y = Input.GetAxisRaw("Vertical"); animator.SetFloat("Horizontal", movement.x); animator.SetFloat("Vertical", movement.y); animator.SetFloat("Speed", movement.sqrMagnitude); animator.SetBool("MovingX", MovingX); animator.SetBool("MovingY", MovingY); animator.SetFloat("FacingX", FacingX); animator.SetFloat("FacingY", FacingY); } private void OnTriggerEnter2D(Collider2D collision) { Debug.Log("Colisión!"); } void correctorIdle() { if (!isMoving) { if (playerFacing == "Left") { animator.Play("Player_Idle_Left", -1, 0f); } if (playerFacing == "Right") { animator.Play("Player_Idle_Right", -1, 0f); } if (playerFacing == "Up") { animator.Play("Player_Idle_Up", -1, 0f); } if (playerFacing == "Down") { animator.Play("Player_Idle_Down", -1, 0f); } } } void playerFacingF() { if (Input.GetAxisRaw("Horizontal") > 0.01) { playerFacing = "Right"; MovingX = true; MovingY = false; FacingX = 1f; } if (Input.GetAxisRaw("Horizontal") < -0.01) { playerFacing = "Left"; MovingX = true; MovingY = false; FacingX = -1f; } if (Input.GetAxisRaw("Vertical") < -0.01) { playerFacing = "Down"; MovingY = true; MovingX = false; FacingY = -1f; } if (Input.GetAxisRaw("Vertical") > 0.01) { playerFacing = "Up"; MovingY = true; MovingX = false; FacingY = 1f; } } void isCharacterMoving() { if (rb.velocity.magnitude > 0) { isMoving = true; } else isMoving = false; } void canPlayerMove() { if (characterCanMove) { //rb.constraints = RigidbodyConstraints2D.None; <--- grasioso para meme stayStill = false; handleMovement(); } else { //rb.constraints = RigidbodyConstraints2D.FreezePosition; stayStill = true; animator.Play("Player_Idle_" + playerFacing, -1, 0f); } } }