using UnityEditor; using UnityEngine; [ExecuteInEditMode] public class LockToGrid : MonoBehaviour { public int tileSize = 1; public Vector3 tileOffset = Vector3.zero; void Update() { if(!EditorApplication.isPlaying) { Vector3 currentPosition = transform.position; float snappedX = Mathf.Round(currentPosition.x / tileSize) * tileSize + tileOffset.x; float snappedZ = Mathf.Round(currentPosition.z / tileSize) * tileSize + tileOffset.z; var snappedPosition = new Vector3(snappedX, currentPosition.y, snappedZ); transform.position = snappedPosition; } } }