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 arsh24 · Mar 12 at 08:25 PM · scripting problemuigameobjectscript.inspector

Why is my Unity script overwriting other game objects on which it is attached to?

I'm trying to show different documents to the player when it comes near the pages. I have two pages, both of them are colliders which have triggers, they are using the same script, but with different game objects in the inspector (for showing different documents). A text box would pop up beforehand, which tells the player to enter space key in order to view the document. If the player comes near the Page 1, the 'Image panel' should pop up. If the player comes near the Page 2, the 'Test panel' should pop up. After viewing the document, that page should be destroyed.

The below image is for 'Page 1' alt text

The below image is for 'Page 2' alt text

However when the player comes near the Page 1, 'TEST panel' always pop up instead of 'Image Panel' and BOTH of the pages get destroyed afterwards. 'TEST panel' is showing because Page 2's script has overwritten the Page 1's script in a sense, I believe. I am really confused in this matter, I am a beginner at Unity, here is the script:

 using UnityEngine;
 public class ViewDocument : MonoBehaviour
 {
     public GameObject theText;
     public GameObject theDocument;
     public static bool viewDocument;
     public static bool documentOpened;
 private void OnTriggerEnter(Collider other)
 {
     if (other.tag == "Player")
     {
         theText.SetActive(true);
         viewDocument = true;
     }
 }
 private void OnTriggerExit(Collider other)
 {
     theText.SetActive(false);
 }
 private void showDocument()
 {
     theText.SetActive(false);
     Debug.Log("Now showing " + theDocument.name);
     theDocument.SetActive(true);
     documentOpened = true;
     Time.timeScale = 0f;
 }
 private void closeDocument()
 {
     Time.timeScale = 1f;
     theDocument.SetActive(false);
     Destroy(gameObject);
 }
 private void Update()
 {
     if (Input.GetKeyDown(KeyCode.Space) && viewDocument == true)
     {
         Debug.Log("Before show doc :" + documentOpened.ToString());
         showDocument();
         viewDocument = false;
         Debug.Log("After show doc :"+ documentOpened.ToString());
     }
     else if (Input.GetKeyDown(KeyCode.Space) && documentOpened == true)
     {
         closeDocument();
         Debug.Log("Document closed!");
     }
 }

Your help would be much appreciated!

page1.png (8.4 kB)
image2.png (8.3 kB)
Comment
Add comment · Show 1
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 ADiSiN · Mar 14 at 07:49 AM 0
Share

Hi!

The issue should be in these lines of code:

 public static bool viewDocument;
 public static bool documentOpened;


You are using static type of variables and it's an global type of variable therefore each separate instance of the class will have the same value there at a time. You can remove "static" and it should work after that.

Lemme know if that helped!

As future optimization I would advise to move logic under Update() to one Player class in future, because as for now imagine you would have 100 pages and every single one of them would constantly check for Inputs what is sorta pointless, so just a tip in that regard.

1 Reply

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by henkehedstrom · Mar 14 at 10:57 AM

Your variables "viewDocument" and "documentOpened" are static which means that every instance of the class ViewDocument share those variables basically. So if you go near Panel1, viewDocument will be true for every ViewDocument class. Panel 2 will think that you are close to that one aswell, when you then press space, both panels will open up at the same time. I don't see why you would want those variables to be static in this case so by removing the static keyword your problem should go away :)

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

361 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

Related Questions

Display the same string in multiple text boxes 1 Answer

Create arrow to show force and direction 1 Answer

How to find in what Scripts or components an Object is connected 0 Answers

Need help writing script 1 Answer

I'm trying to make scorezones but i cant seems to get it right.,Im trying to make a scorezone that you can go through and that can add 1 point to the 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