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 xandermacleod · May 21, 2013 at 03:14 PM · variablebooleantoggleparameteridentify

Toggle Boolean Function

Hi there, I'm just trying to create a function where I can specify a variable I want to toggle on and off using a parameter and then toggle that variable. I'm using C#.

I keep getting an error saying I can't convert a 'string' to a 'bool'. Here's what I've got so far.

         public bool variableA = true;
         public bool variableB = true;
         public bool variableWithADifferentNameC = true;
         
         public void InvertBoolean (string booleanString)
             {
                 if (booleanString)
                 {
                     booleanString = false;
                 } else {
                     booleanString = true;
                 }
             }
         
    
 
  void RandomFunction ()
     {
 InvertBoolean("variableA");
 InvertBoolean("variableB");
 InvertBoolean("variableWithADifferentNameC");
     }

Any help is much appreciated.

P.S. It doesn't like lines 7, 9 and 11.

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

2 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by Sisso · May 21, 2013 at 03:24 PM

Line 7, if statement requires a boolean. You must explicity verify what you consider a valid string.

booleanString == null

booleanString == ""

booleanString.Length > 0

Line 9,11, strings are not boolean, you could not assign a boolean into a string.

booleanString = "true";

This is a basic programing concept. I really recommend to find a programing tutorial.

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
avatar image
0

Answer by nventimiglia · May 21, 2013 at 03:28 PM

Yeah, you are no where near correct. Im hesitant to correct your error because its not that your code is wrong so much as your mindset and understanding of C# is wrong.

 public  class Test
 {
     public bool variableA = true;
     public bool variableB = true;
     public bool variableWithADifferentNameC = true;
 
     public void InvertBoolean(bool arg)
     {
         // warning, value assigned is not used.
         arg = !arg;
         // Try reading the difference between structs and objects
     }
 
 
     void RandomFunction()
     {
         InvertBoolean(variableA);
         InvertBoolean(variableB);
         InvertBoolean(variableWithADifferentNameC);
     }
 }
Comment
Add comment · Show 2 · 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 xandermacleod · May 21, 2013 at 03:29 PM 0
Share

I get that much. What I'm asking is if there's an alternative way of doing the same kind of thing? Perhaps using Casting or something. But I don't know how you would do it syntax-wise. This seems like such a basic thing, of using a string to identify a boolean variable name, but I can't find an alternative solution.

avatar image nventimiglia · May 21, 2013 at 09:19 PM 0
Share

I would rethink your solution. That said, you can use reflection.

  GetType().GetField("variableA").GetValue(this);
  GetType().GetField("variableA").SetValue(this, arg);

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

15 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

Related Questions

Static Variable Problem 1 Answer

Sharing booleans between 2 scripts 1 Answer

How can I change a mecanim animation by pressing a key? 1 Answer

if several variables is true then do function 2 Answers

How to find variable status? 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