Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 /
  • Help Room /
avatar image
0
Question by Romeyo · Jan 14, 2019 at 10:08 PM · collisioncolliderscollision detectionintersect

How to check if gameObject is interact with multiple colliders

I am making a 2D game, where player can put down buildings in a map. Obviously I do not want those buildings to be built on another one, so I added a blocked parameter to the builder gameobject. OnTriggerEnter/Exit not work correctly if there are multiple buildings on the board, and the blocker parameter becomes true if it exits one collider even if it's inside another one. For this I put an OnTriggerStay method on the blocker script, so if it the builder leaves one Collider, the OnTriggerStay overwrites the others Exit, but sometimes the color is flashing when it's leaving one collider and stays in another. When it leaves the first black box, but it's still blocked by the second one: alt text Any better idea how to handle this?

 public void OnTriggerEnter2D(Collider2D collision)
 {
         Color tmp = collision.gameObject.GetComponentInChildren<SpriteRenderer>().color;
         tmp = Color.red;
         collision.blocked = true;
         collision.gameObject.GetComponentInChildren<SpriteRenderer>().color = tmp;
     }
 }
 

 public void OnTriggerStay2D(Collider2D collision)
 {
         Color tmp = collision.gameObject.GetComponentInChildren<SpriteRenderer>().color;
         tmp = Color.red;
         collision.blocked = true;
         collision.gameObject.GetComponentInChildren<SpriteRenderer>().color = tmp;
     }
 }

 private void OnTriggerExit2D(Collider2D collision)
 {
         Color tmp = collision.gameObject.GetComponentInChildren<SpriteRenderer>().color;
         tmp = Color.green;
         collision.blocked = false;
         collision.gameObject.GetComponentInChildren<SpriteRenderer>().color = tmp;
     }

 }

Thank you!

boxcollider.jpg (10.7 kB)
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
0

Answer by tormentoarmagedoom · Jan 15, 2019 at 09:02 AM

Good day. First, i supose its a copy/paste, but there is a " } " that does nothing

I normally combine the OnTriggerStay with the VEctor3.Distance function, (so no need OnTrigger Eneter/Exit ... The only posiblitity to allow building is something like this:

  public void OnTriggerStay2D(Collider2D collision)
  {
       if (Collider2D.tag =="Building" || INSERT ALL TAGS OF ALL OBJECTS THAT BLOCK BUILDING)
       {
          if (Vector3.Distance(collision.gameObject.transform.position, transform.position) > 10)
          {
             You can build.
          }
       {
  }

Bye!

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

219 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 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 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 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 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 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 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 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 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 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 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 avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

RigidBody Collisions Detect 0 Answers

2D colliders doesnt work with Gravity Scale = 0 0 Answers

Prevent changing speed at collision 0 Answers

OnCollisionEnter only work if both collider's isTrigger=false 3 Answers

Why can my character go through objects with collides on them? 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