Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- public class PlayerSprite : MonoBehaviour
- {
- [SerializeField] float movementSpeed = 5f;
- [SerializeField] float jumpSpeed = 5f;
- //Use this this set all the color you need
- [SerializeField] Color[] myColors = new Color[]{};
- private SpriteRenderer spriteRenderer;
- Rigidbody2D myRigidbody;
- Animator myAnimator;
- //Movement string refs
- const string GET_HORIZONTAL_AXIS = "Horizontal";
- const string GET_JUMP = "Jump";
- const string RUNNING_ANIM = "IsPlayerRunning";
- const string JUMPPING_ANIM = "IsJumpping";
- //Input string refs
- const string INPUT_FIRE1 = "Fire1";
- const string INPUT_FIRE2 = "Fire2";
- const string INPUT_FIRE3 = "Fire3";
- const string INPUT_FIRE4 = "Fire4";
- // Start is called before the first frame update
- void Start()
- {
- myRigidbody = GetComponent<Rigidbody2D>();
- myAnimator = GetComponent<Animator>();
- spriteRenderer = GetComponent<SpriteRenderer>();
- }
- // Update is called once per frame
- void Update()
- {
- Run();
- Jump();
- FlipSprite();
- ColourChange();
- }
- private void Run()
- {
- float controlXAxis = CrossPlatformInputManager.GetAxis(GET_HORIZONTAL_AXIS);//Value is between -1 and 1
- Vector2 playerVelocity = new Vector2(controlXAxis * movementSpeed, myRigidbody.velocity.y);
- myRigidbody.velocity = playerVelocity;
- bool playerHorizontalMovement = Mathf.Abs(myRigidbody.velocity.x) > Mathf.Epsilon;
- myAnimator.SetBool(RUNNING_ANIM, playerHorizontalMovement);
- }
- private void Jump()
- {
- if(CrossPlatformInputManager.GetButtonDown(GET_JUMP))
- {
- Vector2 jumpVelocityToAdd = new Vector2(0f, jumpSpeed);
- myRigidbody.velocity += jumpVelocityToAdd;
- // bool playerVerticalMovement = Mathf.Abs(myRigidbody.velocity.y) > Mathf.Epsilon;
- //myAnimator.SetBool(JUMPPING_ANIM, playerVerticalMovement);
- }
- }
- private void FlipSprite()
- {
- bool playerHorizontalMovement = Mathf.Abs(myRigidbody.velocity.x) > Mathf.Epsilon;
- if(playerHorizontalMovement)
- {
- transform.localScale = new Vector2(Mathf.Sign(myRigidbody.velocity.x), 1f);
- }
- }
- private void ColourChange()
- {
- if (CrossPlatformInputManager.GetButtonDown(INPUT_FIRE1))
- {
- spriteRenderer.color = myColors[0];
- }
- else if (CrossPlatformInputManager.GetButtonDown(INPUT_FIRE2))
- {
- spriteRenderer.color = myColors[1];
- }
- else if (CrossPlatformInputManager.GetButtonDown(INPUT_FIRE3))
- {
- spriteRenderer.color = myColors[2];
- }
- else if (CrossPlatformInputManager.GetButtonDown(INPUT_FIRE4))
- {
- spriteRenderer.color = myColors[3];
- }
- }
- }
- //-----------------------//
- //-----------------------//
- //-----------------------//
- using UnityEngine;
- public class Platforms : MonoBehaviour
- {
- //Use this to set the platform color
- [SerializeField] Color platFormColor = Color.white;
- //Tag string ref
- const string PLAYER_TAG = "Player";
- private void Awake()
- {
- GetComponent<SpriteRenderer>().color = platFormColor;
- }
- private void OnCollisionEnter2D(Collision2D player)
- {
- if (player.gameObject.CompareTag(PLAYER_TAG))
- {
- var playerColor = player.transform.GetComponent<SpriteRenderer>().color;
- if (playerColor == platFormColor)
- {
- player.transform.SetParent(this.transform);
- }
- }
- }
- private void OnCollisionExit2D(Collision2D player)
- {
- if (player.gameObject.CompareTag(PLAYER_TAG))
- {
- player.transform.SetParent(null);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement