devNotes 6-25-16 ioc – amvcc or application-model-view-controller-component

fghnhgfn7

1  Argos_Application
    - UnityEngine.Transform
    - AA
  
     Controller
    - UnityEngine.Transform
    - ArgosController
  
        EventSystem
          - UnityEngine.Transform
          - UnityEngine.EventSystems.EventSystem
          - UnityEngine.EventSystems.StandaloneInputModule
          - UnityEngine.EventSystems.TouchInputModule
  
     Model
    - UnityEngine.Transform
    - ArgosModel
  
     View
    - UnityEngine.Transform
    - ArgosView
  
        UserHead
          - UnityEngine.Transform
  
            ARCamera
              - UnityEngine.Transform
              - UnityEngine.AudioListener
              - Vuforia.VuforiaBehaviour
              - Vuforia.DigitalEyewearBehaviour
              - Vuforia.DatabaseLoadBehaviour
              - Vuforia.VideoBackgroundManager
              - Vuforia.SmartTerrainTrackerBehaviour
              - Vuforia.DeviceTrackerBehaviour
              - Vuforia.WebCamBehaviour
              - Vuforia.KeepAliveBehaviour
              - ViewModeManager
              - BackToAbout
              - Vuforia.ComponentFactoryStarterBehaviour
  
                    StereoCameraLeft
                      - UnityEngine.Transform
                      - UnityEngine.Camera
                      - Vuforia.VideoBackgroundBehaviour
                      - UnityEngine.GUILayer
                      - UnityEngine.FlareLayer
                      - Vuforia.HideExcessAreaBehaviour
  
                        BackgroundPlane
                          - UnityEngine.Transform
                          - UnityEngine.MeshRenderer
                          - Vuforia.BackgroundPlaneBehaviour
  
                    StereoCameraRight
                      - UnityEngine.Transform
                      - UnityEngine.Camera
                      - Vuforia.VideoBackgroundBehaviour
                      - UnityEngine.GUILayer
                      - UnityEngine.FlareLayer
                      - Vuforia.HideExcessAreaBehaviour
  
                    BlackMask
                      - UnityEngine.Transform
                      - UnityEngine.MeshFilter
                      - UnityEngine.MeshRenderer
                      - BlackMaskBehaviour
  
                    GazeRay
                      - UnityEngine.Transform
                      - GazeRay
  
                    Reticle
                      - UnityEngine.Transform
                      - UnityEngine.MeshFilter
                      - UnityEngine.MeshRenderer
                      - Reticle
  
        ARG_FIB_Sphere
          - UnityEngine.Transform
  
            ARGOS_Fibonacci_0_0
              - UnityEngine.Transform
              - UnityEngine.MeshFilter
              - UnityEngine.MeshRenderer
  
            Argos_Sphere_Indexing
              - UnityEngine.Transform
              - UnityEngine.MeshFilter
              - UnityEngine.SphereCollider
              - UnityEngine.MeshRenderer
              - ArgosSphere_Indexing
  
        Echo_Canvas
          - UnityEngine.RectTransform
          - UnityEngine.Canvas
          - UnityEngine.UI.CanvasScaler
          - OVRRaycaster
          - OVRMousePointer
          - UnityEngine.UI.Mask
          - UnityEngine.CanvasRenderer
          - UnityEngine.UI.Image
          - UnityEngine.UI.GraphicRaycaster
  
            UI_Control_Panel
              - UnityEngine.RectTransform
              - UnityEngine.CanvasRenderer
              - UnityEngine.UI.Image
              - UI_Control
  
                    Graph_Plate
                      - UnityEngine.RectTransform
                      - UnityEngine.CanvasRenderer
                      - UnityEngine.UI.Image
  
                        Graph_Base
                          - UnityEngine.Transform
  
                            Mic_Input_Plot_Origin
                              - UnityEngine.Transform
                              - UnityEngine.MeshFilter
                              - UnityEngine.BoxCollider
                              - UnityEngine.MeshRenderer
                              - Vertical_Plot
                              - MicrophoneInput
                              - UnityEngine.AudioSource
  
                                Mic_Input_Plot_Origin
                                  - UnityEngine.Transform
                                  - UnityEngine.MeshFilter
                                  - UnityEngine.MeshCollider
                                  - UnityEngine.MeshRenderer
  
                    Top_Icon_Buttons
                      - UnityEngine.RectTransform
                      - UnityEngine.CanvasRenderer
                      - UnityEngine.UI.Image
  
                        Back_Panel 
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
  
                        UI_Switch
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
                          - UnityEngine.UI.Button
                          - UI_On_Off
  
                        NAV_Overlay_Switch
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
                          - UnityEngine.UI.Button
  
                        Lock
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
                          - UnityEngine.UI.Button
  
                        Rotate
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
                          - UnityEngine.UI.Button
  
                        NavSphereRotate
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
                          - UnityEngine.UI.Button
  
                    CanvasPointerEcho
                      - UnityEngine.RectTransform
                      - UnityEngine.CanvasRenderer
                      - UnityEngine.UI.Image
  
                    EchoParameters
                      - UnityEngine.RectTransform
                      - UnityEngine.CanvasRenderer
                      - UnityEngine.UI.Image
  
                        Echo_Gain
                          - UnityEngine.RectTransform
  
                            Header
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
                            Echo_Gain-Input
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Image
                              - UnityEngine.UI.InputField
  
                                Echo_Gain-Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                                Echo_Gain-Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                            Echo_Gain_Slider
                              - UnityEngine.RectTransform
                              - UnityEngine.UI.Slider
  
                                Echo_Gain_Slider
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Image
  
                                Echo_Gain_Slider
                                  - UnityEngine.RectTransform
  
                                Echo_Gain_Slider
                                  - UnityEngine.RectTransform
  
                        Echo_Length
                          - UnityEngine.RectTransform
  
                            Header
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
                            Echo_Length_Input
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Image
                              - UnityEngine.UI.InputField
  
                                Echo_Length_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                                Echo_Length_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                            Echo_Length_Slider
                              - UnityEngine.RectTransform
                              - UnityEngine.UI.Slider
  
                                Echo_Length_Slider
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Image
  
                                Echo_Length_Slider
                                  - UnityEngine.RectTransform
  
                                Echo_Length_Slider
                                  - UnityEngine.RectTransform
  
                        Delay_Time
                          - UnityEngine.RectTransform
  
                            Header
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
                            Delay_Time_Input
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Image
                              - UnityEngine.UI.InputField
  
                                Delay_Time_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                                Delay_Time_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                            Delay_Time_Slider
                              - UnityEngine.RectTransform
                              - UnityEngine.UI.Slider
  
                                Delay_Time_Slider
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Image
  
                                Delay_Time_Slider
                                  - UnityEngine.RectTransform
  
                                Delay_Time_Slider
                                  - UnityEngine.RectTransform
  
                        Echo_Attenuation
                          - UnityEngine.RectTransform
  
                            Header
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
                            Echo_Attenuation_Input
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Image
                              - UnityEngine.UI.InputField
  
                                Echo_Attenuation_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                                Echo_Attenuation_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                            Echo_Attenuation_Slider
                              - UnityEngine.RectTransform
                              - UnityEngine.UI.Slider
  
                                Echo_Attenuation_Slider
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Image
  
                                Echo_Attenuation_Slider
                                  - UnityEngine.RectTransform
  
                                Echo_Attenuation_Slider
                                  - UnityEngine.RectTransform
  
                    BrushParameter_Panel
                      - UnityEngine.RectTransform
                      - UnityEngine.CanvasRenderer
                      - UnityEngine.UI.Image
  
                        X_position
                          - UnityEngine.RectTransform
  
                            Header
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
                            XPos-Input
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Image
                              - UnityEngine.UI.InputField
  
                                XPos-Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                                XPos-Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                            XPos_Slider
                              - UnityEngine.RectTransform
                              - UnityEngine.UI.Slider
  
                                XPos_Slider
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Image
  
                                XPos_Slider
                                  - UnityEngine.RectTransform
  
                                XPos_Slider
                                  - UnityEngine.RectTransform
  
                        Y_position
                          - UnityEngine.RectTransform
  
                            Header
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
                            YPos_Input
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Image
                              - UnityEngine.UI.InputField
  
                                YPos_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                                YPos_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                            YPos_Slider
                              - UnityEngine.RectTransform
                              - UnityEngine.UI.Slider
  
                                YPos_Slider
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Image
  
                                YPos_Slider
                                  - UnityEngine.RectTransform
  
                                YPos_Slider
                                  - UnityEngine.RectTransform
  
                        Z_position
                          - UnityEngine.RectTransform
  
                            Header
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
                            ZPos_Input
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Image
                              - UnityEngine.UI.InputField
  
                                ZPos_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                                ZPos_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                            z_Pos_Slider
                              - UnityEngine.RectTransform
                              - UnityEngine.UI.Slider
  
                                z_Pos_Slider
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Image
  
                                z_Pos_Slider
                                  - UnityEngine.RectTransform
  
                                z_Pos_Slider
                                  - UnityEngine.RectTransform
  
                        arrow_freq
                          - UnityEngine.RectTransform
  
                            Header
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
                            AF-Input
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Image
                              - UnityEngine.UI.InputField
  
                                AF-Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                                AF-Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                            AF_Slider
                              - UnityEngine.RectTransform
                              - UnityEngine.UI.Slider
  
                                AF_Slider
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Image
  
                                AF_Slider
                                  - UnityEngine.RectTransform
  
                                AF_Slider
                                  - UnityEngine.RectTransform
  
                        brush_freq
                          - UnityEngine.RectTransform
  
                            Header
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
                            BF_Input
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Image
                              - UnityEngine.UI.InputField
  
                                BF_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                                BF_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                            BF_Slider
                              - UnityEngine.RectTransform
                              - UnityEngine.UI.Slider
  
                                BF_Slider
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Image
  
                                BF_Slider
                                  - UnityEngine.RectTransform
  
                                BF_Slider
                                  - UnityEngine.RectTransform
  
                        ab_ratio
                          - UnityEngine.RectTransform
  
                            Header
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
                            AR_Ratio_Input
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Image
                              - UnityEngine.UI.InputField
  
                                AR_Ratio_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                                AR_Ratio_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                            AB_Ratio_Slider
                              - UnityEngine.RectTransform
                              - UnityEngine.UI.Slider
  
                                AB_Ratio_Slider
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Image
  
                                AB_Ratio_Slider
                                  - UnityEngine.RectTransform
  
                                AB_Ratio_Slider
                                  - UnityEngine.RectTransform
  
                        phasor_len
                          - UnityEngine.RectTransform
  
                            Header
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
                            Phasor_Len_Input
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Image
                              - UnityEngine.UI.InputField
  
                                Phasor_Len_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                                Phasor_Len_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                            Phasor_Len_Slider
                              - UnityEngine.RectTransform
                              - UnityEngine.UI.Slider
  
                                Phasor_Len_Slider
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Image
  
                                Phasor_Len_Slider
                                  - UnityEngine.RectTransform
  
                                Phasor_Len_Slider
                                  - UnityEngine.RectTransform
  
                        line_width
                          - UnityEngine.RectTransform
  
                            Header
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
                            line_width_Input
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Image
                              - UnityEngine.UI.InputField
  
                                line_width_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                                line_width_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                            line_width_Slider
                              - UnityEngine.RectTransform
                              - UnityEngine.UI.Slider
  
                                line_width_Slider
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Image
  
                                line_width_Slider
                                  - UnityEngine.RectTransform
  
                                line_width_Slider
                                  - UnityEngine.RectTransform
  
                        fade_start
                          - UnityEngine.RectTransform
  
                            Header
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
                            fade_start_Input
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Image
                              - UnityEngine.UI.InputField
  
                                fade_start_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                                fade_start_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                            fade_start_Slider
                              - UnityEngine.RectTransform
                              - UnityEngine.UI.Slider
  
                                fade_start_Slider
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Image
  
                                fade_start_Slider
                                  - UnityEngine.RectTransform
  
                                fade_start_Slider
                                  - UnityEngine.RectTransform
  
                        Duration
                          - UnityEngine.RectTransform
  
                            Header
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
                            Duration_Input
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Image
                              - UnityEngine.UI.InputField
  
                                Duration_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                                Duration_Input
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Text
  
                            Duration_Slider
                              - UnityEngine.RectTransform
                              - UnityEngine.UI.Slider
  
                                Duration_Slider
                                  - UnityEngine.RectTransform
                                  - UnityEngine.CanvasRenderer
                                  - UnityEngine.UI.Image
  
                                Duration_Slider
                                  - UnityEngine.RectTransform
  
                                Duration_Slider
                                  - UnityEngine.RectTransform
  
                    Music Player
                      - UnityEngine.RectTransform
  
                        Back_Panel
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
  
                        Play
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
                          - UnityEngine.UI.Button
                          - UnityEngine.EventSystems.EventTrigger
  
                        Pause
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
                          - UnityEngine.UI.Button
                          - UnityEngine.EventSystems.EventTrigger
  
                        Stop
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
                          - UnityEngine.UI.Button
                          - UnityEngine.EventSystems.EventTrigger
  
                        Argos_Logo
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
  
                        Image
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
  
                        Mic_Input_Button
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
                          - UnityEngine.UI.Button
  
                            Mic_Level
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
                            Button
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Image
  
                        Latency Button
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
                          - UnityEngine.UI.Button
  
                            Latency
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
                            Button
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Image
                              - UnityEngine.UI.Button
  
                            Latency_Val_txt
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
        Graph_Canvas
          - UnityEngine.RectTransform
          - UnityEngine.Canvas
          - UnityEngine.UI.CanvasScaler
          - UnityEngine.UI.GraphicRaycaster
          - MenuManager
          - GearVRInput
          - GF_Manager
          - OVRRaycaster
          - OVRMousePointer
  
            GF_Accel_3_Axes
              - UnityEngine.RectTransform
              - UnityEngine.CanvasRenderer
              - UnityEngine.UI.Image
              - UnityEngine.CanvasGroup
              - UnityEngine.Animator
              - Menu
  
                    Title
                      - UnityEngine.RectTransform
                      - UnityEngine.CanvasRenderer
                      - UnityEngine.UI.Text
  
                    Graph_Panel
                      - UnityEngine.RectTransform
                      - UnityEngine.CanvasRenderer
                      - UnityEngine.UI.Image
                      - GraphFloat
  
                        Max_y
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Text
  
                        Min_y
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Text
  
                        Num(Clone)
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Text
  
                        Num(Clone)
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Text
  
                        Num(Clone)
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Text
  
                        Num(Clone)
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Text
  
                        Num(Clone)
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Text
  
                        Num(Clone)
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Text
  
                        Num(Clone)
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Text
  
                        Num(Clone)
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Text
  
                        Num(Clone)
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Text
  
                        Num(Clone)
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Text
  
                    Text
                      - UnityEngine.RectTransform
                      - UnityEngine.CanvasRenderer
                      - UnityEngine.UI.Text
  
            DEBUGTEXT
              - UnityEngine.RectTransform
              - UnityEngine.CanvasRenderer
              - UnityEngine.UI.Text
  
            DEBUGTEXT (1)
              - UnityEngine.RectTransform
              - UnityEngine.CanvasRenderer
              - UnityEngine.UI.Text
  
            TOG_1
              - UnityEngine.RectTransform
              - UnityEngine.UI.Toggle
  
                    Background
                      - UnityEngine.RectTransform
                      - UnityEngine.CanvasRenderer
                      - UnityEngine.UI.Image
  
                        Checkmark
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
  
            TOG_2
              - UnityEngine.RectTransform
              - UnityEngine.UI.Toggle
  
                    Background
                      - UnityEngine.RectTransform
                      - UnityEngine.CanvasRenderer
                      - UnityEngine.UI.Image
  
                        Checkmark
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
  
            TOG_3
              - UnityEngine.RectTransform
              - UnityEngine.UI.Toggle
  
                    Background
                      - UnityEngine.RectTransform
                      - UnityEngine.CanvasRenderer
                      - UnityEngine.UI.Image
  
                        Checkmark
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
  
            Group
              - UnityEngine.RectTransform
              - UnityEngine.UI.ToggleGroup
  
            TOG_4
              - UnityEngine.RectTransform
              - UnityEngine.UI.Toggle
  
                    Background
                      - UnityEngine.RectTransform
                      - UnityEngine.CanvasRenderer
                      - UnityEngine.UI.Image
  
                        Checkmark
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
  
            CanvasPointerGraph
              - UnityEngine.RectTransform
              - UnityEngine.CanvasRenderer
              - UnityEngine.UI.Image
  
            Vectrocity_Camera
              - UnityEngine.Transform
              - UnityEngine.Camera
              - UnityEngine.FlareLayer
              - UnityEngine.GUILayer
              - UnityEngine.AudioListener
  
            VRButton_Test_Outside
              - UnityEngine.Transform
              - UnityEngine.MeshFilter
              - UnityEngine.MeshCollider
              - UnityEngine.MeshRenderer
              - ViewTrigger
  
        InitErrorHandler
          - UnityEngine.Transform
          - InitErrorHandler
  
            ErrorCanvas
              - UnityEngine.RectTransform
              - UnityEngine.Canvas
              - UnityEngine.UI.CanvasScaler
              - UnityEngine.UI.GraphicRaycaster
  
                    ErrorPanel
                      - UnityEngine.RectTransform
                      - UnityEngine.CanvasRenderer
                      - UnityEngine.UI.Image
                      - UnityEngine.UI.VerticalLayoutGroup
  
                        TitlePanel
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
                          - UnityEngine.UI.HorizontalLayoutGroup
                          - UnityEngine.UI.LayoutElement
  
                            ErrorTitle
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
                        BodyPanel
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
                          - UnityEngine.UI.HorizontalLayoutGroup
                          - UnityEngine.UI.LayoutElement
  
                            ErrorBodyText
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Text
  
                        BottomPanel
                          - UnityEngine.RectTransform
                          - UnityEngine.CanvasRenderer
                          - UnityEngine.UI.Image
                          - UnityEngine.UI.HorizontalLayoutGroup
                          - UnityEngine.UI.LayoutElement
  
                            Panel
                              - UnityEngine.RectTransform
                              - UnityEngine.CanvasRenderer
                              - UnityEngine.UI.Image
  
        ARTransitionManager
          - UnityEngine.Transform
          - TransitionManager
  
        VRWorld
          - UnityEngine.Transform
  
            ARPort
              - UnityEngine.Transform
              - UnityEngine.MeshFilter
              - UnityEngine.MeshCollider
              - UnityEngine.MeshRenderer
              - Button3D
              - ViewTrigger
  
            Static Objects
              - UnityEngine.Transform
  
                    floor
                      - UnityEngine.Transform
  
                        floor_005
                          - UnityEngine.Transform
                          - UnityEngine.MeshFilter
                          - UnityEngine.MeshRenderer
  
                        floor_006
                          - UnityEngine.Transform
                          - UnityEngine.MeshFilter
                          - UnityEngine.MeshRenderer
  
                        floor_007
                          - UnityEngine.Transform
                          - UnityEngine.MeshFilter
                          - UnityEngine.MeshRenderer
  
                        floor_008
                          - UnityEngine.Transform
                          - UnityEngine.MeshFilter
                          - UnityEngine.MeshRenderer
  
                    Plane
                      - UnityEngine.Transform
                      - UnityEngine.MeshFilter
                      - UnityEngine.MeshCollider
  
                    walls
                      - UnityEngine.Transform
                      - UnityEngine.MeshFilter
                      - UnityEngine.MeshRenderer
                      - UnityEngine.BoxCollider
  
                    walls
                      - UnityEngine.Transform
                      - UnityEngine.MeshFilter
                      - UnityEngine.MeshRenderer
                      - UnityEngine.BoxCollider
  
                    walls
                      - UnityEngine.Transform
                      - UnityEngine.MeshFilter
                      - UnityEngine.MeshRenderer
                      - UnityEngine.BoxCollider
  
                    walls
                      - UnityEngine.Transform
                      - UnityEngine.MeshFilter
                      - UnityEngine.MeshRenderer
                      - UnityEngine.BoxCollider
  
                    Columns
                      - UnityEngine.Transform
  
                        Column
                          - UnityEngine.Transform
                          - UnityEngine.MeshFilter
                          - UnityEngine.MeshRenderer
                          - UnityEngine.BoxCollider
  
                        Column
                          - UnityEngine.Transform
                          - UnityEngine.MeshFilter
                          - UnityEngine.MeshRenderer
                          - UnityEngine.BoxCollider
  
                        Column
                          - UnityEngine.Transform
                          - UnityEngine.MeshFilter
                          - UnityEngine.MeshRenderer
                          - UnityEngine.BoxCollider
  
                        Column
                          - UnityEngine.Transform
                          - UnityEngine.MeshFilter
                          - UnityEngine.MeshRenderer
                          - UnityEngine.BoxCollider
  
                    Ceiling
                      - UnityEngine.Transform
                      - UnityEngine.MeshFilter
                      - UnityEngine.MeshCollider
                      - UnityEngine.MeshRenderer
  
                    Directional light
                      - UnityEngine.Transform
                      - UnityEngine.Light
  
                    Point light
                      - UnityEngine.Transform
                      - UnityEngine.Light
  
                    LightAnchor
                      - UnityEngine.Transform
  
                    Point light
                      - UnityEngine.Transform
                      - UnityEngine.Light
                      - LightControl
  
                        Cylinder
                          - UnityEngine.Transform
                          - UnityEngine.MeshFilter
                          - UnityEngine.CapsuleCollider
                          - UnityEngine.MeshRenderer
  
        StereoDivisionCanvas
          - UnityEngine.RectTransform
          - UnityEngine.Canvas
          - UnityEngine.UI.CanvasScaler
          - UnityEngine.UI.GraphicRaycaster
  
            DivisionArea
              - UnityEngine.RectTransform
              - UnityEngine.CanvasRenderer
              - UnityEngine.UI.Image
  
        VR Mouse Look (Rotation)
          - UnityEngine.Transform
  
            VR Mouse Look (Forward)
              - UnityEngine.Transform
  
                    OVRCameraRig
                      - UnityEngine.Transform
                      - OVRCameraRig
                      - OVRManager
                      - VRMouseLook
  
                        TrackingSpace
                          - UnityEngine.Transform
  
                            LeftEyeAnchor
                              - UnityEngine.Transform
  
                            CenterEyeAnchor
                              - UnityEngine.Transform
                              - UnityEngine.AudioListener
                              - UnityEngine.Camera
                              - Vuforia.HideExcessAreaBehaviour
                              - Vuforia.VideoBackgroundBehaviour
                              - VRIntegrationHelper
  
                                CenterEyeAnchor
                                  - UnityEngine.Transform
  
                                CenterEyeAnchor
                                  - UnityEngine.Transform
                                  - UnityEngine.MeshRenderer
                                  - Vuforia.BackgroundPlaneBehaviour
                                  - UnityEngine.MeshFilter
  
                            RightEyeAnchor
                              - UnityEngine.Transform
  
                            TrackerAnchor
                              - UnityEngine.Transform
  
                            LeftHandAnchor
                              - UnityEngine.Transform
  
                            RightHandAnchor
                              - UnityEngine.Transform
  
                            CenterRightEyeAnchor
                              - UnityEngine.Transform
                              - UnityEngine.AudioListener
                              - UnityEngine.Camera
                              - VRIntegrationHelper
                              - Vuforia.VideoBackgroundBehaviour
                              - Vuforia.HideExcessAreaBehaviour
  
                                CenterRightEyeAnchor
                                  - UnityEngine.Transform
                                  - UnityEngine.MeshFilter
                                  - UnityEngine.MeshRenderer
  
                            VuforiaCenterAnchor
                              - UnityEngine.Transform
  
