If UnityEditor.Undo calls at runtime, as shown below, it can cause problems?
What about when you have been running on the device?
public void Click()
{
Undo.DestroyObjectImmediate(this.GetComponent<BoxCollider2D>());
}
If UnityEditor.Undo calls at runtime, as shown below, it can cause problems?
What about when you have been running on the device?
public void Click()
{
Undo.DestroyObjectImmediate(this.GetComponent<BoxCollider2D>());
}
(Edit for clarification) Editor code cannot be used in a build of your game
You can use Preprocessor Directives to prevent editor code from running in the build of your game. If this piece of code isn’t in an editor script (i.e. inside a folder named “Editor”), then you can wrap the method like this:
#if UNITY_EDITOR
public void Click()
{
Undo.DestroyObjectImmediate(this.GetComponent<BoxCollider2D>());
}
#endif
Or if you have other logic in your method that needs to run in the build, you can do something like this:
public void Click()
{
#if UNITY_EDITOR
Undo.DestroyObjectImmediate(this.GetComponent<BoxCollider2D>());
#elif
//alternate code goes here
#endif
}