x


Getting data from Editor into runtime

The Setup

I just spent a week writing some editor code that allows me to place spawn points around my map (in the editor).

The editor script, SpawnEditorWindow, resides in the Editor folder.

The manager for that script, called SpawnPointManager (resides outside Editor folder), is connected to an empty game object in my scene.

Also connected to that empty game object is another script called SpawnManager, which communicates with my in-game pauseMenu to spawn all the characters in the map at runtime.

SpawnManager draws information from SpawnPointManager, which in turn figure out how many spawns there are from SpawnEditorWindow (basically, from the editor slider bars).

The Problem

So, on to my problem... This works beautifully inside the editor. I hook everything up, open the spawn editor window, adjust how many spawns I want, position them, etc.

However... when I go to run this, the List those spawns isn't initalized... or maybe it's reintialized, I don't know. Anyway, the List count is zero, thus no spawns exist.

The Question

What are my options here? How can I get this information into runtime? It's a List.

more ▼

asked Mar 16, 2012 at 04:26 AM

Stradigos gravatar image

Stradigos
22 22 17 20

Make sure that all the relevant information is being stored in serialized objects in the scene. Information that is only in the editor window will be lost whenever the scripts reload.

Mar 16, 2012 at 04:28 AM syclamoth
(comments are locked)
10|3000 characters needed characters left

2 answers: sort voted first

If you put your own custom class into a list it have to be Serialized not to disappear. So if you have a custom SpawnPoint script you need to use the [System.Serializable] attribute:

 [System.Serializable]
 public class SpawnPoint : MonoBehaviour
 {
     // Stuff you want to do.
 }
 
 public SpawnPointManager : MonoBehaviour
 {
     public List<SpawnPoint> spawns = new List<SpawnPoint>();
 
     // Do the rest of your stuff.
 }
more ▼

answered Mar 16, 2012 at 03:37 PM

PaxNemesis gravatar image

PaxNemesis
340 31 28 42

Thanks for the snippet and the explaination. Your tip about the custom class list was spot on. It's working now, thanks!

PS: Anyone reading this in the future may want to know that I had to delete the game objects and reattach my scripts after this for it to recognize it. Not sure why.

Mar 17, 2012 at 06:26 AM Stradigos
(comments are locked)
10|3000 characters needed characters left

You could have a game object with a script containing a List and have your editor script Find it and copy to it.

more ▼

answered Mar 16, 2012 at 07:16 AM

DaveA gravatar image

DaveA
33.5k 419 341 467

That's actually how it's set up now. SpawnPointManager (records spawn points) and SpawnManager (what actually manages the spawning), are both attached to an empty game object. The editor script is finding the SpawnPointManager script and setting that game objects position (the spawn node) to what the slider in the editor window says. No dice.

Mar 16, 2012 at 02:19 PM Stradigos
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

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

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x2789
x785
x608
x552
x49

asked: Mar 16, 2012 at 04:26 AM

Seen: 1390 times

Last Updated: Mar 17, 2012 at 06:27 AM