• 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
Question by Pipioca · Sep 10, 2014 at 01:39 PM · c#climbladder

Climb ladder

Hi!

I have in my game some ladders and want to try the FPS the rise.

In the ladders i have a cube as a trigger and i have this basic script too:

 public float velocidadSubida = 5f;
     bool DentroEscalerilla = false;
 
     void OnTriggerEnter(Collider hit){
         //Si es el personaje el que esta en la escalerilla
         if (hit.gameObject.tag == "Escalerilla") {
             DentroEscalerilla = true;        
         }
     }
 
     void OnTriggerExit(Collider hit){
         if (hit.gameObject.tag == "Escalerilla") {
             DentroEscalerilla = false;
         }
     }
 
     void Update(){
             Vector3 movimiento = new Vector3 (0, velocidadSubida*Time.deltaTime, 0);
             if (DentroEscalerilla == true){                                 
                 if (Input.GetKey(KeyCode.W))
                 {
                     gameObject.transform.position += movimiento;                    
                 }
             }
     }


My First Person Controller start to climb but then stop and fall to the ground again. If i hold down "W" the character continuously start to up and fall.

What is my error? I've also tried with the "OnTriggerStay".

Thankss!!

Comment

People who like this

0 Show 0
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

2 Replies

· Add your reply
  • Sort: 
avatar image
Best Answer

Answer by Pipioca · Sep 10, 2014 at 02:23 PM

I made it!, what the problem was? The gravity but the CharacterMotor gravity not the rigidbody gravity.

The solution? Used when you entry on the ladder

 motor = GetComponent<CharacterMotor>();
 motor.movement.gravity = 0;

Regards!

Comment

People who like this

0 Show 0 · 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

Answer by khenkel · Sep 10, 2014 at 01:48 PM

First of all you can write:

 if (DentroEscalerilla)
 {                                
        // Stuff
 }

You don't need to double compare it with "== true".

About your problem:

How big is the cube? Does it fill the entire ladder "area"? If not, it will call "OnTriggerExit" if you climb too high and exit the trigger. Also physics are still running while you're overriding your position. While climbing disable it via:

 this.rigidbody.useGravity = false;
Comment
Pipioca

People who like this

1 Show 0 · 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

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.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

25 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

Related Questions

C# Star wars force script 1 Answer

Issue with the c# script for player climb in unity 1 Answer

Error when using getComponent to use a variable 1 Answer

C# how to have a part of an object rotate while animation is being played 2 Answers

Implemeting climbing ladder in unity 2d 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