2  GraphTrace_0
    - UnityEngine.RectTransform
    - Vectrosity.VectorObject3D
    - UnityEngine.MeshRenderer
    - UnityEngine.MeshFilter
  
3  GraphTrace_1
    - UnityEngine.RectTransform
    - Vectrosity.VectorObject3D
    - UnityEngine.MeshRenderer
    - UnityEngine.MeshFilter
  
4  GraphTrace_2
    - UnityEngine.RectTransform
    - Vectrosity.VectorObject3D
    - UnityEngine.MeshRenderer
    - UnityEngine.MeshFilter
  
5  TextureBufferCamera
    - UnityEngine.Transform
    - UnityEngine.Camera
  
     TextureBufferMesh
    - UnityEngine.Transform
    - UnityEngine.MeshFilter
    - UnityEngine.MeshRenderer
  
6  TickMarks
    - UnityEngine.RectTransform
    - Vectrosity.VectorObject3D
    - UnityEngine.MeshRenderer
    - UnityEngine.MeshFilter
  

 

toptal-blog-image-1438268968391.2-56f489174107c172be051385f7d274e8 (1)

ghjkjhkg2

Models

  • Hold the application’s core data and state, such as user performance, statistics, vitals.
  • Serialize, deserialize, and/or convert between types.
  • Load/save data (locally or on the web).
  • Notify Controllers of the progress of operations.
  • Store the State for the Finite State Machine.
  • Never access Views.

