具有当前用户位置的2D地图

时间:2016-05-12 19:06:38

标签: unity3d

我刚开始学习团结和游戏开发。我有疑问

我想创建Map。这个地图将从服务器获取带有“开始”的数组,并且可能是当前地图的img 用户将从星星旅行到星星。

问题是:

1)假设我返回11颗星和img for curernt map:

enter image description here

1) - 如何显示用户现在的位置。在服务器上,我可以知道他从2到3星旅行,我知道用户将在那里(明星#3)在4分钟内 - 如何将“用户点”放在2-3开始之间,每秒移动用户点更接近3星?

什么是创建动态地图的最佳实践 - 我的意思是 - 当用户将在11开始时完成他的游戏 - 我想用新的动态启动返回用户新地图并且他将开始新地图旅行

对你说英语语法很抱歉。

1 个答案:

答案 0 :(得分:2)

  

我怎样才能把#34;用户点"在2-3开始和每秒之间移动用户   点接近3星?

使用Vector2.Lerp来做到这一点。通过第一个位置和第二个位置,然后传递0.5(一半)到时间参数它应该在第一个和第二个位置之间返回中点。 / p>

执行此操作的辅助函数:

Vector2 getMidPoint(Vector2 userPointA, Vector2 userPointB)
{
    return Vector2.Lerp(userPointA, userPointB, 0.5f);
}
  

我知道他从2到3星旅行,我知道用户会   那里(明星#3)在4分钟内

IEnumerator moveWithinTime(GameObject playerToMove, Vector2 fromPointA, Vector2 toPointB, float byTime)
{
    float counter = 0;

    while (counter < byTime)
    {
        counter += Time.deltaTime;
        playerToMove.transform.position = Vector2.Lerp(fromPointA, toPointB, counter / byTime);
        yield return null;
    }
}

并称之为StartCoroutine(moveWithinTime(gameObject, gameObject.transform.position, new Vector2(10f, 10f), 4));