• 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 ethan-smith · Apr 24, 2015 at 05:56 PM · raycastrigidbody physics

falling off 90 degree angles when walking on walls

im creating a walk on walls script. I have been using and checking other posts and questions but I really cant seem to figure this one out. ive got it working PERFECTLY on everything but angles 90 degrees or greater.

     public float Gravity = 9.81f;
     public float JumpForce = 4.5f;
     public float GroundMargin = 0.05f;
     public KeyCode JumpKey = KeyCode.Space;
     public bool IsGrounded;
     private float ColliderCenterToEdge;
     private Vector3 MyNormal;
     private RaycastHit GetNormal;
 
     void Start (){
         Rigidbody body = GetComponent<Rigidbody> ();
         CapsuleCollider collider = GetComponent<CapsuleCollider> ();
         body.freezeRotation = true;
         body.useGravity = false;
         ColliderCenterToEdge = collider.bounds.extents.y - collider.center.y;
         Physics.Raycast (transform.position, -transform.up, out GetNormal);
         MyNormal = GetNormal.normal;
         IsGrounded = GetNormal.distance <= ColliderCenterToEdge + GroundMargin;
         transform.rotation = Quaternion.FromToRotation (Vector3.up, MyNormal);
     }
 
     void FixedUpdate(){
         Rigidbody body = GetComponent<Rigidbody> ();
         IsGrounded = GetNormal.distance <= ColliderCenterToEdge + GroundMargin;
         Physics.Raycast (transform.position, -transform.up, out GetNormal);
         MyNormal = GetNormal.normal;
         body.AddForce (-Gravity * body.mass* MyNormal);
         transform.rotation = Quaternion.FromToRotation (Vector3.up, MyNormal);
         if (Input.GetKeyDown (JumpKey) & IsGrounded) {
             body.velocity += JumpForce * MyNormal;
         }
     }


im working towards walking on walls is what I should've typed. it only jumps... but its all my code and im pretty proud of it!!! :) but... I need help now. if you attatch this to a rigidbody capsule collider capsule then it works okay but if you hit play and go into scene view and pull the capsules local forward arrow it falls straight down if youre on a cube and drag it past its side. if you do it on a sphere though it follows its contour perfectly. what should I do? I guess I dont think all my levels or any will have perfect 90 degree angles but it would be something good to work out IMO just in case. any ideas? thank you for the help. :)

Comment
Add comment · Show 1
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 ethan-smith · Apr 24, 2015 at 03:15 AM 0
Share

would sphereCast work? I tried it earlier but I didn't work the way I wanted. I checked the manual too. :( maybe I did it wrong.

separate question that doesn't need an answer. what is the point of having a capsule cast and sphere cast?

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.

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

2 People are following this question.

avatar image avatar image

Related Questions

'height' is not a member of 'UnityEngine.Collider'. 1 Answer

I am trying to allow the player to pick up and move objects in a FPS style game 0 Answers

Continuously rotate a gameobject on 1 axis perpendicularly to another gameobject's normal? 1 Answer

2D field of vision and layer overlapping 0 Answers

2D Raycast over multiple objects not working? 1 Answer


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