Unity

Unityちゃん2Dのインポートのエラー解決(error CS0619)[ver.2017.2.1f1]

UnityにUniryちゃん2Dをインポートしたらエラーになって困った話。

ググってもUnityちゃん2Dについて触れられている物がなくて困った。
超初心者の個人的なメモ。

バージョン:2017.2.1f1
スクリーンショット 2017-12-21 10.10.40.png

スクリーンショット 2017-12-21 10.03.53.png

エラー内容

スクリーンショット 2017-12-21 9.46.46.png

 error CS0619: `UnityEngine.Types.GetType(string, string)' is obsolete: `This was an internal method which is no longer used'

どうやら書き方が違うようだ。

修正ファイルはこれ
・SpriteAnimationClipEditor.cs
・SpriteAnimationTimeControl.cs

解決前(SpriteAnimationClipEditor.cs)

SpriteAnimationClipEditor.cs
        protected override Editor GetBaseEditor()
        {
            Editor editor = null;
            var baseType = Types.GetType("UnityEditor.AnimationClipEditor", "UnityEditor.dll");
            CreateCachedEditor(targets, baseType, ref editor);
            return editor;
        }

怒られているのはこの部分

Types.GetType("UnityEditor.AnimationClipEditor", "UnityEditor.dll");

解決後(SpriteAnimationClipEditor.cs)

SpriteAnimationClipEditor.cs
        protected override Editor GetBaseEditor()
        {
            string typeName = "UnityEngine.AnimationClipEditor";

            Editor editor = null;
            //var baseType = Types.GetType("UnityEditor.AnimationClipEditor", "UnityEditor.dll");
            System.Type baseType = System.Reflection.Assembly.Load("UnityEditor.dll").GetType(typeName);

            CreateCachedEditor(targets, baseType, ref editor);
            return editor;
        }

解決前(SpriteAnimationTimeControl.cs)

SpriteAnimationTimeControl.cs
         private List<Editor> GetSpriteEditors(params Sprite[] sprites)
            {
                var type = Types.GetType("UnityEditor.SpriteInspector", "UnityEditor.dll");
                var editors = new List<Editor>();
                foreach (var sprite in sprites)
                {
                    Editor _editor = null;
                    Editor.CreateCachedEditor(sprite, type, ref _editor);
                    if (_editor != null)
                        editors.Add(_editor);
                }

                return editors;
            }

解決後(SpriteAnimationTimeControl.cs)

SpriteAnimationTimeControl.cs
            private List<Editor> GetSpriteEditors(params Sprite[] sprites)
            {
                string typeName = "UnityEngine.SpriteInspector";

                //var type = Types.GetType("UnityEditor.SpriteInspector", "UnityEditor.dll");
                System.Type type = System.Reflection.Assembly.Load("UnityEditor.dll").GetType(typeName);
                var editors = new List<Editor>();
                foreach (var sprite in sprites)
                {
                    Editor _editor = null;
                    Editor.CreateCachedEditor(sprite, type, ref _editor);
                    if (_editor != null)
                        editors.Add(_editor);
                }

                return editors;
            }

これでとりあえず動くようになった。
おしまい。