Esempio n. 1
0
 /// <summary>
 /// Check all components of a scene object to update all list of the scene.
 /// </summary>
 /// <param name="sceneObject">The scene object.</param>
 /// <param name="type">Type of change.</param>
 protected void CheckComponents(GameObject sceneObject, ComponentChangeType type)
 {
     for (int i = 0; i < sceneObject.Components.Count; i++)
     {
         CheckComponent(sceneObject.Components[i], type);
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Check a component.
        /// </summary>
        /// <param name="component"></param>
        /// <param name="type"></param>
        protected void CheckComponent(Component component, ComponentChangeType type)
        {
            if (component is Renderer)
            {
                var renderable = component as Renderer;

                if (type == ComponentChangeType.Add)
                {
                    AddRenderer(renderable);
                }

                else if (type == ComponentChangeType.Remove)
                {
                    RemoveRenderer(renderable);
                }
            }

            else if (component is Behaviour)
            {
                var script = component as Behaviour;

                if (type == ComponentChangeType.Add)
                {
                    AddScript(script);
                }
                else if (type == ComponentChangeType.Remove)
                {
                    RemoveScript(script);
                }
            }

            else if (component is Collider)
            {
                var collider = component as Collider;

                if (type == ComponentChangeType.Add)
                {
                    AddCollider(collider);
                }
                else if (type == ComponentChangeType.Remove)
                {
                    RemoveCollider(collider);
                }
            }

            else if (component is Camera)
            {
                var camera = component as Camera;

                if (type == ComponentChangeType.Add && !cameras.Contains(camera))
                {
                    AddCamera(camera);
                }
                else if (type == ComponentChangeType.Remove)
                {
                    RemoveCamera(camera);
                }
            }

            else if (component is Light)
            {
                var light = component as Light;

                if (type == ComponentChangeType.Add)
                {
                    AddLight(light);
                }
                else if (type == ComponentChangeType.Remove)
                {
                    RemoveLight(light);
                }
            }
        }
Esempio n. 3
0
 private void NotifyComponentChanged(Component component, string propertyName, ComponentChangeType type)
 {
     ComponentChanged?.Invoke(this, new ComponentChangedEventArgs(component, propertyName, type));
 }
Esempio n. 4
0
 public ComponentChangedEventArgs(Component component, string propertyName, ComponentChangeType changeType)
 {
     Component    = component;
     ChangeType   = changeType;
     PropertyName = propertyName;
 }