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
1
Question by lloladin · May 14, 2015 at 11:43 AM · c#colliderontriggerenter

BoxCollider Overlap OnTriggerEnter Problem

About the game and the problem so i made a fun 2 sidescrolling game where you can shoot bullets when pressing X then the bullet hits the enemy it will dmg him and destroy it self the problem is if 2 enemies are Directly on top of each other they will both take dmg after spending some hours trying to figure it out and trying out stuff i tryed to google it and didnt find anything so i was wondering if anyone could help me Code, keywords, links anything will help me out

this is the code for the Bullet

     public float speed;
     private PlayerController player;
     private Rigidbody myrigidbody;
     
     public int DamageToGive;
     
     // Use this for initialization
     void Start () {
         player = FindObjectOfType<PlayerController> ();
         
         if (player.transform.localScale.x > 0)
         {
             speed = -speed;
             transform.localScale = new Vector3 (-1f, 1f, 1f);
         }
     }
     
     // Update is called once per frame
     void Update () {
         GetComponent<Rigidbody> ().velocity = new Vector3 (speed, GetComponent<Rigidbody> ().velocity.y, 0f);
     }
     
     void OnTriggerEnter(Collider other)
     {
         if (other.tag == "Enemy")
         {
             //Instantiate(enemyDeathEffect, other.transform.position, other.transform.rotation);
             //Destroy (other.gameObject);
             //ScoreManager.add_points(point_kill);
             
             other.GetComponent<EnemyHealthManager>().giveDamage(DamageToGive);
         }
         Destroy (gameObject);
     }

What the code does so in the start function this script i set the speed to - if the player is facing the other way so the bullet will fly the right way in the Update i tell the bullet to move in the X axis OnTriggerEnter i ask if the target it collided with is an enemy if its an enemy i call my dmg script and dmg the enemy and if the bullet hits anythign with an collider it will destroy itself

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 lloladin · May 13, 2015 at 07:34 PM

Solved it while trying to figure out how to hit multiple enmies :D here is a sample of the code if anyone had the same problem public float speed; private PlayerController player; private Rigidbody myrigidbody;

     public int DamageToGive;
 
     public int EnenmyAmount;
     private int CurrentEnemyAmount;
     public bool BulletOnEnemy;
     
     // Use this for initialization
     void Start () {
         player = FindObjectOfType<PlayerController> ();
         
         if (player.transform.localScale.x > 0)
         {
             speed = -speed;
             transform.localScale = new Vector3 (-1f, 1f, 1f);
         }
     }
     
     // Update is called once per frame
     void Update () {
         GetComponent<Rigidbody> ().velocity = new Vector3 (speed, GetComponent<Rigidbody> ().velocity.y, 0f);
 
         if (CurrentEnemyAmount == EnenmyAmount)
         {
             Destroy(gameObject);
         }
     }
     
     void OnTriggerEnter(Collider other)
     {
         if (other.tag == "Enemy")
         {    
             if (!BulletOnEnemy)
             {
             CurrentEnemyAmount++;
             other.GetComponent<EnemyHealthManager>().giveDamage(DamageToGive);
             BulletOnEnemy = true;
             }
         }
 
         if (other.tag == "Wall") 
         {
             Destroy (gameObject);
         }
     }
 
     void OnTriggerExit(Collider other)
     {

         BulletOnEnemy = false;
     }
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

2 People are following this question.

avatar image avatar image

Related Questions

How to make gameObject make only one collision 1 Answer

How to have a score counter increment in OnTriggerEnter 1 Answer

onEnterCollider returns Collider 1 Answer

Distribute terrain in zones 3 Answers

How Does OnTriggerEnter() Work? 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