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
1
Question by C Griffin · Jul 08, 2012 at 02:56 AM · gameobjectcirclegameplayedgerestrict

How to limit gameobject movement to circle's circumference?

I have a gameObject (my camera/player controller) that I would like to keep restricted to the perimeter of a circle. I want to be able to move the object around the edge of the circle and look in towards the circle but I do not want the player to be able to enter the circle (yet). Also, I want to prevent the player from looking away from the circle, as it will not be allowed in the game's rules.

I have a quite basic understanding of code and Unityscript. I have been able to figure out much on my own so far, but I am lost when it come to the more 'advanced' techniques. Also, I have been coding in Java format with this game.

tl;dr : I want to keep an object restricted to the edge of a circle but allow it to move freely along that edge. How is this done, certain functions/whatever-theyre-called to be used. A direction to the correct page in the 'codex' would be greatly appreciated.

Thank you, and I hope to be able to present you with my game eventually.

  • Griffin.

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 aldonaletto · Jul 08, 2012 at 04:09 AM

You could use transform.RotateAround while the player is restricted, and enable regular movement otherwise:

var restricted: boolean; // set to restrict movement var center: Vector3; // circle center var rotateSpeed: float = 45; // rotate speed in degrees/second

function Update(){ if (restricted){ // when restricted, control only rotation around center: transform.RotateAround(center, Vector3.up, Input.GetAxis("Horizontal") rotateSpeed Time.deltaTime); } else { // otherwise use your regular movement script - like this: moveDirection = Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); ... } }

Comment
Add comment · Show 2 · 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 C Griffin · Jul 08, 2012 at 04:52 AM 0
Share

Thank you for the timely response, it seems to be exactly what I need to call in my script. I do, however, have a question.

Will this restrict the camera to be aimed towards the center (the Vector3) at all times? Or will this not affect the camera at all? I am having some trouble wording this in a way that will make it easily understandable...

Thanks again, this community ROC$$anonymous$$S!!!

avatar image aldonaletto · Jul 08, 2012 at 05:51 AM 1
Share

RotateAround keeps the object in its original orientation relative to the center - if it was looking to the center, for instance, its transform will be kept facing the center while rotating around it. But a first person character usually has a child camera, and some script to control its direction. In the First Person Controller prefab, for instance, there's one $$anonymous$$ouseLook script attached to the character to make it turn left and right, and another $$anonymous$$ouseLook attached to the camera to turn it up and down - at least the first one should be disabled.

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

7 People are following this question.

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

Related Questions

Restrict player movement to circle's circumference and rotate to lookat 4 Answers

Restricting "Drag GameObject" script to Z Axis? 1 Answer

How can I spawn gameObjects within a circle radius? 1 Answer

2 Colliders on 1 gameobject 2 Answers

RTS Style Unit: How to surround enemy when attacking 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