/// <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()); }
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; }