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 /
avatar image
0
Question by torak289 · May 14, 2020 at 08:29 PM · enumpassthrough

Issues with an enum not passing

So I have a block of code which is being passed an enum from anothe c# script. Everything is working fine apart from one little thing which is settng leftHandState and rightHandState to the passed enum value. I have debug.log the incoming variables hLeft and hRight and they return the correct enum. But when I go to make leftHandState or rightHandState = to the passed enum value they do not change but stay at the default value for the enum.

This is the code for the specific file below:

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 public enum HandStates { Default, Fist, ThumbUp, PointingThumbUp, Pointing, IndexFinger };
 public class SystemManager : MonoBehaviour
 {
     //GameObject States
     public CasualtyState casualtyState;
     //hand Presence
     private HandStates leftHandState;
     private HandStates rightHandState;
     public WristReturnMenu wristReturnMenu;
 
     public void SetLeftHandState(HandStates hLeft) {
         Debug.Log(hLeft); //This is logging the correct enum value
         leftHandState = hLeft;
         Debug.Log(leftHandState); //This isn't changing
     }
     public void SetRightHandState(HandStates hRight) {
         rightHandState = hRight;
     }
     private void Update() {
         Debug.Log("Left Hand State: " + leftHandState);
         Debug.Log("Right Hand State: " + rightHandState);
     }
 }
 

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
Best Answer

Answer by darksider2000 · May 14, 2020 at 11:53 PM

Since you're accessing the Set functions from outside of the SystemManager class that means you have another enum called HandStates, and that's why you're having this problem.


Those are two different enums. You have a SystemManager/HandStates and a "OtherCode"/HandStates. You can't make them interact in the same way that you can't do Vector3 = Vector2.


The quickest way for you to fix this in your code would be to pass along an int Index instead of the whole enum type, then use the index to assign the value you want to SystemManager/HandStates.

The correct way would be to create a "BodyTypes".cs scriptable object class. Then make your HandStates enum there, and use that type to create enums in all your code.

 public class BodyTypes : ScriptableObject
 {
        public enum HandStates {ThumbsUp, ThumbsDown};
 }



This is how you would declare a new HandStates type in the rest of your code:

  public BodyTypes.HandStates thisHandState;
  public class SystemManager : MonoBehaviour
  {
      //GameObject States

Comment
Add comment · Show 3 · 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 torak289 · May 15, 2020 at 09:49 AM 0
Share

So. I implemented that and The Debug.logs both work inside the method now, but if I check the leftHandState from anywhere else in the script it only logs as the default value? for example checking it in Update() in the System$$anonymous$$anager only returns it as Default?

avatar image darksider2000 torak289 · May 15, 2020 at 05:29 PM 0
Share

Could you show me your new code?

avatar image torak289 darksider2000 · May 15, 2020 at 06:08 PM 0
Share

I've found the issue, there was a typo in my code which I've now fixed. it is all working now! you help has been much appreciated

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

127 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

Related Questions

Problem with second enum selection inspector 0 Answers

How to use EnumPopup 1 Answer

Enum-Variable with float 1 Answer

Error calling enum lists 1 Answer

Get Enum member from int 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