【发布时间】:2021-09-09 17:11:59
【问题描述】:
我想为统一(2D)制作一个简单的 C# 脚本。我想在我用鼠标单击的方向上缓慢旋转一个对象(图像)。我一直在寻找它,只发现如何在已知方向上缓慢旋转它,以及如何在我点击的地方旋转,但它并不慢。我试图将这两种机制结合起来,但没有任何效果。这是我当前的一段代码:
Vector2 direction = new Vector2(0.0f, 0.0f);
void Update()
{
if (Input.GetMouseButtonDown(0))
{
destinationX = clicked('x');
destinationY = clicked('Y');
direction = new Vector2(clicked('x') - transform.position.x, clicked('y') - transform.position.y);
}
transform.Rotate(new Vector3() * Time.deltaTime * 10.2f, Space.World);
transform.position += transform.forward * Time.deltaTime * 0.2f;
}
float clicked(char axis)
{
if (axis == 'x')
{
return Camera.main.ScreenToWorldPoint(Input.mousePosition).x;
}
else
{
return Camera.main.ScreenToWorldPoint(Input.mousePosition).y;
}
}
我知道它变得非常混乱,我什至不知道是否所有东西都被使用了,因为我在寻找答案时失去了理智(这就是我在这里的原因)。
请帮忙,谢谢!
【问题讨论】:
标签: c# unity3d rotation coordinates transform