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 greatwhiteshark17283 · Jul 26, 2013 at 01:55 AM · physicsballfirst-person-controllerrollrolling

How to make a ball that can roll?

In my game, the player is a first person controller. The player can also place soccer balls on the ground. I want it so then when the first person controller collides with the soccer balls, they will start to roll around. Is there any way I can do this?

Comment
Add comment · Show 3
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 ikelaiah · Jul 26, 2013 at 02:04 AM 0
Share

Can't you simply apply sphere collider to the ball object?

avatar image greatwhiteshark17283 · Jul 26, 2013 at 02:11 AM 0
Share

If I add a sphere collider, the ball will just stay in the same spot, even if the first person controller collides with it.

avatar image ikelaiah · Jul 26, 2013 at 02:22 AM 0
Share

Good. What about applying force at the normal direction of the hit as shown in the link given?

2 Replies

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

Answer by aldonaletto · Jul 26, 2013 at 03:18 AM

The CharacterController is just constrained by other colliders - it doesn't push anything. If you want to push rigidbodies, use OnControllerColliderHit to detect the collision and to apply a force or set the rigidbody velocity:

 var force: float = 100;
 
 function OnControllerColliderHit(hit: ControllerColliderHit){
     if (hit.rigidbody){
         var dir = hit.normal; // get the hit direction
         dir.y = 0; // consider only the horizontal direction
         hit.rigidbody.AddForce(force * dir.normalized);
     }
 }

Tweak the force in order to get better results. You may also set dir.y to a value between 0.1 and 0.5 to make the ball go a little up instead of strictly horizontal.

Comment
Add comment · Show 1 · 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 Linus · Jul 26, 2013 at 04:32 AM 0
Share
  • I forgot that there character controller does not move things by itself

avatar image
0

Answer by Linus · Jul 26, 2013 at 02:16 AM

Sphere collider and rigidbody, you most likely want gravity activated. You might want to watch some tutorials or reading up on how unity works.

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 greatwhiteshark17283 · Jul 26, 2013 at 02:22 AM 0
Share

I have some experience in Unity and I was thinking about using a rigidbody. But when I added a rigidbody to the ball and tried making the first person controller collide with it, nothing happened. The ball just stopped the first person controller from moving forward. I change the physic material to bouncy, which helped a bit, just now the ball bounces too much. I hope I clarified the situation more.

avatar image ikelaiah · Jul 26, 2013 at 02:59 AM 0
Share

Soccer ball require force to move. If the sphere does not move, perhaps your ball object is a lot heavier than the character object. Did you look at the hockey link I gave above?

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

19 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

Related Questions

Create a "free" rolling ball controlled by player 1 Answer

How to roll a ball with moving platform. 1 Answer

Strange sphere/physics rolling behaviour when scaled 1 Answer

Ball Doesn't Roll Down Hill - Physics Problem 3 Answers

rolling ball is a child that needs to be steered by parent 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