gpt4 book ai didi

c++ - 如何在虚幻蓝图中创建等效的 Unity LookAt?

转载 作者:行者123 更新时间:2023-12-01 14:44:14 26 4
gpt4 key购买 nike

在虚幻中,我想要

  • 在前向 vector 指向目标当前位置的位置旋转角色,
  • 确保我的 Actor 的向上 vector 与我的目标的向上 vector 相同

  • 在Unity3D中,它 super 简单。这是一行代码( source ):
    transform.LookAt(target, Vector3.up);

    在蓝图中,有一个名为“Find Look at Rotation”的节点。问题是没有向上 vector 参数,因此当您靠近目标时,您可能会出现不需要的滚动旋转。

    那么,如何在虚幻蓝图中创建等效的 Unity LookAt?

    最佳答案

    您可以使用 Make Rot From XZ很容易做到这一点:

    blueprint implementation

    而对于 worldUp 的默认统一值,您将使用 (0,0,1)为了那个原因。

    使用立方体(显示向前和向上方向)在刻度线上调用它作为 LookingActor ,玩家角色(人体模型)位置为TargetPosition , 和 (0,0,1)WorldUp产生这样的结果:

    animation showing block facing mannequin

    如果您想隐藏 C++ 中的函数定义:

    void UMyBlueprintFunctionLibrary::MyLookAt(AActor LookingActor, FVector TargetPosition, 
    FVector WorldUp = FVector::UpVector)
    {
    FVector Forward = TargetPosition - LookingActor.GetActorLocation();
    FRotator Rot = UKismetMathLibrary::MakeRotFromXZ(Forward, WorldUp);
    LookingActor.SetActorRotation(Rot, true);
    }

    关于c++ - 如何在虚幻蓝图中创建等效的 Unity LookAt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58719951/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com