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 Stratego · Jan 03, 2016 at 12:45 AM · javascriptobjectsnested

UnityScript nested objects best practice

Hi there :)

I just can't get my head around this: In reference to this question

Problem is the following:
Say you have a player, that player has an inventory, the inventory has weapons, and those weapons have stats.
Disregarding creating equivalent GameObjects and assigning scripts/values to these and so forth. how would I go about making that player?
I come from pure javascript.
So it could just be:

 var player = {};
 player.inventory = {};
 player.inventory.weapons = {};
 player.inventory.weapons["axe"] = {damage = 10, price = 5};
 // then we could access the axe price stat with: player.inventory.weapons["axe"].price;

Nested classes, dictionary/hashtable, or is the best way to go to link everything to respective GameObjects :/

Thanks.

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 jmonasterio · Jan 03, 2016 at 03:25 AM

Everywhere where you have = {}, you're creating a new object. So in C# it would be like:

  // Some simple object to hold data. Could be more complex and inherit from MonoBehaviour, etc.
  class Player { public string name; // Other props here. };
  class Inventory {  public Dictionary <string,Weapon> Weapons; };
  class Weapon { public int damage; public int price };
 
  // Create the objects and initialize members.
  var player = new Player();
  player.inventory = new Inventory();
  player.inventory.weapons = new Dictionary<string, Weapon>();
  player.inventory.weapons.Add( "axe", new Weapon() { damage = 10, price =5 });

Comment
Add comment · Show 1 · 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 Stratego · Jan 03, 2016 at 11:18 AM 0
Share

(forgot to thank you; Thank you very much :D) Declare the objects first, got it. Although, need to reference the child class in the parent one as well.

 class Player {
     var name : String;
     var inventory : Inventory;
 }
 
 class Inventory {
     var weapons : Weapons;
 }
 
 class Weapons {
     var weapon : Weapon;
 }
 
 class Weapon {
     var damage : int;
     var price : int;
     function Weapon(dam : int, pri : int){
     damage = dam;
     damage = pri;
     }
     function Weapon(){
     damage = 10;
     price = 10;
     }
 }


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

44 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

Related Questions

How to add a script to a parent object and not every individual child object. 1 Answer

Hide and Show objects cycle 0 Answers

How do I make unity generate a random equation and an answer to to it (also making it show on the screen?) 0 Answers

GameObject, Select Parent As Object 0 Answers

First Person Controller error, "IndexOutOfRangeException:Array index is out of range." 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