在自定义枢轴Unity上移动旋转的东西

时间:2016-07-04 15:54:58

标签: unity3d sprite

我在Unity中创建了一个带有自定义枢轴的手臂,无论玩家的方向如何,它都基本上可以指向鼠标指向的任何位置。现在,当指向与绘制它相对的一侧时,这只手看起来很奇怪,所以我使用Flag翻转精灵并让它看起来正常。我的手臂末端也有一把武器,大部分都很好。现在问题是我在武器枪管的末端有一个“FirePoint”,当精灵被翻转时,它的位置不会改变,这会影响粒子和射击位置。基本上,所有必须发生的事情是FirePoint的Y位置需要变为负数,但Unity似乎认为我希望位置变化是全局的,而我只是希望它是本地的,以便它可以与任何东西一起工作旋转手臂在。我试过这个:

SpriteRenderer.flipY = true

但这是在全球范围内工作,而不是我需要的本地工作。任何帮助将不胜感激,我希望我已经提供了足够的信息,以达到一个结论性的结果。如果您还需要更多信息,请通知我。提前谢谢你,祝你有愉快的一天!

1 个答案:

答案 0 :(得分:0)

您可以使用RotateAround()获取所需的行为,而不是翻转内容。以下是示例代码:

public class ExampleClass : MonoBehaviour 
{
    public Transform pivotTransform; // need to assign in inspector
    void Update() 
    {
        transform.RotateAround(pivotTransform.position, Vector3.up, 20 * Time.deltaTime);
    }
}