Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by LeonardoBite · Mar 23, 2021 at 09:00 PM · 2dphysics2d-platformercolor changedouble jump

How to make correct double jump with collor changing?

Hello everyone who will see it:) I am very new in C# programming and unity (classic for this type of questions). In my game i am trying to make my character doing stuff when it have one color and doing other stuff when have another color. In this particular situation I am trying to make it double jumb when it have blue color. I was trying to make all physics in fixedUpdate and inputs in update but still not the result what i want. It is working chaotically. What am i doing wrong or maybe i must change approach for this kind of mechics? I will be really appreciate every help :)

 using System;
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.SceneManagement;
 
 public class PlayerMovement : MonoBehaviour
 {
     SpriteRenderer sr;
     public Scene loadedlevel;
 
     private Rigidbody2D _rb;
     
     [SerializeField] float AirJumpForce = 3f;
 
     [Header("For Movement")]
     [SerializeField] float speed ;
     private float XDirectionInput;
 
     [Header("For Jumping")]
     [SerializeField] float JumpForce;
     [SerializeField] LayerMask groundLayer;
     [SerializeField] Transform groundCheck;
     [SerializeField] Vector2 groundCheckSize; 
     public bool isGrounded;
     
     private bool hasJumped;
     private bool hasDoubleJumped;
     private bool jumping;
     private bool doubleJump;

     [Header("Colors")]
     private Color redColor;
     private Color blueColor;
 
     private bool isBlue;
     
     void Start()
     {
 
         blueColor = new Color(0f, 0f, 1f, 1f);
         redColor = new Color(1f, 0f, 0f, 1f);
 
         loadedlevel = SceneManager.GetActiveScene();
         sr = GetComponent<SpriteRenderer>();
         _rb = GetComponent<Rigidbody2D>();
     }
     // Update is called once per frame
     void Update()
     {
         isGrounded = Physics2D.OverlapArea(
         new Vector2(transform.position.x + 0.64f, transform.position.y - 0.64f),
         new Vector2(transform.position.x - 0.64f, transform.position.y - 0.64f),
         groundLayer);
 
         XDirectionInput = Input.GetAxis("Horizontal");
         XDirectionInput *= speed;
         
         Vector3 characterScale = transform.localScale;
 
         if (isGrounded)
         {
             jumping = false;
             hasJumped = false;
             doubleJump = false;
             hasDoubleJumped = false;
         }
 
         if (Input.GetKeyDown(KeyCode.Space))
         {
             if (isGrounded)
             {
                 jumping = true;
             }   
             else if(!isGrounded && !hasJumped && isBlue)
             {
                 jumping = true;
             }
             else if(jumping && !doubleJump )
             {
                 doubleJump = true;
             }
         }
 
         if (jumping && !hasJumped)
         {
             _rb.velocity = new Vector2(_rb.velocity.x, JumpForce);
             hasJumped = true;
         }
         else if (doubleJump && !hasDoubleJumped )
         {
                 hasDoubleJumped = true;
         }
     }
     private void FixedUpdate()
     {
         isBlue = sr.color.Equals(blueColor);
         _rb.velocity = new Vector2(XDirectionInput, _rb.velocity.y);
         Flip(XDirectionInput);
     }
     private void Flip(float movement)
     {
         Vector3 characterScale = transform.localScale;
         
         if (movement < 0)
         {
             characterScale.x = -1;
             wallJumpDirection = 1;
 
         }
         if (movement > 0)
         {
             characterScale.x = 1;
             wallJumpDirection = -1;
         }
         transform.localScale = characterScale;
     }
     }
 
     private void OnCollisionEnter2D(Collision2D collision)
     {
         
         colorChange(collision);
 
     }
    
     void colorChange(Collision2D collision)
     {
         if (collision.transform.tag == "redPlatform")
         {
             sr.color = collision.gameObject.GetComponent<SpriteRenderer>().color;
         }
         else if (collision.transform.tag == "bluePlatform")
         {
             sr.color = collision.gameObject.GetComponent<SpriteRenderer>().color;
         }
         else if (collision.transform.tag == "whiteChanger")
         {
             sr.color = collision.gameObject.GetComponent<SpriteRenderer>().color;
         }
     }
     void OnDrawGizmos()
     {
         Gizmos.color = new Color(0, 1, 0, 0.5f);
 
         Gizmos.DrawCube(new Vector2(transform.position.x , transform.position.y - 0.66f),
             new Vector2(1.28f, 0.05f ));
 
     }
Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

338 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

2D Physics game using sprites 0 Answers

How to check if my enemy hits the ground at a certain velocity then add explosive force. 1 Answer

How to change friction after collision? 0 Answers

2d physics 1 Answer

Having problems with animation and movement of 2D Character 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges