- Home /
Serializing MonoBehaviours
I'm sure this has been asked before but I was unable to locate an answer.
I would like to create a simple comment script. To allow an implementor to explain why/how the gameobject is constructed as it is.
Simple enough, but what I don't want; Is for that component to be serialized with the gameobject when the project is built (Android/iOS/etc...).
The only info I could find was to wrap the class within #if UNITY_EDITOR. I would assume the component would still exist on the object but would have empty data? or a 'missing' component?
Answer by Positive7 · Sep 04, 2015 at 09:11 PM
http://docs.unity3d.com/Manual/PlatformDependentCompilation.html[link text][1]
So for example if you attach this code to your Project :
public class PlatformDefines : MonoBehaviour {
void Start () {
#if UNITY_EDITOR
Debug.Log("Unity Editor");
#endif
#if UNITY_IPHONE
Debug.Log("Iphone");
#endif
#if UNITY_STANDALONE_OSX
Debug.Log("Stand Alone OSX");
#endif
#if UNITY_STANDALONE_WIN
Debug.Log("Stand Alone Windows");
#endif
}
}
It will compile the code depends on the Build Settings. So for example if you build it Windows and check Assembly-Csharp.dll with reserved engineering Software the code would look like this :
using System;
using UnityEngine;
public class PlatformDefines : MonoBehaviour
{
private void Start()
{
Debug.Log("Stand Alone Windows");
}
}
[1]: http://docs.unity3d.com/Manual/PlatformDependentCompilation.html
What would it look like if I did the following?
#if UNITY_EDITOR
using System;
using UnityEngine;
public class PlatformDefines : $$anonymous$$onoBehaviour
{
private void Start()
{
Debug.Log("Unity Editor");
}
}
#endif
$$anonymous$$y concern is bloating the bundle size over a script that is meant to be development only.
An empty dll . The script PlatformDefines.cs would not exist in the dll.
Your answer
Follow this Question
Related Questions
Build pipeline and wrong values in OnValidate / ISerializationCallbackReceiver 0 Answers
JsonUtility not found / working 0 Answers
How to store references between scriptableobject assets 3 Answers
Trying to Use DataContractSerializer with 0 Answers
Unserialized private variable values from static instance persist when exiting play mode 1 Answer