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