ゲームをプレイしながら画面をレイアウトしたい時、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」を有効にしてください。