1. Зная размерность сетки, можно руками поправить координаты в Transform
2. Можно перетащить префаб во вкладку Hierarchy, а затем перетащить на нужное место через Move Tool с зажатой Ctrl
3. Можно поместить сразу как надо, и, держа открытой вкладку "Edit >> Grid and Snap Settings...", нажать кнопку "All Axes", и если оно неправильно округлило, то используя способ 2, дотянуть немного.
4. Можно самому написать скрипт, типа такого:
скрипт
using UnityEngine;
using UnityEditor;
public class SnapPrefab : MonoBehaviour {
public float cellSize = 0.5f;
#if UNITY_EDITOR
private void OnValidate() {
Snap();
}
#endif
public void Snap() {
Vector3 position = transform.position;
position.x = Mathf.Round(position.x / cellSize) * cellSize;
position.y = Mathf.Round(position.y / cellSize) * cellSize;
position.z = Mathf.Round(position.z / cellSize) * cellSize;
transform.position = position;
}
}
#if UNITY_EDITOR
[CustomEditor(typeof(SnapPrefab))]
public class SnapPrefabEditor : Editor {
public override void OnInspectorGUI() {
base.OnInspectorGUI();
if (GUILayout.Button("Snap")) {
SnapPrefab script = (SnapPrefab) target;
script.Snap();
}
}
}
#endif