public CopyGameObjectTask(GameObject sourceRoot, GameObject source, GameObject targetRoot, GameObject target, CopyGameObjectTask parent)
            {
                m_ParentTask = parent;
                Source       = source;
                Target       = target;
                m_SourceRoot = sourceRoot;
                m_TargetRoot = targetRoot;

                if (!m_SourceRoot)
                {
                    return;
                }

                GetComponents();
                GetSubTasks();
            }
        private void OnWizardUpdate()
        {
            if (m_RootTask == null)
            {
                m_Source = m_Source ? m_Source : Selection.activeGameObject;
                m_Target = m_Target ? m_Target : Selection.gameObjects.FirstOrDefault(go => go != m_Source);

                if (!AssetDatabase.GetAssetPath(m_Source).IsNullOrEmpty())
                {
                    m_Source = null;
                }
                if (!AssetDatabase.GetAssetPath(m_Target).IsNullOrEmpty())
                {
                    m_Target = null;
                }

                m_RootTask = new CopyGameObjectTask(m_Source, m_Source, m_Target, m_Target, null);
            }
        }
 private void OnWizardCreate()
 {
     m_RootTask.Copy();
     m_RootTask.MoveRelativeReferences();
     m_RootTask = new CopyGameObjectTask(m_RootTask.Source, m_RootTask.Source, m_RootTask.Target, m_RootTask.Target, null);
 }
 public CopyComponentTask(Component sourceComponent, Component targetComponent, CopyGameObjectTask parent)
 {
     m_SourceComponent = sourceComponent;
     m_TargetComponent = targetComponent;
     m_ParentTask      = parent;
 }