Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 /
avatar image
0
Question by Serchien · Mar 19, 2020 at 12:15 AM · cameraprefabvariablebeginner

int variable seem to have multiple value at the same time

So I am making a 2D top down shooter similar to Asteroids. I want to add some stars as background and I want them to be generated dynamically in my code. Since there are no boundaries to where the player can go and I don't want to have thousands of stars on my scene, I made so the stars destroy themselves when they are not visible by the camera. Now here is my problem: I created a variable to count the number of stars, the idea being that whenever I destroy one star, I generate another one immediately. Seems simple enough and yet...

So here are my two class: one is attached to the star itself and the other(StarHandler) is attach to an empty game object.

 public class Star : MonoBehaviour
 {
     public StarHandler starHandler;
     private bool hasBeenVisible = false;

 private void OnBecameVisible()
 {
     hasBeenVisible = true;
 }

 private void OnBecameInvisible()
 {
     
     if (hasBeenVisible)
     {
         Destroy(gameObject);
         starHandler.RemoveStar();
     }

 }

 }


This is the the class attached to the sprite, it check if the star is still in the camera and if not, it destroys it and call a the removeStar function in StarHandler.

 public class StarHandler : MonoBehaviour
 {
     public GameObject player;
     public GameObject pfStar;
     private int nbOfStar = 0;

 void Start()
 {        
     Debug.Log(nbOfStar + " Debug 1");
     // This one shows 0 as intended


     AddStar(10);
 }

 void AddStar(int starNb)
 {


     for (int i = 0; i <= starNb; i++)
     {
         Vector2 pos = new Vector2(Random.Range(-9, 9), Random.Range(-5, 5));

         GameObject star = Instantiate(pfStar, pos, Quaternion.identity);

         Debug.Log(nbOfStar + " Debug 2");
         // this one shows 0 as it is supposed to
     }

     nbOfStar += starNb;

     Debug.Log(nbOfStar + " Debug 3");
     // This one shows 10 as it is supposed to
 }
 public void RemoveStar()
 {
     nbOfStar--;

     Debug.Log(nbOfStar + " Debug 4");
     // this one is weird, the value seems to decrease each time I try the game. I tried to reset the
     // component in the inspector but it changes nothing. The value is always negative and can range form -250 to 
     // -1050 and possibly more, it seems somewhat random to me.
           
 }

 void Update()
 {
     Debug.Log(nbOfStar + " Debug 5");
     // This one is weird too. The nombre of star will increase up to 35 in console just as intended,
     //  and then nothing that I have tried as managed to change the number.
     // I can destroy every star in the game and still the console will show me 35...

     if(nbOfStar < 35)
     {
         Vector2 pos = new Vector2(Random.Range(player.transform.position.x + 9, player.transform.position.y - 10),
             Random.Range(player.transform.position.x + 18, player.transform.position.y + 10));
         GameObject star = Instantiate(pfStar, pos, Quaternion.identity);
         nbOfStar++;

     }

 }

}

This is the second script, I have put comments bellow all the Debug.Log() so you can better understand the problem I face.

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

0 Replies

· Add your reply
  • Sort: 

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

297 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

Related Questions

Why is my camera constantly shaking? 0 Answers

Setting variable in prefab from a method called by prefab 1 Answer

FPS Microgame camera moving without input 0 Answers

Rect or Camera transform? 0 Answers

Adding components to prefab instead of player 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