• 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
Question by Chocolade · Sep 18, 2017 at 08:47 PM · c#scripting problemcollidercolliderscollision detection

Why when i move the player object through the door the ontriggerenter/exit event are not fire ?

This script is attached to the player:

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class door : MonoBehaviour
 {
     void OnTriggerEnter(Collider obj)
     {
         var thedoor = GameObject.FindWithTag("SF_Door");
         thedoor.GetComponent< Animation > ().Play("open");
     }
 
     void OnTriggerExit(Collider obj)
     {
         var thedoor = GameObject.FindWithTag("SF_Door");
         thedoor.GetComponent< Animation > ().Play("close");
     }
 }

Also this script is attached to the player:

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class PointAndClick : MonoBehaviour
 {
     public float moveSpeed = 50;
     private Vector3 originalPosition;
 
     void Start ()
     {
         originalPosition = transform.position;
     }
 
     void Update()
     {
         if (transform.position.z < 100)
             transform.position += Vector3.forward * Time.deltaTime * moveSpeed;
     }
 }

To the player i added also a Rigidbody component.

The door i added a component box collider. I tried to play with the box collider is trigger to check/uncheck it. I also tried to play with the rigidbody on the player check/uncheck the is kinematic if not checked the player is falling down.

All the cases i tried not working. I added a break point on the OnTriggerEnter in the door script and it's never getting there.

In the screenshot on the left the Hierarchy the Platform and Doors are just empty GameObjects. On Door_Prefab i added a box collider and the is trigger is checked. And the box collider size is set to x = 10 y = 10 z = 10

Then Player is also empty GameObject that i added to it the Rigidbody attached the two scripts and also added to it a box collider.

Tried to play on both the door and player box collider is trigger check/unchecked nothing was working.

screnshot

player.jpg (89.1 kB)
Comment

People who like this

0 Show 0
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
Best Answer

Answer by PERFKNIGHT · Sep 18, 2017 at 09:51 PM

You're actually trying to find the first object that is a door in your hierarchy, which probably isn't what you want. You want to get the animation from the specific object you have triggered. Your Collider argument is in the OnTriggerEnter to give you information on what the trigger has collided with.

You can do one of two things: change the FindObject command to a CompareTag method (I'll show how to code that later), or use a combination of input and raycasting to open doors manually rather than automatically.

First solution:

 void OnTriggerEnter(Collider obj)
      {
          if(obj.CompareTag("Door"))
          {
                Animation open = obj.gameObject.GetComponent<Animation>("Open");
                open.Play();
          }
      }

You can do this for both animations.

The second method involves raycasting and input. Watch a few tutorials on that to get the best idea, but basically, what you want to do is make sure you're casting a ray at the door when you press a button. If the door is within range and the button is pressed, the door opens/closes.

Hope this helps!

Comment

People who like this

0 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 Chocolade · Sep 18, 2017 at 10:07 PM 0
Share

I found the problem and it was my mistake. First to trigger the events i'm using now on the player capsule collider easy to set it to cover the player. And a rigidbody also on the player.

On the door like before a box collider.

On the Rigidbody only Use Gravity is checked. On both box collider and capsule collider Is Trigger is unchecked. The two scripts are attached like before to the player.

Now the events are working. And since i have two doors duplicated and both using same tag "SF_Door" took me some time to figure out it's working fine it's just opened the second door and i was looking on the first one.

Anyway now it's working.

avatar image

Answer by SoulPixel · Sep 18, 2017 at 09:06 PM

Try to use "Debug.Log" to check, if the collision trigger works. Then you will first of all know, if the problem is the collision system or your code, attached to it.

Comment

People who like this

0 Show 0 · 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.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

413 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

Related Questions

Reset a collider during runtime to lose previous Physics.IgnoreCollision() calls 1 Answer

Strange issue with collider 1 Answer

Why the npc character walking strange when using a Rigidbody and Is Kinematic on enabled ? 1 Answer

How to detect when two colliding objects create a corner? 1 Answer

OnTriggerEnter does not work 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