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
0
Question by Beeffffff30303 · Apr 01, 2021 at 10:17 AM · unity 2denemyhideshow

Enemy attacking enemy when defeated

hi, I'm trying to make a 2d top down game where if I defeat an enemy, then the enemy fights for me. I'm trying to destroy the original enemy object when health = 0 and will set is Dead bool to true, then the other enemy will spawn and attack enemies. but when i kill the enemy, the second enemy doesn't show. here is my code for the second enemy script:

using System.Collections; using System.Collections.Generic; using UnityEngine;

public class goblinzob : MonoBehaviour { public float speed; private Transform target; private Transform target2; public Animator animator; public Animator aNimator; public Transform homePos; public int maxHealth = 50; public int currentHealth; public HealthBar healthbar; Vector2 movement; public EnemyFollow ef;

 // Start is called before the first frame update
 void Start()
 {
     target = GameObject.FindGameObjectWithTag("Player").GetComponent<Transform>();
     target2 = GameObject.FindGameObjectWithTag("Enemy").GetComponent<Transform>();
     currentHealth = maxHealth;
     healthbar.SetMaxHealth(maxHealth);
     gameObject.SetActive(false);
 }

 // Update is called once per frame
 void Update()
 {
         movement.x = target.position.x - transform.position.x;
         animator.SetFloat("Horizontal", movement.x);
         animator.SetFloat("Speed", movement.sqrMagnitude);
         aNimator.SetFloat("Horizontal", movement.x);
         aNimator.SetFloat("Speed", movement.sqrMagnitude);


         if(Vector2.Distance(transform.position, target2.position) < 300 && ef.isDead == true)
     {
         transform.position = transform.position = Vector2.MoveTowards(transform.position, target2.position, speed * Time.deltaTime);
     }
     else if (ef.isDead == true)
     {
         transform.position = transform.position = Vector2.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
     }

         if(Vector2.Distance(transform.position, target2.position) < 50f && ef.isDead == true)
     {
         aNimator.SetBool("IsAttacking", true);
     }
     else if (ef.isDead == true)
     {
         aNimator.SetBool("IsAttacking", false);
     }

         if(Vector2.Distance(transform.position, target.position) < 40f && ef.isDead == true)
     {
         animator.SetBool("HomePosition", true);
     }
     else if (ef.isDead == true)
     {
         animator.SetBool("HomePosition", false);
     }

         if(Vector2.Distance(transform.position, target2.position) < 40f && ef.isDead == true)
     {
         animator.SetBool("HomePosition", true);
     }
     else if (ef.isDead == true)
     {
         animator.SetBool("HomePosition", false);
     }
     
     if(ef.isDead == true)
     {
         gameObject.SetActive(true);
         transform.position = target2.position; 
     }
 }
     
     public void TakeDamage(int damage)
 {
     currentHealth -= damage;
     healthbar.SetHealth(currentHealth);
 }

}

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 logicandchaos · Apr 03, 2021 at 12:57 PM

gameObject.SetActive(true); will not work, a gameObject can not activate itself. When a gameObject is disabled none of the scripts attached to it run. What you could do is when you kill the enemy the player gets a reference to it and activates it, or you can keep all the references in a manager script.

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

121 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

Related Questions

Enemy stops patrolling when player comes close 2 Answers

Health to come above enemy when clicked 1 Answer

How to make arch knockback 3 Answers

How to implement proper enemy follow and shoot 0 Answers

How to hide AdMob ads? 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