首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当已经使用动画旋转时旋转?

当已经使用动画旋转时旋转?
EN

Stack Overflow用户
提问于 2015-02-10 13:46:21
回答 4查看 3K关注 0票数 2

问题

我正在制造一把剑,它可以“摆动”90度。这是使用统一动画完成的:

当玩家攻击时,这样的剑就会被创造出来。取决于玩家的方向,剑会在X轴或Y轴上被镜像。但是当球员向左进攻时,他会从底部和上方进攻,而不是相反。

代码

下面是我用来确定我们应该用哪种方式映射剑的代码:

代码语言:javascript
复制
void changeDirection()
{
    print(Direction);
    if(Direction == Entity.direction.RIGHT)
        gameObject.transform.localScale = new Vector3(-1, 1, 1);
    if (Direction == Entity.direction.LEFT)
    {
        gameObject.transform.localScale = new Vector3(1, -1, 1);
    }
    if (Direction == Entity.direction.DOWN)
        gameObject.transform.localScale = new Vector3(-1, -1, 1);
}

上面没有,因为那是默认的。

你为什么不直接旋转一下呢?

因为动画已经旋转了剑,所以不管我做什么它都会“覆盖”。至少这是我的理论。

视频问题示例

http://a.pomf.se/vgxumj.webm

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-02-11 17:44:15

向Weapon_Swing转换中添加一个子对象,并在子对象中生成剑。这应该确保您可以将剑的localRotation设置为独立于动画。

票数 0
EN

Stack Overflow用户

发布于 2015-02-10 13:53:57

我会创建一个动画文件,非常肯定这就是你已经拥有的。然后将其父传递给其他GameObject。在代码中更改父游戏对象的方向。

票数 0
EN

Stack Overflow用户

发布于 2015-02-10 14:08:21

航向== Entity.direction.RIGHT

代码语言:javascript
复制
gameObject.transform.localRotation = Quaternion.Euler(new Vector3(90, 0, 1));
if (Direction == Entity.direction.LEFT)
{
     gameObject.transform.localRotation = Quaternion.Euler(new Vector3(0, 90, 1));
}
if (Direction == Entity.direction.DOWN)
     gameObject.transform.localRotation = Quaternion.Euler(new Vector3(90, 0, 1));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28433232

复制
相关文章

相似问题

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