首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在一个动画剪辑中更改多个精灵

在一个动画剪辑中更改多个精灵
EN

Stack Overflow用户
提问于 2016-05-09 23:33:22
回答 3查看 10K关注 0票数 2

假设我有两个动画剪辑,空闲和动作;以及两个spritesheet,一个男孩和符号。我想从相同的动画剪辑男孩和符号精灵动画,因为我已经为它做了单独的精灵。这是sign spritesheet

这是男孩精灵

我希望我的动画剪辑由两个像这样的动画精灵组成

我不想做两个动画师(男孩和符号),因为我的动画师太复杂了,做两个动画师需要很长时间。谢谢

ps。对不起,英语不是我的母语:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-10 13:19:00

所以我已经想好了。我所要做的就是使用lateupdate函数,让"sign“对象跟随”男孩“对象,然后在"sign”对象中制作简单的动画。

代码语言:javascript
运行
复制
public Transform target;
public Transform sign;
public float xOffset;
public float zSignOffset;

void LateUpdate(){
    sign.transform.localPosition = new Vector3 (target.localPosition.x+ xOffset, transform.localPosition.y, target.localPosition.z+ zSignOffset);
}
票数 1
EN

Stack Overflow用户

发布于 2016-05-10 02:57:33

你可以通过简单的拖拽一系列的图片到"hierarchy“窗口来创建一个动画,比如: by Chips0001.png by Chips0002.png by Chips0003.png

当你这样做时,统一将自动创建一个新的GameObject与“动画控制器”和“动画”附加到它。

如果需要,您可以删除GameObject和动画控制器,重要的是动画,扩展名为".anim“。

您可以在同一个way.when中创建任意数量的".anim“文件,现在可以链接到您的对象了。为此,按下Inspector中的"Add component“按钮并键入"Animator”,添加一个新的"Animator“。

然后,在"project“窗口中点击" create”按钮并选择"Animator controller“来创建一个控制器Animator。

现在,将动画师控制器指定给动画师。

打开Animator窗口,选择菜单" window / Animator“,同时选择Animator控制器,或双击其Animator控制器

最后,将创建的动画拖放到此动画制作窗口

现在,您的动画已准备好供脚本使用。例如,当用户按空格键时,动画之间的下一个代码循环:

代码语言:javascript
运行
复制
public class TransitionScript : MonoBehaviour {

    public GameObject Globe;
    string[] AnimationName;
    private int currentAnimation;
    KeyCode key;
    // Use this for initialization
    void Start () {
        currentAnimation = 0;

        AnimationName = new string[3];
        AnimationName[0] = "Repose";
        AnimationName[1] = "Globe1 Animation";
        AnimationName[2] = "Glove2 Animation";
    }

    // Update is called once per frame
    void Update()
    {
        if(Input.GetKeyDown(KeyCode.Space))
        {
            print("space Down");
            Animator anim = Globe.GetComponent<Animator>();

            currentAnimation++;
            if (currentAnimation >= AnimationName.Length) currentAnimation = 0;
            anim.Play(AnimationName[currentAnimation]);

        }
    }
}

注意:动画gameObject必须有一个精灵渲染器组件。如果没有,您将看不到动画:

票数 4
EN

Stack Overflow用户

发布于 2016-05-10 00:15:36

如果你想这样做,那么最简单的方法就是使用图像编辑器,如Photoshop或GIMP。您可以剪切并粘贴男孩,并将其签名到具有透明背景的新共享图像中。关于如何做到这一点,有很多很容易找到的教程;因为它不属于编码的范围,所以我不会详细说明它,但除了确保一切都完美地排列在一起之外,您应该没有任何困难。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37119746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档