【问题标题】:How do I move a gameobject through a series of coordinates that are stored in an array?如何通过存储在数组中的一系列坐标移动游戏对象?
【发布时间】:2021-03-01 19:22:52
【问题描述】:

所以我有一个游戏对象,它是玩家,而光线投射确定玩家必须移动到哪个点。这基本上是一个受控的跳跃。我计算从玩家位置到光线投射点的贝塞尔曲线,并将这些贝塞尔曲线的点存储在一个数组中。我需要玩家对象通过这些点。 这是我目前所拥有的,但动作不稳定且不流畅。

    private IEnumerator Jump()
{
    
    Debug.Log("Turned Jump");

    foreach (Vector3 item in positions)
    {
        isMoving = true;

        transform.position = Vector3.MoveTowards(transform.position, item, Time.deltaTime * 100000f);
        yield return new WaitForEndOfFrame();
    }

    isMoving = false;
    jumpCheck = false;

   
    
    yield return null;
    if(isMoving)  checkJumpBlock() ;
}

【问题讨论】:

    标签: c# unity3d game-physics


    【解决方案1】:

    我有 2 个答案。其中之一是您不必使用贝塞尔曲线。如果你想使用曲线,你可以使用一个简单的 for-each 循环

    foreach(Vector3 v in positions) {
       transform.position = v;
       yeild return new waitForEndOfFrame();
    }
    

    否则只需使用刚体并在 transform.up 中添加一个力

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多