@@ -9,40 +9,50 @@ namespace UTJ.RenderTextureCamera
9
9
{
10
10
// レンダリング先にRenderTextureを使用し解像度を下げる
11
11
// 使い方
12
- // renderTexture :レンダリング解像度を下げたいCameraを設定
12
+ // m_RenderTextureCamera :レンダリング解像度を下げたいCameraを設定
13
13
// mainCamera : RenderTextureCameraの上にレンダリングを行うCameraを設定
14
14
// shift : スクリーン解像度に対してshift分右へシフトさせRenderTextureのサイズを決定する
15
15
16
16
17
17
public class RenderTextureCamera : MonoBehaviour
18
18
{
19
- [ Tooltip ( "レンダリング先をRenderTextureとするCameraを指定する " ) ]
19
+ [ Tooltip ( "レンダリング解像度を下げたいCamera(レンダリング先をRenderTextureとするCamera) " ) ]
20
20
// 自身のCamera
21
- [ SerializeField ] Camera renderTextureCamera ;
21
+ [ SerializeField ] Camera m_RenderTextureCamera ;
22
22
23
- [ Tooltip ( "Render TextureのベースにするCamera (2D Camera,Main Camera... etc." ) ]
23
+ [ Tooltip ( "RenderTextureを描画(Blit)するCamera (2D Camera,Main Camera... etc." ) ]
24
24
// mainCamera
25
- [ SerializeField ] Camera mainCamera ;
25
+ [ SerializeField ] Camera m_BlitCamera ;
26
26
27
- [ Tooltip ( "RenderTextureをmainCameraへBlitするタイミング。※BeforeForwardOpaqueから変更する必要は無い " ) ]
28
- [ SerializeField ] CameraEvent mCameraEvent = CameraEvent . BeforeForwardOpaque ;
27
+ [ Tooltip ( "RenderTextureをBlitCameraへBlitするタイミング。※基本的にはBeforeForwardOpaqueから変更する必要はありません " ) ]
28
+ [ SerializeField ] CameraEvent m_CameraEvent = CameraEvent . BeforeForwardOpaque ;
29
29
30
30
// RenderTextureのフィルターモード
31
- [ SerializeField ] [ HideInInspector ] FilterMode mFilterMode = FilterMode . Point ;
31
+ [ SerializeField ] [ HideInInspector ] FilterMode m_FilterMode = FilterMode . Point ;
32
32
33
33
// オリジナルの解像度に対して何ビットシフトさせるか
34
- [ SerializeField ] [ HideInInspector ] int mShift ;
34
+ [ SerializeField ] [ HideInInspector ] int m_Shift ;
35
35
36
36
// mShiftに変更があったかどうか
37
- internal bool mIsDirty = false ;
37
+ internal bool m_IsDirty = false ;
38
+
39
+ public Camera renderTextureCamera
40
+ {
41
+ get { return m_RenderTextureCamera ; }
42
+ }
43
+
44
+ public Camera blitCamera
45
+ {
46
+ get { return m_BlitCamera ; }
47
+ }
38
48
39
49
public FilterMode filterMode
40
50
{
41
- get { return mFilterMode ; }
51
+ get { return m_FilterMode ; }
42
52
set
43
53
{
44
- mFilterMode = value ;
45
- mIsDirty = true ;
54
+ m_FilterMode = value ;
55
+ m_IsDirty = true ;
46
56
}
47
57
}
48
58
@@ -51,97 +61,97 @@ public int shift
51
61
{
52
62
get
53
63
{
54
- return mShift ;
64
+ return m_Shift ;
55
65
}
56
66
57
67
set
58
68
{
59
- mShift = value ;
60
- mIsDirty = true ;
69
+ m_Shift = value ;
70
+ m_IsDirty = true ;
61
71
}
62
72
}
63
73
64
74
65
75
// レンダリングターゲットとして使用するRenderTexture
66
- RenderTexture renderTexture ;
76
+ RenderTexture m_RenderTexture ;
67
77
68
78
// RenderTextureの内容をmainCameraへBlitする為のコマンドバッファ
69
- CommandBuffer commandBuffer ;
79
+ CommandBuffer m_CommandBuffer ;
70
80
71
81
72
82
// Start is called before the first frame update
73
83
void Start ( )
74
84
{
75
- if ( renderTextureCamera == null )
85
+ if ( m_RenderTextureCamera == null )
76
86
{
77
- renderTextureCamera = GetComponent < Camera > ( ) ;
87
+ m_RenderTextureCamera = GetComponent < Camera > ( ) ;
78
88
}
79
89
80
- if ( renderTextureCamera )
90
+ if ( m_RenderTextureCamera )
81
91
{
82
92
CreateRenderTexture ( ) ;
83
- renderTextureCamera . targetTexture = renderTexture ;
93
+ m_RenderTextureCamera . targetTexture = m_RenderTexture ;
84
94
}
85
95
86
- if ( mainCamera )
96
+ if ( m_BlitCamera )
87
97
{
88
- commandBuffer = new CommandBuffer ( ) ;
89
- commandBuffer . name = "RenderTexture Blit to MainCamera " ;
90
- commandBuffer . Blit ( ( RenderTargetIdentifier ) renderTexture , BuiltinRenderTextureType . CameraTarget ) ;
91
- mainCamera . AddCommandBuffer ( mCameraEvent , commandBuffer ) ;
92
- mainCamera . cullingMask &= ~ renderTextureCamera . cullingMask ;
98
+ m_CommandBuffer = new CommandBuffer ( ) ;
99
+ m_CommandBuffer . name = "Blit RenderTexture " ;
100
+ m_CommandBuffer . Blit ( ( RenderTargetIdentifier ) m_RenderTexture , BuiltinRenderTextureType . CameraTarget ) ;
101
+ m_BlitCamera . AddCommandBuffer ( m_CameraEvent , m_CommandBuffer ) ;
102
+ m_BlitCamera . cullingMask &= ~ m_RenderTextureCamera . cullingMask ;
93
103
}
94
104
}
95
105
96
106
97
107
private void Update ( )
98
108
{
99
- if ( mIsDirty )
109
+ if ( m_IsDirty )
100
110
{
101
111
CreateRenderTexture ( ) ;
102
- renderTextureCamera . targetTexture = renderTexture ;
103
- commandBuffer . Clear ( ) ;
104
- commandBuffer . Blit ( ( RenderTargetIdentifier ) renderTexture , BuiltinRenderTextureType . CameraTarget ) ;
105
- mIsDirty = false ;
112
+ m_RenderTextureCamera . targetTexture = m_RenderTexture ;
113
+ m_CommandBuffer . Clear ( ) ;
114
+ m_CommandBuffer . Blit ( ( RenderTargetIdentifier ) m_RenderTexture , BuiltinRenderTextureType . CameraTarget ) ;
115
+ m_IsDirty = false ;
106
116
}
107
117
108
- if ( mainCamera != null && renderTextureCamera != null )
118
+ if ( m_BlitCamera != null && m_RenderTextureCamera != null )
109
119
{
110
120
// MainCameraからRenderTextureCameraのターゲットを除く
111
- mainCamera . cullingMask &= ~ renderTextureCamera . cullingMask ;
121
+ m_BlitCamera . cullingMask &= ~ m_RenderTextureCamera . cullingMask ;
112
122
}
113
123
}
114
124
115
125
116
126
private void CreateRenderTexture ( )
117
127
{
118
- if ( renderTexture != null )
128
+ if ( m_RenderTexture != null )
119
129
{
120
- renderTexture . Release ( ) ;
121
- renderTexture = null ;
130
+ m_RenderTexture . Release ( ) ;
131
+ m_RenderTexture = null ;
122
132
}
123
133
124
- renderTexture = new RenderTexture ( Screen . currentResolution . width >> shift , Screen . currentResolution . height >> shift , 24 ) ;
125
- renderTexture . useMipMap = false ;
126
- renderTexture . filterMode = mFilterMode ;
127
- renderTexture . useDynamicScale = renderTextureCamera . allowDynamicResolution ;
128
- renderTexture . Create ( ) ;
134
+ m_RenderTexture = new RenderTexture ( Screen . currentResolution . width >> shift , Screen . currentResolution . height >> shift , 24 ) ;
135
+ m_RenderTexture . useMipMap = false ;
136
+ m_RenderTexture . filterMode = m_FilterMode ;
137
+ m_RenderTexture . useDynamicScale = m_RenderTextureCamera . allowDynamicResolution ;
138
+ m_RenderTexture . Create ( ) ;
129
139
}
130
140
131
141
132
142
private void OnDestroy ( )
133
143
{
134
- if ( renderTexture )
144
+ if ( m_RenderTexture )
135
145
{
136
- renderTexture . Release ( ) ;
137
- renderTexture = null ;
146
+ m_RenderTexture . Release ( ) ;
147
+ m_RenderTexture = null ;
138
148
}
139
- if ( mainCamera )
149
+ if ( m_BlitCamera )
140
150
{
141
- mainCamera . RemoveCommandBuffer ( mCameraEvent , commandBuffer ) ;
142
- if ( commandBuffer != null )
151
+ m_BlitCamera . RemoveCommandBuffer ( m_CameraEvent , m_CommandBuffer ) ;
152
+ if ( m_CommandBuffer != null )
143
153
{
144
- commandBuffer . Clear ( ) ;
154
+ m_CommandBuffer . Clear ( ) ;
145
155
}
146
156
}
147
157
}
0 commit comments