2020using System . Collections . Generic ;
2121using IBM . Watson . DeveloperCloud . Logging ;
2222using IBM . Watson . DeveloperCloud . Utilities ;
23+ using UnityStandardAssets . ImageEffects ;
2324
2425namespace IBM . Watson . DeveloperCloud . Camera
2526{
@@ -46,6 +47,12 @@ public class WatsonCamera : MonoBehaviour
4647 [ SerializeField ]
4748 private float m_SpeedForCameraAnimation = 2f ;
4849
50+ private float m_CommandMovementModifier = 10.0f ;
51+
52+ private Antialiasing m_AntiAliasing ;
53+ private DepthOfField m_DepthOfField ;
54+ private bool m_DisableInteractivity = false ;
55+
4956 #endregion
5057
5158 #region Public Variable
@@ -110,11 +117,32 @@ public CameraTarget DefaultCameraTarget{
110117
111118 #endregion
112119
120+ #region Event Registration
121+
122+ void OnEnable ( )
123+ {
124+ EventManager . Instance . RegisterEventReceiver ( Constants . Event . ON_CAMERA_SET_ANTIALIASING , OnCameraSetAntiAliasing ) ;
125+ EventManager . Instance . RegisterEventReceiver ( Constants . Event . ON_CAMERA_SET_DEPTHOFFIELD , OnCameraSetDepthOfField ) ;
126+ EventManager . Instance . RegisterEventReceiver ( Constants . Event . ON_CAMERA_SET_INTERACTIVITY , OnCameraSetTwoFingerDrag ) ;
127+ }
128+
129+ void OnDisable ( )
130+ {
131+ EventManager . Instance . UnregisterEventReceiver ( Constants . Event . ON_CAMERA_SET_ANTIALIASING , OnCameraSetAntiAliasing ) ;
132+ EventManager . Instance . UnregisterEventReceiver ( Constants . Event . ON_CAMERA_SET_DEPTHOFFIELD , OnCameraSetDepthOfField ) ;
133+ EventManager . Instance . UnregisterEventReceiver ( Constants . Event . ON_CAMERA_SET_INTERACTIVITY , OnCameraSetTwoFingerDrag ) ;
134+ }
135+
136+ #endregion
137+
113138 #region Start / Update
114139
115140 void Awake ( ) {
116141 mp_Instance = this ;
142+ m_AntiAliasing = this . GetComponent < Antialiasing > ( ) ;
143+ m_DepthOfField = this . GetComponent < DepthOfField > ( ) ;
117144 }
145+
118146 void Start ( ) {
119147 m_CameraInitialLocation = transform . localPosition ;
120148 m_CameraInitialRotation = transform . rotation ;
@@ -161,6 +189,9 @@ void InitializeCameraTargetList()
161189 /// <param name="args">Arguments.</param>
162190 public void DragTwoFinger ( System . Object [ ] args )
163191 {
192+ if ( m_DisableInteractivity )
193+ return ;
194+
164195 if ( args != null && args . Length == 1 && args [ 0 ] is TouchScript . Gestures . ScreenTransformGesture )
165196 {
166197 TouchScript . Gestures . ScreenTransformGesture transformGesture = args [ 0 ] as TouchScript . Gestures . ScreenTransformGesture ;
@@ -180,12 +211,49 @@ public void DragTwoFinger(System.Object[] args)
180211
181212 #region Camera Events Received from Outside - Set default position / Move Left - Right - Up - Down / Zoom-in-out
182213
214+ public void OnCameraSetAntiAliasing ( System . Object [ ] args )
215+ {
216+ if ( args != null && args . Length == 1 && args [ 0 ] is bool )
217+ {
218+ bool valueSet = ( bool ) args [ 0 ] ;
219+
220+ if ( m_AntiAliasing != null )
221+ {
222+ m_AntiAliasing . enabled = valueSet ;
223+ }
224+ }
225+ }
226+
227+ public void OnCameraSetDepthOfField ( System . Object [ ] args )
228+ {
229+ if ( args != null && args . Length == 1 && args [ 0 ] is bool )
230+ {
231+ bool valueSet = ( bool ) args [ 0 ] ;
232+
233+ if ( m_DepthOfField != null )
234+ {
235+ m_DepthOfField . enabled = valueSet ;
236+ }
237+ }
238+ }
239+
240+ public void OnCameraSetTwoFingerDrag ( System . Object [ ] args )
241+ {
242+ if ( args != null && args . Length == 1 && args [ 0 ] is bool )
243+ {
244+ m_DisableInteractivity = ! ( bool ) args [ 0 ] ;
245+ }
246+ }
247+
248+
183249 /// <summary>
184250 /// Event handler reseting the camera position.
185251 /// </summary>
186252 /// <param name="args">Arguments.</param>
187253 public void ResetCameraPosition ( System . Object [ ] args )
188254 {
255+ if ( m_DisableInteractivity )
256+ return ;
189257 //Log.Status("WatsonCamera", "Reset Camera Position");
190258 DefaultCameraTarget . TargetPosition = m_CameraInitialLocation ;
191259 DefaultCameraTarget . TargetRotation = m_CameraInitialRotation ;
@@ -197,7 +265,10 @@ public void ResetCameraPosition(System.Object[] args)
197265 /// <param name="args">Arguments.</param>
198266 public void MoveUp ( System . Object [ ] args )
199267 {
200- DefaultCameraTarget . TargetPosition += this . transform . up ;
268+ if ( m_DisableInteractivity )
269+ return ;
270+
271+ DefaultCameraTarget . TargetPosition += this . transform . up * m_CommandMovementModifier ;
201272 }
202273
203274 /// <summary>
@@ -206,7 +277,10 @@ public void MoveUp(System.Object[] args)
206277 /// <param name="args">Arguments.</param>
207278 public void MoveDown ( System . Object [ ] args )
208279 {
209- DefaultCameraTarget . TargetPosition += this . transform . up * - 1.0f ;
280+ if ( m_DisableInteractivity )
281+ return ;
282+
283+ DefaultCameraTarget . TargetPosition += this . transform . up * - m_CommandMovementModifier ;
210284 }
211285
212286 /// <summary>
@@ -215,7 +289,10 @@ public void MoveDown(System.Object[] args)
215289 /// <param name="args">Arguments.</param>
216290 public void MoveLeft ( System . Object [ ] args )
217291 {
218- DefaultCameraTarget . TargetPosition += this . transform . right * - 1.0f ; ;
292+ if ( m_DisableInteractivity )
293+ return ;
294+
295+ DefaultCameraTarget . TargetPosition += this . transform . right * - m_CommandMovementModifier ;
219296 }
220297
221298 /// <summary>
@@ -224,7 +301,10 @@ public void MoveLeft(System.Object[] args)
224301 /// <param name="args">Arguments.</param>
225302 public void MoveRight ( System . Object [ ] args )
226303 {
227- DefaultCameraTarget . TargetPosition += this . transform . right ;
304+ if ( m_DisableInteractivity )
305+ return ;
306+
307+ DefaultCameraTarget . TargetPosition += this . transform . right * m_CommandMovementModifier ;
228308 }
229309
230310 /// <summary>
@@ -233,6 +313,9 @@ public void MoveRight(System.Object[] args)
233313 /// <param name="args">Arguments.</param>
234314 public void ZoomIn ( System . Object [ ] args )
235315 {
316+ if ( m_DisableInteractivity )
317+ return ;
318+
236319 DefaultCameraTarget . TargetPosition += transform . forward * m_ZoomSpeed ;
237320 }
238321
@@ -242,6 +325,9 @@ public void ZoomIn(System.Object[] args)
242325 /// <param name="args">Arguments.</param>
243326 public void ZoomOut ( System . Object [ ] args )
244327 {
328+ if ( m_DisableInteractivity )
329+ return ;
330+
245331 DefaultCameraTarget . TargetPosition += transform . forward * m_ZoomSpeed * - 1.0f ;
246332 }
247333
0 commit comments