Inheritance: Library_SpriteStudio.SpriteBase
コード例 #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);
                }
            }
        }
    }
コード例 #2
0
    public override void OnInspectorGUI()
    {
        Script_SpriteStudio_PartsInstance Data = (Script_SpriteStudio_PartsInstance)target;

        EditorGUILayout.LabelField("[SpriteStudio Parts-Instance]");
        EditorGUILayout.Space();

        Data.FlagHideForce = EditorGUILayout.Toggle("Force-Hide", Data.FlagHideForce);
        if (true == GUILayout.Button("Apply \"Force-Hide\" to Children"))
        {
            LibraryEditor_SpriteStudio.Utility.HideSetForce(Data.gameObject, Data.FlagHideForce, true, false);
        }
        EditorGUILayout.Space();

#if false
        /* MEMO: Experimentally & Sample */
        int AnimationNoOld = Data.AnimationNo;
        Data.AnimationNo = EditorGUILayout.IntField("Animation No", Data.AnimationNo);
        if (AnimationNoOld != Data.AnimationNo)
        {
            Data.AnimationChangeInstance(Data.AnimationNo);
        }
#endif

#if false
        /* MEMO: Experimentally & Sample */
        GameObject PrefabNew = null;
        PrefabNew = (GameObject)(EditorGUILayout.ObjectField("Prefab ", PrefabNew, typeof(GameObject), false));
        if (null != PrefabNew)
        {
            Data.PrefabChangeInstance(PrefabNew);
        }
#endif

        if (true == GUI.changed)
        {
            EditorUtility.SetDirty(target);
        }
    }
コード例 #3
0
        /* ******************************************************** */
        //! Get GameObject with a particular name

        /*!
         * @param	PartsKind
         *      (Output) Kind of Parts
         * @param	SpriteKind
         *      (Output) Kind of Sprite
         * @param	InstanceOrigin
         *      GameObject to start the search
         * @retval	Return-Value
         *      Instance of GameObject<br>
         *      null == Not-Found / Failure
         * @retval	PartsKind
         *      Kind of Parts
         * @retval	SpriteKind
         *      Kind of Sprite
         *
         * Get GameObject with a particular name by examining "InstanceOrigin" and children.<br>
         * <br>
         * Value is set to " PartsKind" means the type of Component that GameObject has.<br>
         * It has the regularity of the following.<br>
         * - "Library_SpriteStudio.KindParts.NORMAL" ... "Script_SpriteStudio_Triangle2" / Script_SpriteStudio_Triangle4"<br>
         * - "Library_SpriteStudio.KindParts.ROOT" ... "Script_SpriteStudio_PartsRoot"<br>
         * - "Library_SpriteStudio.KindParts.NULL" ... "Script_SpriteStudio_PartsNULL"<br>
         * - "Library_SpriteStudio.KindParts.INSTANCE" ... "Script_SpriteStudio_PartsInstance"<br>
         * <br>
         * Value is set to "SpriteKind" is supplementary information when " PartsKind" is "Library_SpriteStudio.KindParts.NORMAL".<br>
         * - "Library_SpriteStudio.KindSprite.TRIANGLE2" ... "Script_SpriteStudio_Triangle2"<br>
         * - "Library_SpriteStudio.KindSprite.TRIANGLE4" ... "Script_SpriteStudio_Triangle4"<br>
         * - "Library_SpriteStudio.KindSprite.NON" ... the other<br>
         * <br>
         * If applicable GameObject has no component for "SS5Player for Unity",
         *      "PartsKind" and "SpriteKind" are set to the contents of the "Library_SpriteStudio.KindParts.NORMAL" and "Library_SpriteStudio.KindSprite.NON" .<br>
         */
        public static GameObject GameObjectGetName(out KindParts PartsKind, out KindSprite SpriteKind, GameObject InstanceOrigin, string Name)
        {
            /* Clear Output */
            PartsKind  = KindParts.NORMAL;
            SpriteKind = KindSprite.NON;
            if (true == String.IsNullOrEmpty(Name))
            {                   /* Error */
                return(null);
            }

            /* Check Name */
            if (true == Name.Equals(InstanceOrigin.name))
            {
                Script_SpriteStudio_Triangle2 ScriptTriangle2 = InstanceOrigin.GetComponent <Script_SpriteStudio_Triangle2>();
                if (null != ScriptTriangle2)
                {                       /* Parts: Sprite-Triangle2 */
                    PartsKind  = KindParts.NORMAL;
                    SpriteKind = KindSprite.TRIANGLE2;
                    return(InstanceOrigin);
                }
                else
                {
                    Script_SpriteStudio_Triangle4 ScriptTriangle4 = InstanceOrigin.GetComponent <Script_SpriteStudio_Triangle4>();
                    if (null != ScriptTriangle4)
                    {                           /* Parts: Sprite-Triangle4 */
                        PartsKind  = KindParts.NORMAL;
                        SpriteKind = KindSprite.TRIANGLE4;
                        return(InstanceOrigin);
                    }
                    else
                    {
                        Script_SpriteStudio_PartsNULL ScriptNULL = InstanceOrigin.GetComponent <Script_SpriteStudio_PartsNULL>();
                        if (null != ScriptNULL)
                        {                               /* Parts: NULL */
                            PartsKind  = KindParts.NULL;
                            SpriteKind = KindSprite.NON;
                            return(InstanceOrigin);
                        }
                        else
                        {
                            Script_SpriteStudio_PartsInstance ScriptInstance = InstanceOrigin.GetComponent <Script_SpriteStudio_PartsInstance>();
                            if (null != ScriptInstance)
                            {                                   /* Parts: Instance */
                                PartsKind  = KindParts.INSTANCE;
                                SpriteKind = KindSprite.NON;
                                return(InstanceOrigin);
                            }
                            else
                            {
                                Script_SpriteStudio_PartsRoot ScriptRoot = InstanceOrigin.GetComponent <Script_SpriteStudio_PartsRoot>();
                                if (null != ScriptRoot)
                                {                                       /* Parts: Root */
                                    PartsKind  = KindParts.ROOT;
                                    SpriteKind = KindSprite.NON;
                                    return(InstanceOrigin);
                                }
                                else
                                {                                       /* Parts: Not-for-SpriteStudio */
                                    PartsKind  = KindParts.NORMAL;
                                    SpriteKind = KindSprite.NON;
                                    return(InstanceOrigin);
                                }
                            }
                        }
                    }
                }
            }

            /* Check Children */
            int        CountChild             = InstanceOrigin.transform.childCount;
            Transform  InstanceTransformChild = null;
            GameObject InstanceChild          = null;

            for (int i = 0; i < CountChild; i++)
            {
                InstanceTransformChild = InstanceOrigin.transform.GetChild(i);
                InstanceChild          = GameObjectGetName(out PartsKind, out SpriteKind, InstanceTransformChild.gameObject, Name);
                if (null != InstanceChild)
                {
                    return(InstanceChild);
                }
            }

            /* Not-Found */
            return(null);
        }