void Awake()
        {
            charArray    = GetComponentsInChildren <Character>();
            drawDataDict = new Dictionary <CharacterData, DrawData>();

            DrawData.LoadBlockParameterName(CharacterData.boneCount);

            for (int i = 0; i < charArray.Length; i++)
            {
                DrawData    data;
                Character   chr       = charArray[i];
                Transform[] boneArray = chr.BuildBone();

                if (drawDataDict.ContainsKey(chr.data))
                {
                    data = drawDataDict[chr.data];

                    data.characterList.Add(chr);
                    data.boneTransformList.Add(chr.bones);
                }
                else
                {
                    data = new DrawData(
                        Character.BuildMesh(chr.data),
                        Array.FindIndex(texArrayManager.textureInputArray, (tex) => tex.Equals(chr.data.texture)));

                    data.characterList.Add(chr);
                    data.boneTransformList.Add(chr.bones);

                    drawDataDict.Add(chr.data, data);
                }

                chr.BuildCharacter(data.mesh, material, boneArray);
            }

            var enumer = drawDataDict.GetEnumerator();

            while (enumer.MoveNext())
            {
                enumer.Current.Value.BoneSetting();
            }
        }