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
2
Question by TurplePurtle · May 18, 2012 at 10:33 PM · collisionplatformplatformsplatformercontrollercollisionhandling

Make platforms that collide with player from one direction but not the other.

I'm trying to make a platform object which the Character Controller can pass through if it collides with it from below or the sides, but does not go through it if he collides from above.

An example of this kind of platform can be seen here: http://www.youtube.com/watch?v=JFiQH2QMJFA

I was hoping there was a way to tell the Character Controller to ignore the collision reaction with the platform unless the collision flags showed the character coming from above. So far I haven't been able to achieve this effect. Any advice is appreciated.

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

2 Replies

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

Answer by Bunny83 · May 20, 2012 at 01:32 AM

I've posted a script on this question which can remove the bottom faces from a MeshCollider at runtime. You can specify an angle limit

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 TurplePurtle · May 20, 2012 at 04:40 AM 0
Share

Works great! Thanks!

avatar image
2

Answer by aldonaletto · May 19, 2012 at 12:44 AM

The Unity plane primitive has a one-sided collider: only the visible side generates collisions. You can use any object as the platform - just remove its original collider (if any), then create a plane (Hierarchy view, Create/Plane) and adjust its dimensions and position to be the platform "ground". Finally, child the plane to the platform - you can even remove its Mesh Renderer to make it invisible (the collider is independent of the renderer).

EDITED: A simple and seamless alternative is to have a trigger childed to the platform and placed above it, like below:

alt text

In the Inspector, set isTrigger in both (the parent platform and the trigger). When the player enters this trigger, set the platform collider isTrigger to false; when the player exits the trigger, set the platform collider isTrigger to true (script attached to the childed trigger):

function OnTriggerEnter(other: Collider){ if (other.tag == "Player"){ transform.parent.collider.isTrigger = false; } }

function OnTriggerExit(other: Collider){ if (other.tag == "Player"){ transform.parent.collider.isTrigger = true; } }

Comment
Add comment · Show 4 · 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 TurplePurtle · May 19, 2012 at 01:02 AM 0
Share

Awesome! Passing through the plane isn't as seamless as I'd like, but it might work well with a few tweaks.

avatar image aldonaletto · May 20, 2012 at 01:12 AM 0
Share

There's a seamless alternative that uses a trigger ins$$anonymous$$d of the plane collider - take a look at my answer.

avatar image TurplePurtle · May 20, 2012 at 04:31 AM 0
Share

The issue I see is that this assumes there will only be a single entity interacting with the platform at a time. Interesting approach though.

avatar image aldonaletto · May 20, 2012 at 12:15 PM 0
Share

You're right: when some character is over the platform, the others will get headaches trying to pass through it. Definitely, not suitable for multiple characters!

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

6 People are following this question.

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

Related Questions

Moving a player on a rigidbody platform that can collide 2 Answers

Rotating Platform Collision Issue 1 Answer

Making a Child/Parent Based Moving Platform? 2 Answers

What is the difference between these platforms: PC, Mac, Linux Standalone / Windows Build Support (IL2CPP) / Universal Windows Platform Build Support? 0 Answers

Collision on the bottom? 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