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 DigiScot · Apr 13, 2015 at 09:51 PM · listdatabaselists

Reference list within a list

Hi,

I'm trying to create a very simple database one to many like list, in which I have:

  • A list of objects (cooker, toaster, box..)

  • A list of tools (bread, knife, cup...)

  • A list of the above objects, that can have many of the above tools, with other variables (this will be on how they interact, how long etc)

So I have something like the below as an example of what I'd like to achieve.

My main goal is to be able to populate these from the editor, so they can be changed at will, and saved against whatever object I put it on.

I can't figure our how to populate the UseableTool.obj or UseableTool.tool, with the other lists, doing it as shown below just creates further list objects.

Any thoughts/ideas?

Thanks, Geordie


 using UnityEngine;
 using System.Collections;
 using System.Collections.Generic;
 
 public class Data : MonoBehaviour {
 
     [SerializeField] List<Object> objects = new List<Object>();
     [SerializeField] List<Tool> tools = new List<Tool>();
     [SerializeField] List<UseableTool> useableTools = new List<UseableTool>();
 
     [System.Serializable]
     public class Object {
         public string name;
     }
 
     [System.Serializable]
     public class Tool{
         public string name;
         public float cost;
     }
 
     [System.Serializable]
     public class UseableTool{
         public Object obj;
         public Tool tool;
         public float time;
         public float effort;
         
     }
 }



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

Answer by spiceboy9994 · Apr 14, 2015 at 10:21 PM

Try this:

 public class CustomData : MonoBehaviour {
 
 public List<CustomObject> myObjects;
 public List<Tool> myTool;
 public List<UseableTool> useableTools;
 
 }
 
 [System.Serializable]
 public class CustomObject {
    public string name;
 }
 
 [System.Serializable]
      public class Tool{
          public string name;
          public float cost;
      }
  
      [System.Serializable]
      public class UseableTool{
          public Object obj;
          public Tool tool;
          public float time;
          public float effort;
          
      }

And here's the explanation:

  1. I put the extra classes declaration outside the class that inherit from monobehavior

  2. I renamed the "Data" and "Object" classes to a more personal one. That may help you on when coding on the intellisense detection and avoid any possible naming conflict with native unity classes.

  3. I exposed the List of objects as simple public variables within the MonoBehavior class. That should be enough to get the lists to the Editor.

Regards

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 DigiScot · Apr 17, 2015 at 07:22 AM 0
Share

thanks for the input, not quite what I was after, I was hoping to get a way to build the interactions between the tools and objects I set up in UseableTool and do all this within the Editor, so the UseableTool:obj and UseableTool:tool would be lists of what is entered in the myObjects and myTools lists. After playing around with this a bit and trying to do some Editor scripts, I decided to just use csv files... much easier :)

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

3 People are following this question.

avatar image avatar image avatar image

Related Questions

A node in a childnode? 1 Answer

How do i convert this code snippet to a list? 1 Answer

Adding gameObject to List of different script 0 Answers

How to stop instantiating a certain object / objects from a list . 3 Answers

How do i remove a list item from the scene while adding the next? 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