Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
2 captures
12 Jun 22 - 14 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 /
This question was closed Jun 13, 2018 at 03:01 AM by bunnynsnake.
avatar image
1
Question by bunnynsnake · Jun 12, 2018 at 09:01 PM · c#ontriggerentersetactivebox collideristrigger

OnTriggerEnter not working

Hello everyone,

I am trying to have the player be able to walk through a wall (game object) that is set inactive on Awake and then once they walk through it (activating the tigger), I want it to set the Box Collider (attached to the game object) active so they cannot go back through the same wall they just went through.

Here is the script I have

  using System.Collections;
  using System.Collections.Generic;
  using UnityEngine;
  
  public class SetWallInactive : MonoBehaviour
  
  {
      [SerializeField] BoxCollider col_wall;
      void Awake()
      {
          col_wall.enabled = false;
      }
  
      void OnTriggerEnter(Collider col)
      {
          if (col.tag == "Player")
          {
              col_wall.enabled = true;
          }
      }
  }
 

I was going to try "Destroy(other.gameObject);" to make it so the player wouldn't be able to go back through as the wall has the box collider on it and is set as "is trigger". But that is a side note, as it is not even setting the Box Collider active after the player goes through the trigger.

At Awake the level will set the wall inactive as it should but when the player walks through, it does nothing.

Any help is very welcomed, this seemed as an easy thing to do, and it has been a nightmare to figure out.

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

  • Sort: 
avatar image
3
Best Answer

Answer by SlowCircuit · Jun 13, 2018 at 12:57 AM

  1. Make the wall's collider default to isTrigger being true. The in OnTriggerExit, set the collider isTrigger to false so it's a normal collider. By having it in enter, the wall would turn solid with the player still inside it.

  2. You may also want to have it record the player's position in OnTriggerEnter and compare it with their position on exit to make sure they're exiting from the other side. Otherwise players might walk partly in, walk backwards and then be stuck behind a solid wall.

  3. At least one of the objects needs a rigidbody and it can NOT be set to kinematic.

  4. On the Physics settings layer matrix, the box where their layers intersect MUST be checked.

  5. If you're using trigger settings like I'm suggesting, make sure the wall collider and object are both enabled.

Comment
Add comment · Show 3 · 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 bunnynsnake · Jun 13, 2018 at 02:35 AM 0
Share

that makes sense...but how do i set isTrigger to false in OnTriggerExit?

I don't see a layer matrix, i see "tags and layers" in which nothing is there because i have not done any layers.

thank you for the help, i just need a little more please.

avatar image bunnynsnake · Jun 13, 2018 at 03:01 AM 0
Share

I am just going to post a new question with a video of what is happening.

avatar image SlowCircuit bunnynsnake · Jun 13, 2018 at 03:39 AM 1
Share

Edit > Project Settings > Physics

That's where you edit the layer matrix. If you're doing a 2D game then it's Physics 2D of course.

 void OnTriggerExit() { col_wall.isTrigger = false; }
avatar image
0

Answer by Tobychappell · Jun 12, 2018 at 09:27 PM

So if I understand this correctly. The wall GameObject has a trigger collider and this script attached to it. and this wall GameObject is active.

And this GameObject has an active child that has a non-trigger collider on it and is referenced in the script as col_wall. On Awake this col_wall is disabled by this script.

The logic seems sound. It may be a configuration issue.

Is col_wall definitely set to be this child box collider and not the trigger collider. Do you noticed the trigger collider become disabled?

Does the player have a rigidbody?

Are they on the same physics layer? Or on layers that are set to interact with each other?

Might want to change your title for this question as you are using OnTriggerEnter in your code not OnCollisionEnter


Try looking at this example project:

https://we.tl/JXTDI5uGX4

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 bunnynsnake · Jun 12, 2018 at 09:37 PM 0
Share

I am not sure I understand what you mean? The box collider is a child of the wall. the wall (game object) is set as "is trigger" and has the script attached to it. are you saying i should have a collider separate from the wall ?

avatar image Tobychappell bunnynsnake · Jun 12, 2018 at 09:59 PM 0
Share

Ahhh right, sorry, when you said 'the box collider' I didn't know this was the physical collider and that it was childed to the wall GameObject.


So if I understand this correctly. The wall GameObject has a trigger collider and this script attached to it. and this wall GameObject is active.

And this GameObject has an active child that has a non-trigger collider on it and is referenced in the script as col_wall. On Awake this col_wall is disabled by this script.


The logic seems sound. It may be a configuration issue.

Is col_wall definitely set to be this child box collider and not the trigger collider. Do you noticed the trigger collider become disabled?

Does the player have a rigidbody?

Are they on the same physics layer? Or on layers that are set to interact with each other?


$$anonymous$$ight want to change your title for this question as you are using OnTriggerEnter in your code not OnCollisionEnter.

avatar image bunnynsnake Tobychappell · Jun 12, 2018 at 10:13 PM 0
Share

fixed the title.

i do see the wall get set inactive. it just does not get set active when the player walks through the box collider.

The player does have a rigidbody - i even tied just using the pre-built first person controller that unity provides with the standard assets and it did not work.

not sure what you are talking about with the layers, perhaps that is the issue if the logic is all there. ill look at that, is that really the only thing that could be the issue ?

Show more comments

Follow this Question

Answers Answers and Comments

510 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 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 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

On trigger enter help 1 Answer

How to initiate something before Application.LoadLevel? (C#) 0 Answers

My Game Over Canvas is working in one level but not the other! 0 Answers

Unable to reactivate an object that's been deactivated. C# 4 Answers

SetActive delay between code and actual object on the screen 0 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