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 Bryangs · Aug 14, 2017 at 09:51 PM · c#arrayscript.variablecreating

Make an array of scripts?

Hey guys! I know this sounds strange, but i have been working on an RPG that i am planning to release as a complete project for beginners to have a base. I am trying to make everything as compact, performance efficient and easy to understand as possible, but i am having a problem with making something.

I want to make a SINGLE SCRIPT that will be some kind of Quest Manager. Everytime the player talks about a specific thing with a specific NPC, the game is supposed to notify this Quest Manager with an ID. The Quest Manager will then proceed to verify if he has such ID on a list, and then activate a specific quest script based on the list's number.

Problem is, as far as i know, the only way to reference a script is to use the script's name as a type itself, so i can't just code something like public C#Script[] database. So what am i asking is, Is there any way that i can make an array of C# Scripts? Like the normal arrays that you can make with GameObjects or AudioSources for an example. If there is, please explain how would i do it or link a tutorial or something. Any help would be appreciated, 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 Reynarz · Aug 14, 2017 at 10:05 PM

There are many ways of do it:

Way 1: using an interface and that all your classes implement it, and make a list of that interface:

   List<IMyInterface> _theClassesThatImplementsThatInterface;

Way 2: your classes are inheriting from MonoBehaviour?

  List<MonoBehaviour> _theClassesThatInheritsFromMonoBehaviour;

Way 3: Your classes inherit from another class(is the same example that above)

 List<MyBaseClassType> _theClassesThatInheritsFromMyBaseClassType;

For populating the list, is like always.

Way 1:

    _theClassesThatInheritsFromMonoBehaviour = new  List<MyInterface>()
     {
           new MyClassThatImplementTheInterface1() { life = 2, name = "hello"},
           new MyAnotherClass() { hour = 3, minutes = 4, seconds = 7}
     }

Way 2

   _theClassesThatInheritsFromMonoBehaviour = new List<MonoBehaviour> ()
    {
         new MyClassThatInheritsFromMonoBehaviour() { Hello = "hola", Goodbye = "Adios"},
         new MyClassAnotherClass() { Casa = Home, Carro = "Car"}
    }

Way 3: the same way of the way 2, but with the class name.

And if you want populate the list Line by line:

    _theClassesThatImplementsThatInterface.add(new MyClass { Blah = "Heeey"} );


That ways are for scripts of multiples types, but if you only want one:

  public MyScript[] _myScript;
  
  private void Start()
  {
        _myScript = new MyScript[/*Array Length*/];
  }

  private void PopulateArray()
  {
         _myScript[0] = GetComponent<MyScript>();
  }
Comment
Add comment · Show 4 · 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 Bryangs · Aug 14, 2017 at 11:13 PM 0
Share

Cool, works like a charm. A few more AI fixes here and there, a little more polishment, and the project will be ready in no time! ^.^

avatar image Reynarz Bryangs · Aug 14, 2017 at 11:16 PM 0
Share

Great!!,@Bryangs $$anonymous$$mm what example you choose it?

avatar image Bryangs Reynarz · Aug 15, 2017 at 07:28 PM 0
Share

First worked just fine

avatar image PhaetonLT · Apr 27, 2018 at 01:32 PM 0
Share

I'm sorry, looked at example no 4, but i wonder about PopulateArray(), would hat also go in the Start? Just looking at possible ways to populate arrays of scripts that are part of different objects, while the script itself is the same.

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

376 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 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 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

Test All Variables in an Array C# 2 Answers

How can I use the same script on multiple objects without conflicting variables. 2 Answers

Initiate class array at start and assign class values. 0 Answers

Add two radius on the same shader 1 Answer

How to make an array with different variables and visible in Unity's inspector 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