• 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 eitanwass · Aug 27, 2016 at 01:11 PM · variablevector2newtype

How to create a new variable type?

Hello human beings!

In my game i want to record operations the player has made, but i want to record them as an array of a new type (something like Vector2) which gets an int and a float. How can one do that?

Thank you. Ethan

Comment
Add comment · Show 7
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 mj321 · Aug 27, 2016 at 01:54 PM 0
Share

Just create a new class with an int and float as member variable. Add getters/setters for the variables and a default constructor and you're set.

avatar image eitanwass mj321 · Aug 27, 2016 at 01:55 PM 0
Share

How? I never needed such thing so i never learned about it? can you give an example?

avatar image eitanwass mj321 · Aug 27, 2016 at 01:57 PM 1
Share

Im not sure... somehting like this?

 public struct OperationVector2 {
 
     public GameObject operativeObject;
     public float operationTime;
 
     public OperationVector2(GameObject o, float t){
         operativeObject = o;
         operationTime = t;
     }
 }
avatar image mj321 eitanwass · Aug 27, 2016 at 02:07 PM 0
Share

A class would give you more options for expansion, like default constructors, operator overloading etc.

But a struct works fine, too. You can still convert it to a class later if needed.

Show more comments
avatar image dhore eitanwass · Aug 27, 2016 at 08:19 PM 0
Share

As @mj321 said, you should add a default constructor too. In case you're not sure, a default constructor is one which takes no arguments and initialises the member variables to default values (for example: setting the GameObject to null and the float to 0f).

Also, not sure if you want this or not, but if you only want the variables to be set from the constructor and not edited (ie. read-only) then you'll need to make a getter/setter like so:

 private GameObject operativeObject;
 private float operationTime;
 
 public GameObject OperativeObject { get { return operativeObject; } private set { operativeObject = value; } }
 public float OperationTime { get { return operationTime; } private set { operationTime = value; } }

For more info on getters and setters click here.

avatar image Owen-Reynolds · Aug 27, 2016 at 02:11 PM 1
Share

C# is a real computer language, used for lots of things before Unity used it. If you Search for regular C# examples of arrays and making new types, you'll find many, many, many examples and explanations that all work the same way in Unity. Or you can read a regular C# book that explains it.

Asking here is nice for other people -- it gives them a chance to practice $$anonymous$$ching you -- but not really the best way for you to learn.

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.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

55 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

Related Questions

How can I define my own datatype?: `private EnemyCounter enemyCounter` 0 Answers

Vector2.MoveTowards Not Working 1 Answer

How to declare variables in class derived from other class variables in the same class? 0 Answers

Why i can't use veriable as a type? 0 Answers

Mob.opponent' is a `field' but a `type' was expected help please! :) 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