Views

  • Can get data from Models in order to represent up-to-date game state to the user. For example, a View method player.Run() can internally use model.speed to manifest the player abilities.
  • Should never mutate Models.
  • Strictly implements the functionalities of its class. For example:
    • A PlayerView should not implement input detection or modify the Game State.
    • A View should act as a black box that has an interface, and notifies of important events.
    • Does not store core data (like speed, health, lives,…).

Controllers

  • Do not store core data.
  • Can sometimes filter notifications from undesired Views.
  • Update and use the Model’s data.
  • Manages Unity’s scene workflow.
// BounceApplication.cs

// Base class for all elements in this application.
public class BounceElement : MonoBehaviour
{
   // Gives access to the application and all instances.
   public BounceApplication app { get { return GameObject.FindObjectOfType<BounceApplication>(); }}
}

// 10 Bounces Entry Point.
public class BounceApplication : MonoBehaviour
{
   // Reference to the root instances of the MVC.
   public BounceModel model;
   public BounceView view;
   public BounceController controller;

   // Init things here
   void Start() { }
}

shim_50

// BounceModel.cs

// Contains all data related to the app.
public class BounceModel : BounceElement
{
   // Data
   public int bounces;	
   public int winCondition;
}

shim_50

// BounceView .cs

// Contains all views related to the app.
public class BounceView : BounceElement
{
   // Reference to the ball
   public BallView ball;
}

