Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 The_Icaruz · May 17, 2018 at 07:15 PM · c#android2d-platformer

Is it possible to make a Icy/Slippery floor with code with a fixed velocity?

Hello everyone, I'm making a 2D Platformer for android and I'm trying to make an "Ice Level" where ground tiles have the tag "Ice". Btw I'm programming in c#.

I wrote my own PlayerController Script wich i could post if it's necessary.

So if the Player walks on the ground with tag "Ice" the velocity of my player should lower in a fixed amount over a fixed amount of time and slides till he stands still.

I've tried it now for days and don't get the effect I want, honestly I didn't even got it to work with any result.

Now to my question :

Is it possible to achive such a effect only with code when i have a fixed velocity? If yes could someone please help me with the coding or point me out how to achive such an effect?

My idea was to save the last MoveSpeed and multiply it with a "Slide speed" so the MoveSpeed would lower over time but I'm not sure if my code is wrong cause i got no effect.

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

1 Reply

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by KaspianR · May 18, 2018 at 09:09 AM

Do you have some deceleration, or does it stop immediately? If you do have some deceleration you could just multiply the decelerationspeed with 0.1 or whatever to get that effect. You could even do it with the aceleration as well if you wan't your character to take a bit longer to start running at ful speed. You could determine if the player is standing on ice with the following script:

      int TouchingIce = 0;

      void OnCollisionEnter2D (Collision2D object) {
          if (object.gameObject.tag == "Ice") {
              TouchingIce++;
          }
      }
  
      void OnCollisionExit2D (Collision2D other) {
          if (object.gameObject.tag == "Ice") {
              TouchingIce--;
          }
      }

Now you can just look if TouchingIce is more than zero and then the Player is touching atleast on ice object and you could apply the effect! Good luck!

Comment
Add comment · Show 11 · Share
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
avatar image KaspianR · May 18, 2018 at 09:09 AM 1
Share

If this still doesn't work or doesn't make any sense, please just share your script so that I can take a look at it!

avatar image The_Icaruz KaspianR · May 18, 2018 at 09:33 AM 1
Share

Thank you for your answer, with the detection of the "Ice" I've got no problem at all just with the behaviour on the ice with the slide effect. And yes the Player stops immediately.

Here is my Player Controller Script :

     using System.Collections;
     using System.Collections.Generic;
     using UnityEngine;
     
     public class PlayerController : $$anonymous$$onoBehaviour {
     
     
         public float moveSpeed;
         private float moveVelocity;
         public Rigidbody2D myRiBo;
     
         public Transform groundCheck;
         public float groundCheckRadius;
         public Layer$$anonymous$$ask whatIsGround;
     
         public bool isGrounded;
     
         private Animator myAnim;
     
         public Vector3 respawnPoint;
         public Vector3 respawnRotation;
         public float gravityScale;
     
         public Level$$anonymous$$anager theLevel$$anonymous$$anager;
     
         public float jumpSpeed;
     
     
         private void Awake () {
             if (PlayerPrefs.GetInt ("Continue") == 1) {
                 transform.position = new Vector3 (PlayerPrefs.GetFloat ("PlayerX"), PlayerPrefs.GetFloat ("PlayerY"), PlayerPrefs.GetFloat ("PlayerZ"));
             }
         }
     
         // Use this for initialization
         void Start () {
     
             Input.multiTouchEnabled = true;
     
             myRiBo = GetComponent<Rigidbody2D> ();
             myAnim = GetComponent<Animator> ();
     
             
             respawnPoint = transform.position;
             respawnRotation = transform.eulerAngles;
             gravityScale = myRiBo.gravityScale;
     
             theLevel$$anonymous$$anager = FindObjectOfType<Level$$anonymous$$anager> ();
         }
         
         // Update is called once per frame
         void Update () {
     
             // Ground Check for the Player
             isGrounded = Physics2D.OverlapCircle (groundCheck.position, groundCheckRadius, whatIsGround);
     
             myRiBo.velocity = new Vector2 (moveVelocity, myRiBo.velocity.y);
     
             myAnim.SetFloat ("Speed", $$anonymous$$athf.Abs (myRiBo.velocity.x));
             myAnim.SetBool ("Grounded", isGrounded);
     
             // Check wich direction the Player should look
             if (myRiBo.velocity.x > 0) {
                 transform.localScale = new Vector3 (1f, 1f, 1f);
             } else if (myRiBo.velocity.x < 0) {
                 transform.localScale = new Vector3 (-1f, 1f, 1f);
             }
     
         }
     
             
         public void $$anonymous$$ove (float moveInput) {
             moveVelocity = moveSpeed * moveInput;
         }
 
     void OnCollisionEnter2D (Collision2D other) {
          if (other.gameObject.tag == "Ice") {
             icy = true;
         }
     }
 
     void OnCollisionExit2D (Collision2D other) {
          if (other.gameObject.tag == "Ice) {
             icy = false;
         }
     }
 }
 

If you could help me with the slide effect I would be so thankfull.

avatar image The_Icaruz The_Icaruz · May 18, 2018 at 09:44 AM 1
Share

And yes I want the effect you described. When the player is running and stops on ice he should slide until the speed is zero and when he wants to run again it should take some time until the player is at full speed.

Sorry for the double reply but I can't edit my first one.

Show more comments

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

551 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 avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image 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

Inconsistent jump height 1 Answer

Inconsistent jump height 1 Answer

2D multi touch 1 Answer

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 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