Saving Runtime Changes (JS)

When using rotation snapping, it creates a floating point onto the platform and misplaces them.

So I made this simple javascript code which snaps the platforms 4 degrees apart on runtime:

var PermChanges : boolean;
var Degree : float = 4;

function Start () {
transform.localRotation.eulerAngles.y = 0;
transform.localRotation.eulerAngles.z =(Mathf.Round(transform.localRotation.eulerAngles.z/4)*4);
transform.localRotation.eulerAngles.x = (Mathf.Round(transform.localRotation.eulerAngles.x/4)*4);

When I go back to editor mode, the platforms get back out of the snapped place.

How do I set the code up so if I tick the PermChanges boolean,
after exiting play mode it will keep the changes made on runtime (making the tiles be snapped on editor).


Unit Snapping

While dragging any Gizmo Axis using the Translate Tool, you can hold the Control key (Command on Mac) to snap to increments defined in the Snap Settings.

You can change the unit distance that is used for the unit snapping using the menu Edit->Snap Settings…

I don’t think there’s a non-hacky way to do what you’re asking. Play mode and edit mode are obviously different. What you could possibly do is: Make your changes in play mode, copy your transform values and paste them back in when you return to edit mode. Another solution could be write your own editor script, but that’s not much different the existing Snap Preferenes.