如何生成具有初始方向的求解器?

How to spawn solvers with initial orientation?

似乎很难让已配置的求解器像总是在 SolverTarget 前面那样以特定方向实例化。看来您必须手动设置转换值、SolverHandler 的目标值,并在您正在使用的求解器上另外调用 SnapTo,否则您将进行某种插值。 我正在用 RadialView 尝试这个,我已经花了太长时间才能正确地完成这个,旋转和所有...

正确的方法是什么?设置位置、旋转,完成了吗?

如果具有 RadialView 的对象是在编辑时创建的并且处于活动状态,它将按照您所描述的那样捕捉其方向。

不幸的是,实例化对象或使用解算器重新启用现有对象将导致它 "solve" 与其原始位置相反。我发现强制正确位置的最简单方法是将单帧的 lerp 时间设置为“0”。

[SerializeField]
private GameObject objectWithSolver = null;

private IEnumerator InitialSolve(Solver solver)
{
    float originalMoveLerp = solver.MoveLerpTime;
    float originalRotateLerp = solver.RotateLerpTime;

    solver.MoveLerpTime = 0.0f;
    solver.RotateLerpTime = 0.0f;

    yield return null;

    solver.MoveLerpTime = originalMoveLerp;
    solver.RotateLerpTime = originalRotateLerp;
}

void Update()
{
    if (Input.GetKeyDown(KeyCode.J))
    {
        GameObject newObject = Instantiate(objectWithSolver);
        newObject.SetActive(true);
        StartCoroutine(InitialSolve(newObject.GetComponent<Solver>()));
    }
}

也就是说,这听起来像是一个很棒的功能请求。