LinkSetPartsInstance() private method

private LinkSetPartsInstance ( GameObject InstanceGameObjectSub ) : void
InstanceGameObjectSub GameObject
return void
Exemplo n.º 1
0
    public void PrefabLinkInstantiate()
    {
        if (null != LinkPrefab)
        {
            /* MEMO: "Instance"-Parts has C#-Script ("ScriptPartsInstance" is not null) */
            Script_SpriteStudio_PartsInstance ScriptPartsInstance = gameObject.GetComponent <Script_SpriteStudio_PartsInstance>();
            GameObject PrefabRoot     = (GameObject)LinkPrefab;
            GameObject Instance       = null;
            Transform  TransformChild = gameObject.transform.Find(PrefabRoot.name);
            if (null == TransformChild)
            {
                /* Instantiate Prefab */
#if UNITY_EDITOR
                Instance = (GameObject)PrefabUtility.InstantiatePrefab(LinkPrefab);
#else
                Instance = (GameObject)Instantiate(LinkPrefab);
#endif
                if (null != Instance)
                {
                    /* Make "Parent-Child"-Relation  */
                    Instance.gameObject.transform.parent           = gameObject.transform;
                    Instance.gameObject.transform.localPosition    = Vector3.zero;
                    Instance.gameObject.transform.localEulerAngles = Vector3.zero;
                    Instance.gameObject.transform.localScale       = Vector3.one;
                }
#if UNITY_EDITOR
                /* Break Prefab Instance */
                PrefabUtility.DisconnectPrefabInstance(gameObject);
#endif
            }
            else
            {
                Instance = TransformChild.gameObject;
            }

            if (null != ScriptPartsInstance)
            {                   /* "Instance"-Parts */
                ScriptPartsInstance.LinkSetPartsInstance(Instance);
            }
            else
            {                   /* Control-Node */
                Script_SpriteStudio_PartsRoot ScriptRoot = Instance.GetComponent <Script_SpriteStudio_PartsRoot>();
                if (null != ScriptRoot)
                {
                    ScriptRoot.NodeSetControl(gameObject);
                }
            }
        }
    }