• 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
Question by mike1233 · Feb 03, 2017 at 02:21 PM · 2d gameif-statementselsedieoncollision

code so if 1 enemy isnt killed every 4 seconds player dies?

how do I code it so if 1 enemy isn't killed at least every 4 seconds the player dies?

not sure if this is right code to put here but this script is on all the enemies enemies are instantiated every second at least this is the enemys die script

 using UnityEngine;
 using System.Collections;
 
 [RequireComponent(typeof(AudioSource))]
 public class dedd : MonoBehaviour {
 
     public AudioClip pop1;
     public AudioClip boing;
     AudioSource audio;
 
          Animator anim;                    //reference to the animator component
     void Start()
         {
         audio = GetComponent<AudioSource>();
             //get reference to the animator component
             anim = GetComponent<Animator> ();
      
         }
         void OnCollisionEnter2D(Collision2D other)
          //void OnTriggerEnter2D(Collider2D other) 
     {
  
 if (other.gameObject.tag == "Player" || other.gameObject.tag == "Wall" ) 
 {
     // do something when we collide with "enemy1" OR "enemy2"
     anim.Play("fishded");
     anim.SetTrigger("Die");
     GetComponent<AudioSource> ().Play ();
         audio.PlayOneShot(pop1, 0.7F);
 }
 else if (other.gameObject.tag == "bad" || other.gameObject.tag == "bad" ) 
 {
     // do something else when we collide with "enemy3" OR "enemy4"
             anim.Play("fishded");
             anim.SetTrigger("Die");
             GetComponent<AudioSource> ().Play ();
             audio.PlayOneShot(boing, 0.7F);
 
 }
 
     }
 }

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

1 Reply

· Add your reply
  • Sort: 
avatar image

Answer by NoseKills · Feb 03, 2017 at 05:18 PM

Quick and dirty:

 public class DeathWatch : MonoBehaviour {
     private const float DeathTimeLimit = 4;
     private static float deathCountdown = DeathTimeLimit;
 
     private void Update() {
         deathCountDown -= Time.deltaTime;
         if (deathCountdown < 0) {
              // Game over
         }
     }
 
     public static void ReportDeath() {
         deathCountdown = DeathTimeLimit;
     }
 }

Have just 1 object with this script in the scene, call DeathWatch.ReportDeath() when an enemy dies and handle game over somehow

Comment

People who like this

0 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 mike1233 · Feb 03, 2017 at 08:31 PM 0
Share

I added this to the player but nothing is happening

how do I call DeathWatch.ReportDeath() ? what does that mean?

im a newbie

avatar image mike1233 · Feb 03, 2017 at 08:47 PM 0
Share

for this to work for now do I have to setup the game over function ?

its not killing the player nothing is happening so far

avatar image NoseKills · Feb 09, 2017 at 07:16 AM 0
Share

So where ever you detect an enemy dying, you need to call DeathWatch.ReportDeath() ;. Just write that piece of text to where you detect an enemy dying in your code.

If you look at my script, you can see it's just a 4 second countdown timer and every time you call ReportDeath the countdown resets.

The acript doesn't do anything yet when that 4 seconds expires: // Game Over is just a comment that shows where you have to put your code for handling game over.

avatar image mike1233 NoseKills · Feb 09, 2017 at 06:03 PM 0
Share

its not working heres the script

 public class DeathWatch : MonoBehaviour {
 
 
 
     public AudioClip pop1;
     public AudioClip boing;
     AudioSource audio;
     Animator anim;  
 
 
         private const float DeathTimeLimit = 4;
         private static float DeathCountdown = DeathTimeLimit;
 
 
     void Start()
     {
         audio = GetComponent<AudioSource>();
         //get reference to the animator component
         anim = GetComponent<Animator> ();
      
     }
 
 
             private void Update() {
             DeathCountdown -= Time.deltaTime;
             if (DeathCountdown < 0) {
 
             anim.Play("fishded");
             anim.SetTrigger("Die");
              
             audio.PlayOneShot(pop1, 0.7F);
 
 
                 // Game over
             }
                 }
 
         public static void ReportDeath() {
             DeathCountdown = DeathTimeLimit;
         }
          }
 

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

95 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

Related Questions

code so if 1 enemy isnt killed every 4 seconds player dies? 0 Answers

Can't Locate gameobject in array 3 Answers

Else section in if statement not executing? 0 Answers

Else and If activated at the same time? 1 Answer

How to stop camera from moving when the player dies (2D)? 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