shim_50

// BallView.cs

// Describes the Ball view and its features.
public class BallView : BounceElement
{
   // Only this is necessary. Physics is doing the rest of work.
   // Callback called upon collision.
   void OnCollisionEnter() { app.controller.OnBallGroundHit(); }
}

shim_50

// BounceController.cs

// Controls the app workflow.
public class BounceController : BounceElement
{
   // Handles the ball hit event
   public void OnBallGroundHit()
   {
      app.model.bounces++;
      Debug.Log(“Bounce ”+app.model.bounce);
      if(app.model.bounces >= app.model.winCondition)
      {
         app.view.ball.enabled = false;
         app.view.ball.GetComponent<RigidBody>().isKinematic=true; // stops the ball
         OnGameComplete();
      }	
   }

   // Handles the win condition
   public void OnGameComplete() { Debug.Log(“Victory!!”); }
}

shim_50

Notifications

As shown in the example above, when the ball hits the ground its view executes app.controller.OnBallGroundHit() which is a method. It isn’t, by any means, “wrong” to do that for all notifications in the application. However, in my experience, I’ve achieved better results using a simple notification system implemented in the AMVCC Application class.

To implement that, let’s update the layout of the BounceApplication to be:

// BounceApplication.cs

class BounceApplication 
{
   // Iterates all Controllers and delegates the notification data
   // This method can easily be found because every class is “BounceElement” and has an “app” 
   // instance.
   public void Notify(string p_event_path, Object p_target, params object[] p_data)
   {
      BounceController[] controller_list = GetAllControllers();
      foreach(BounceController c in controller_list)
      {
         c.OnNotification(p_event_path,p_target,p_data);
      }
   }

