相关疑难解决方法(0)

随着时间的推移旋转GameObject

我是新手,我尝试开始使用Unity Engine.

有人可以解释一下,Quaternion.Slerp怎么样?因为我想以不同的角度90,180和270旋转一些物体.我可以在下面看到我的代码.不幸的是,当我添加180度时,对象会做出疯狂的事情,而不是将旋转放到(0,180,180)这个游戏对象.我想得到(180,0,0)

    public float speed = 0.1F;
    private float rotation_x;
    void Update()
    {
        if (Input.GetButtonDown("Fire1"))
        {
            rotation_x = transform.rotation.eulerAngles.x;
            rotation_x += 180;
        }
        transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.Euler(rotation_x, transform.eulerAngles.y, transform.eulerAngles.z), Time.time * speed);

    }
Run Code Online (Sandbox Code Playgroud)

c# quaternions unity-game-engine

2
推荐指数
1
解决办法
6917
查看次数

来回移动GameObject

我得到了一个我想要移动到A点的物体,当它到达A点时它应该移动到B点.当它到达B点时它应该移回A点.

我以为我可以使用Vector3.Lerp

void Update()
{
  transform.position = Vector3.Lerp(pointA, pointB, speed * Time.deltaTime);
}
Run Code Online (Sandbox Code Playgroud)

但是我怎么能回去呢?是否有一种优雅的方式来实现这一目标?显然我需要像这样的2 Lerps:

void Update()
{
  transform.position = Vector3.Lerp(pointA, pointB, speed * Time.deltaTime); // Move up
  transform.position = Vector3.Lerp(pointB, pointA, speed * Time.deltaTime); // Move down
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?

c# unity-game-engine

0
推荐指数
1
解决办法
2056
查看次数

标签 统计

c# ×2

unity-game-engine ×2

quaternions ×1