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 Randy 1 · Sep 09, 2010 at 11:52 PM · rotationwalkingwallscylinder

FPS walking inside of a cylinder

I'm fairly new with Unity, but I need to get the FPSWalker to walk freely within the interior of a cylinder. Think Rama, if you know what the heck that is.

I've seen a lot of tutorials for walkable spheres, mostly using faux gravity, which isn't what I need. Instead I'm sure I can just find some way to use Quaternions and the normals of the current surface to accomplish this.

1) Turn off gravity: done (I think, just turned it off for the FPC's rigidbody and for the floating cylinder - not sure what to do with the gravity calculation in the FPSWalker).

2) Apply a relative downward force in the player's y-direction: done (attached a ConstantForce component to the First Person Controller).

3) Make the player's relative coordinates rotate along with the interior surface of the cylinder <-- here's where all my problems are.

I've tried it a million ways, RaycastHit.normal, etc. There's clearly just an issue of unfamiliarity with the way the FPSWalker works on my part... any help would be appreciated.

--R

Comment
Add comment · Show 2
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 thenickhis · Jul 05, 2012 at 11:22 PM 0
Share

I'd really like to know this as well.

avatar image Bunny83 · Jul 05, 2012 at 11:23 PM 0
Share

@thenickhis: Then don't post an answer. Answers should answer the question!!

I've converted your answer into a comment.

1 Reply

· Add your reply
  • Sort: 
avatar image
1

Answer by armoredpokey · Jan 19, 2013 at 09:20 PM

If you know the central axis line of the cylinder (should be relatively easy to calculate, a basic function of the cylinder's rotation), then just subtract the Vector3 of the closest point on the axis from the Vector3 of your walker's position.

------------ cylinder axis
    |
    | <- Vector you want
    |
    v
    * you

Then just change the gravity code in the FPSwalker to apply a constant force in the direction of that vector.

So if your cylinder just goes straight up on the z-axis, and its center is at x=10, y=10, then the vector you want is

Vector3.normalize(Vector3(10-transform.postion.x, 10-transform.position.y, 0))

Comment
Add comment · 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.

Follow this Question

Answers Answers and Comments

5 People are following this question.

avatar image avatar image avatar image avatar image avatar image

Related Questions

cylinder pulling mechanism 0 Answers

Rotate GameObjects to define a cylinder 1 Answer

Generating a procedural cylindrical mesh following a path 1 Answer

Enemy walking through walls/terrain 1 Answer

Determine Rotation Between Two Points 2 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