   // Fetches all scene Controllers.
   public BounceController[] GetAllControllers() { /* ... */ }
}

shim_50

Next, we need a new script where all developers will add the notification event’s names, which can be dispatched during execution.

// BounceNotifications.cs

// This class will give static access to the events strings.
class BounceNotification
{
   static public string BallHitGround = “ball.hit.ground”;
   static public string GameComplete  = “game.complete”;
   /* ...  */
   static public string GameStart     = “game.start”;
   static public string SceneLoad     = “scene.load”;
   /* ... */
}

shim_50

It is easy to see that, this way, the code legibility is improved because developers don’t need to search all over the source code for controller.OnSomethingComplexName methods in order understand what kind of actions can happen during execution. By only checking one file, it is possible to understand the overall behaviour of the application.

Now, we only need to adapt the BallView and BounceController to handle this new system.

// BallView.cs

// Describes the Ball view and its features.
public class BallView : BounceElement
{
   // Only this is necessary. Physics is doing the rest of work.
   // Callback called upon collision.
   void OnCollisionEnter() { app.Notify(BounceNotification.BallHitGround,this); }
}
// BounceController.cs

// Controls the app workflow.
public class BounceController : BounceElement
{
   // Handles the ball hit event
   public void OnNotification(string p_event_path,Object p_target,params object[] p_data)
   {
      switch(p_event_path)
      {
         case BounceNotification.BallHitGround:
            app.model.bounces++;
            Debug.Log(“Bounce ”+app.model.bounce);
            if(app.model.bounces >= app.model.winCondition)
            {
               app.view.ball.enabled = false;
               app.view.ball.GetComponent<RigidBody>().isKinematic=true; // stops the ball
               // Notify itself and other controllers possibly interested in the event
               app.Notify(BounceNotification.GameComplete,this);            
            }
         break;
         
         case BounceNotification.GameComplete:
            Debug.Log(“Victory!!”);
         break;
      }	
   }
}

shim_50

Bigger projects will have a lot of notifications. So, to avoid getting a big switch-case structure, it is advisable to create different controllers and make them handle different notification scopes.

AMVCC in the Real World

This example has shown a simple use case for the AMVCC pattern. Adjusting your way of thinking in terms of the three elements of MVC, and learning to visualize the entities as an ordered hierarchy, are the skills that ought to be polished.

In bigger projects, developers will be faced with more complex scenarios and doubts about whether something should be a View or a Controller, or if a given class should be more thoroughly separated in smaller ones.

Rules of Thumb

There isn’t any “Universal Guide for MVC sorting” anywhere. But there are some simple rules that I typically follow to help me determine whether to define something as a Model, View, or Controller, and also when to split a given class in smaller pieces.

Usually this happens organically while I think about the software architecture or during scripting.

 

https://www.toptal.com/unity-unity3d/unity-with-mvc-how-to-level-up-your-game-development

toptal-blog-image-1438268986192-dc455bb88c34cd8c689ae9edb33f5eba

 

fghjfghj-45