如何以初始方向生成求解器?

时间:2019-11-26 07:09:37

标签: mrtk

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

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

1 个答案:

答案 0 :(得分:0)

如果带有RadialView的对象是在编辑时创建的并且处于活动状态,则它将按照您的描述对齐其方向。

不幸的是,实例化对象或使用求解器重新启用现有对象将导致其相对于其原始位置“求解”。我发现强制正确位置的最简单方法是将单个帧的拉紧时​​间设置为“ 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>()));
    }
}

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