c# - Unity - 半球中的 Quaternion.Slerp

标签 c# unity3d

我有一个在半球上移动的轨道相机。我有一架飞机,上面有一些其他物体。在场景中间有一个空物体,我将其用作相机的支点,一切都按预期工作。我说 sempisphere 是因为我不想进入飞机“下方”,事实上我有一个控制装置可以避免它。

现在我想看一个物体并朝那个方向平稳旋转。为此,我使用了这段代码:

void Update () {

         // Smoothly rotates towards target 
         Vector3 targetPoint = myobj.transform.position;
         Quaternion targetRotation = Quaternion.LookRotation(targetPoint - transform.position, Vector3.right);
         transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * 2f);

     }

img link 1 img link 2

最佳答案

除非你真的想把向上的方向指定为“Vector3.right”,去掉第二个参数即可:

void Update()
{
    // Smoothly rotates towards target 
    Vector3 targetPoint = myobj.transform.position;
    Quaternion targetRotation = Quaternion.LookRotation(targetPoint - transform.position);
    transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * 2f);
}

关于c# - Unity - 半球中的 Quaternion.Slerp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51479611/

相关文章:

c# - ASP.NET Core MetaDataType 属性不起作用

c# - EntityFramework 中使用 'where' 语句的通用查询

c# - WPF绑定(bind)不适用于ICommand

c# - 修改字典值是可能的。什么是正确的方法?

c# - 使用内联 Lambda 函数作为参数

c# - 无法删除该对象,因为在 Entity Framework 5 中的 ObjectStateManager 中找不到它

C#代码注入(inject)?

c# - 为什么统一增加 transform.position 会导致 iOS 抖动?

c# - 玩家在与标记对象碰撞时消失

c# - Unity3d:仅将幅度钳制到 x 轴