うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】Gizmo を描画する際に回転させる

Gizmos.DrawCube を利用して Cube を描画した際に回転ができないため、Rotation 0 じゃない場合は正しく描画できない

   private void OnDrawGizmos()
    {
        Gizmos.DrawWireCube(transform.position, Vector3.one);
    }

f:id:hacchi_man:20210523154509p:plain:w300

そのため、Gizmos.matrix に適切な行列を指定してあげることで、Cube を回転して表示させることができる

回転やスケールを考慮して、Gizmo を描画するのは面倒なので matrix を利用することで手軽に使える

   private void OnDrawGizmos()
    {
        var cache = Gizmos.matrix;
        Gizmos.matrix = Matrix4x4.TRS(transform.position, transform.rotation, transform.lossyScale);
        Gizmos.DrawWireCube(Vector3.zero, Vector3.one * 1.1f);
        Gizmos.matrix = cache;
    }

f:id:hacchi_man:20210523154858p:plain:w300