回答編集履歴

1

Cinemachine Post Processingの操作による方法を追記

2019/03/21 02:10

投稿

Bongo
Bongo

スコア10807

test CHANGED
@@ -73,3 +73,99 @@
73
73
  }
74
74
 
75
75
  ```
76
+
77
+
78
+
79
+ #追記
80
+
81
+ エクステンションのオン・オフを切り替えるのでしたら、他のコンポーネント類と同様に[enabled](https://docs.unity3d.com/ja/current/ScriptReference/Behaviour-enabled.html)を操作すればよさそうです。
82
+
83
+
84
+
85
+ ```C#
86
+
87
+ using Cinemachine.PostFX;
88
+
89
+ using UnityEngine;
90
+
91
+
92
+
93
+ public class PostProcessingSwitcher : MonoBehaviour
94
+
95
+ {
96
+
97
+ // ここにシーン上のFreeLookカメラ(あるいはその他バーチャルカメラ類)をセット
98
+
99
+ [SerializeField] private CinemachinePostProcessing postProcessing;
100
+
101
+
102
+
103
+ private void Update()
104
+
105
+ {
106
+
107
+ if (Input.GetKeyDown(KeyCode.Space))
108
+
109
+ {
110
+
111
+ this.postProcessing.enabled = !this.postProcessing.enabled;
112
+
113
+ }
114
+
115
+ }
116
+
117
+ }
118
+
119
+ ```
120
+
121
+
122
+
123
+ ちなみに、下記のようにCinemachineエクステンションであっても[GetComponent](https://docs.unity3d.com/ja/current/ScriptReference/Component.GetComponent.html)で取ってくることができるはずです。今回は上記のやり方で用は足りるかと思いますが、別な場面で使うことがあるかもしれません。
124
+
125
+
126
+
127
+ ```C#
128
+
129
+ using Cinemachine;
130
+
131
+ using Cinemachine.PostFX;
132
+
133
+ using UnityEngine;
134
+
135
+
136
+
137
+ public class PostProcessingSwitcher : MonoBehaviour
138
+
139
+ {
140
+
141
+ // ここにシーン上のFreeLookカメラ(あるいはその他バーチャルカメラ類)をセット
142
+
143
+ [SerializeField] private CinemachineVirtualCameraBase virtualCamera;
144
+
145
+
146
+
147
+ private void Update()
148
+
149
+ {
150
+
151
+ if (Input.GetKeyDown(KeyCode.Space))
152
+
153
+ {
154
+
155
+ var postProcessing = this.virtualCamera.GetComponent<CinemachinePostProcessing>();
156
+
157
+ postProcessing.enabled = !postProcessing.enabled;
158
+
159
+ }
160
+
161
+ }
162
+
163
+ }
164
+
165
+ ```
166
+
167
+
168
+
169
+ それともう一つ、もしシーン中のどこかにPostProcessVolumeがあればそれの設定を見直すか、あるいはこの際そちらは削除してしまってもいいかもしれません。
170
+
171
+ バーチャルカメラに付いているCinemachinePostProcessingを切ると、今度は次に優先度の高いボリュームが効果を発揮するようになるはずです。もしそちらのプロファイルもDepthOfFieldを持っていれば、やはり映像に被写界深度効果が現れてしまうかと思います。