ゲームをプレイしながら画面をレイアウトしたい時、N分割の補助線が欲しくなります。
なので作成しました。ソースもご自由にお使いください。
using UnityEngine; [ExecuteInEditMode] public class DebugGridLines : MonoBehaviour { #if UNITY_EDITOR [SerializeField] Color _color = Color.red; [SerializeField, Range(1, 8)] int _divides = 4; [SerializeField] bool _drawInPlaying = false; private void OnDrawGizmos() { if (!_drawInPlaying) return; if (_divides <= 1) return; Camera cam = Camera.main; if (cam == null) return; Gizmos.color = _color; // x for (int i = 1; i < _divides; ++i) { var y = i * Screen.height / _divides; var a = cam.ScreenToWorldPoint(new Vector3(0, y, 1)); var b = cam.ScreenToWorldPoint(new Vector3(Screen.width, y, 1)); Gizmos.DrawLine(a, b); } // y for (int i = 1; i < _divides; ++i) { var x = i * Screen.width / _divides; var a = cam.ScreenToWorldPoint(new Vector3(x, 0, 1)); var b = cam.ScreenToWorldPoint(new Vector3(x, Screen.height, 1)); Gizmos.DrawLine(a, b); } } #endif }
アタッチ対象のオブジェクトを制限したくないので、メインカメラを検索して自動で採用するようにしています。
分割数、カラーを変更できます。
実行時にも表示したい場合は、「_drawInPlaying」を有効にしてください。