static void CreateAnimatorController(Texture texture) { string assetPath = AssetDatabase.GetAssetPath(texture); SpriteDivider.Execute(assetPath, 3, 4); List <Sprite> sprites = AssetDatabase .LoadAllAssetRepresentationsAtPath(assetPath) .OfType <Sprite>() .ToList(); SimpleCharacterAnimatorControllerDefinition definition = new SimpleCharacterAnimatorControllerDefinition { ResulutPath = string.Format("Assets/{0}.controller", texture.name), DefaultAnimationClip = CreateSpriteAnimationClip( true, "Default", 0.2F, sprites[0], sprites[1], sprites[2], sprites[1]), PinchAnimationClip = CreateSpriteAnimationClip( true, "Pinch", 0.2F, sprites[6], sprites[7], sprites[8], sprites[7]), HitAnimationClip = CreateSpriteAnimationClip( false, "Hit", 0.1F, sprites[3], sprites[4], sprites[5]), WalkAnimationClip = CreateSpriteAnimationClip( true, "Walk", 0.2F, sprites[9], sprites[10], sprites[11], sprites[10]) }; RuntimeAnimatorController animatorController = SimpleCharacterAnimatorControllerCreator.Create(definition); AssetDatabase.AddObjectToAsset(definition.DefaultAnimationClip, animatorController); AssetDatabase.AddObjectToAsset(definition.PinchAnimationClip, animatorController); AssetDatabase.AddObjectToAsset(definition.HitAnimationClip, animatorController); AssetDatabase.AddObjectToAsset(definition.WalkAnimationClip, animatorController); AssetDatabase.SaveAssets(); }
public static void DivideImages() { int horizontalCount = 3; int verticalCount = 4; IEnumerable <Texture> targets = Selection.objects.OfType <Texture>(); if (!targets.Any()) { Debug.LogWarning("Please selecting textures."); return; } foreach (Texture target in targets) { string assetPath = AssetDatabase.GetAssetPath(target); SpriteDivider.Execute(assetPath, horizontalCount, verticalCount); } }
static void TextureToAnimatiorController(string name) { CreateFolderIfNotExist(AssetsPath, ResourcesFolderName); CreateFolderIfNotExist(ResourcesPath, AnimatorControllerFolderName); string[] suffixArray = new[] { "", "_1", "_2", "_3" }; string[] texturePaths = suffixArray.Select(suffix => string.Format("CharacterImages/{0}/${1}{2}", name, name, suffix)).ToArray(); foreach (var texturePath in texturePaths) { var imagePath = "Assets/Resources/" + texturePath + ".png"; SpriteDivider.Execute(imagePath, 3, 4); } List <List <Sprite> > listOfSpriteList = texturePaths .Select(texturePath => Resources.LoadAll <Sprite>(texturePath).ToList()) .ToList(); ComplexCharacterAnimatorControllerCreator.CreateAnimatorController(new ComplexCharacterAnimatorControllerDefinition { AnimationClipDictionary = CreateDictionary(listOfSpriteList), ResulutPath = string.Format("{0}/{1}.controller", AnimatorControllerPath, name) }); }