Пример #1
0
        /// <summary>
        /// returns true if this ActorBase's transform can trace upwards to the WorkspaceRoot
        /// via an unbroken heritage of gameobjects which bear an Actor component
        /// </summary>
        /// <returns></returns>
        public bool ValidateHeritage()
        {
            //I have no parent (sitting in the Scene hiererchy root) (illegal)
            if (transform.parent == null)
            {
                return(false);
            }

            Actor parentAsActor = transform.parent.GetComponent <Actor>();

            WorkspaceBase parentAsWorkspace = transform.parent.GetComponent <WorkspaceBase>();

            if (parentAsWorkspace != null)
            {
                return(true);
            }

            //my parent is not an Actor (Illegal)
            if (parentAsActor == null)
            {
                return(false);
            }

            //ask your father
            return(parentAsActor.ValidateHeritage());
        }
Пример #2
0
        public virtual bool NewWorkspace(WorkspaceType type)
        {
            Debug.Log("making a new, untitled workspace..." + name);

            WorkspaceBase newWorkspace = null;

            switch (type)
            {
            case WorkspaceType.PresentationEdit:
                newWorkspace = Instantiate(WorkspacePresentationPrefab, transform) as WorkspaceBase;
                break;

            case WorkspaceType.StageEdit:
                newWorkspace = Instantiate(WorkspaceStagePrefab, transform) as WorkspaceBase;
                break;
            }

            if (newWorkspace != null)
            {
                TrackNewWorkspace(newWorkspace);
                SwitchWorkspace(newWorkspace);
                return(true);
            }

            return(false);
        }
 void OnEnable()
 {
     workspace = (WorkspaceBase)target;
 }